Create a Bucket

post

/bucket

Creates a bucket to store balances.

Request

There are no request parameters for this operation.

Supported Media Types
Request Body - application/json;charset=utf-8 ()
Root Schema : schema
Type: object
A bucket, used in bucket create requests.
Show Source
Nested Schema : logicalResource
Type: array
Show Source
Nested Schema : Party Account Ref
Type: object
Title: Party Account Ref
A reference to a party account.
Show Source
Nested Schema : product
Type: array
Show Source
Nested Schema : relatedParty
Type: array
The value is used to provide information about any other entity with relation. to the balance. For instance, to define a customer hierarchy for the balance (such as customerId, userId).
Show Source
Nested Schema : Quantity
Type: object
Represents an amount in a specified unit.
Show Source
Nested Schema : TimePeriod
Type: object
Represents a time period with a start date, an end date, or both.
Show Source
Nested Schema : Logical Resource Ref
Type: object
Title: Logical Resource Ref
A reference to a logical resource.
Show Source
Nested Schema : ProductRef
Type: object
A product reference.
Match All
A product reference.
A product reference.
Show Source
Nested Schema : EntityRef
Match All
Represents an entity reference schema for EntityRef classes.
Show Source
Nested Schema : Extensible
Type: object
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
Show Source
Nested Schema : Addressable
Type: object
Defines a base schema for addressable entities.
Show Source
Nested Schema : EntityRef-allOf[2]
Type: object
Represents an entity reference schema for EntityRef classes.
Show Source
Nested Schema : Related Party
Type: object
Title: Related Party
A party related to another object.
Show Source
Back to Top

Response

Supported Media Types

201 Response

The bucket was created successfully.
Body ()
Root Schema : Bucket
Type: object
Title: Bucket
A bucket that tracks a quantity of usage (remaining or consumed) for currency or noncurrency resources (such as messages, minutes, data).
Show Source
Nested Schema : logicalResource
Type: array
The logical resources are associated with the bucket.
Show Source
Nested Schema : Party Account Ref
Type: object
Title: Party Account Ref
A reference to a party account.
Show Source
Nested Schema : product
Type: array
The products are associated with the bucket.
Show Source
Nested Schema : relatedParty
Type: array
The parties are related to the bucket. (BRM does not use this property).
Show Source
Nested Schema : Quantity
Type: object
Represents an amount in a specified unit.
Show Source
Nested Schema : TimePeriod
Type: object
Represents a time period with a start date, an end date, or both.
Show Source
Nested Schema : Logical Resource Ref
Type: object
Title: Logical Resource Ref
A reference to a logical resource.
Show Source
Nested Schema : ProductRef
Type: object
A product reference.
Match All
A product reference.
A product reference.
Show Source
Nested Schema : EntityRef
Match All
Represents an entity reference schema for EntityRef classes.
Show Source
Nested Schema : Extensible
Type: object
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
Show Source
Nested Schema : Addressable
Type: object
Defines a base schema for addressable entities.
Show Source
Nested Schema : EntityRef-allOf[2]
Type: object
Represents an entity reference schema for EntityRef classes.
Show Source
Nested Schema : Related Party
Type: object
Title: Related Party
A party related to another object.
Show Source

400 Response

The request isn't valid.
Body ()
Root Schema : Error
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Match All
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Show Source
Nested Schema : Extensible
Type: object
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
Show Source
Nested Schema : Error-allOf[1]
Type: object
Show Source

401 Response

The client doesn't have the correct privileges.
Body ()
Root Schema : Error
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Match All
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Show Source
Nested Schema : Extensible
Type: object
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
Show Source
Nested Schema : Error-allOf[1]
Type: object
Show Source

403 Response

The request wasn't authorized.
Body ()
Root Schema : Error
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Match All
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Show Source
Nested Schema : Extensible
Type: object
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
Show Source
Nested Schema : Error-allOf[1]
Type: object
Show Source

405 Response

This method is not allowed.
Body ()
Root Schema : Error
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Match All
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Show Source
Nested Schema : Extensible
Type: object
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
Show Source
Nested Schema : Error-allOf[1]
Type: object
Show Source

409 Response

The request could not be processed due to the conflict with the existing state of the resource.
Body ()
Root Schema : Error
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Match All
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Show Source
Nested Schema : Extensible
Type: object
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
Show Source
Nested Schema : Error-allOf[1]
Type: object
Show Source

500 Response

The system encountered an internal error.
Body ()
Root Schema : Error
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Match All
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Show Source
Nested Schema : Extensible
Type: object
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
Show Source
Nested Schema : Error-allOf[1]
Type: object
Show Source
Back to Top

Examples

The following examples show how to create buckets (balance groups in BRM) by submitting POST requests on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the file to attach as the request body.

curl -X POST 'http://host:port/brm/prepayBalanceManagement/version/bucket' -d @bucketCreate.json

Example of Request Body for Creating a Currency Bucket

The following is an example of the contents of the bucketCreate.json file sent as the request body to create a currency bucket. It specifies both partyAccount and product, but only one is required. It also specifies the units for the remaining value, but this is optional. If you do not specify the unit, the default account currency is used.

{
   "partyAccount": {
      "id": "0.0.0.1+-account+2090314"
   },
   "product": [
      {
         "id": "0.0.0.1+-service-telco-gsm-telephony+2092746"
      }
   ],
   "remainingValue": {
      "amount": 1000,
      "units": "USD"
   },
   "validFor": {
      "endDateTime": "2025-06-02T16:24:59+05:30",
      "startDateTime": "2024-10-02T13:04:42+05:30"
   },
   "usageType": "monetary"
}

Example of Response Body for Creating a Currency Bucket

The following is an example of the response body in JSON format.

{
   "id": "0.0.0.1+-balance_group+2090186+840+28",
   "href": "https://host:port/brm/prepayBalanceManagement/v4/bucket/0.0.0.1+-balance_group+2090186+840+28",
   "confirmationDate": null,
   "description": null,
   "isShared": null,
   "name": "Balance Group (1)",
   "remainingValueName": null,
   "requestedDate": null,
   "logicalResource": null,
   "partyAccount": {
      "id": "0.0.0.1+-account+2090314",
      "href": null,
      "description": null,
      "name": "aa sa",
      "status": "active",
      "@baseType": null,
      "@schemaLocation": null,
      "@type": "PartyAccountRef",
      "@referredType": null
   },
   "product": [
      {
         "id": "0.0.0.1+-service-telco-gsm-telephony+2092746",
         "href": null,
         "name": "ServiceTelcoGsmTelephony",
         "@baseType": null,
         "@schemaLocation": null,
         "@type": "ProductRef",
         "@referredType": null
      }
   ],
   "relatedParty": null,
   "remainingValue": {
      "amount": 1000.0,
      "units": "USD",
      "@baseType": null,
      "@schemaLocation": null,
      "@type": "Quantity"
   },
   "reservedValue": {
      "amount": 0.0,
      "units": "USD",
      "@baseType": null,
      "@schemaLocation": null,
      "@type": "Quantity"
   },
   "status": "ACTIVE",
   "usageType": null,
   "validFor": {
      "endDateTime": "2025-06-02T16:24:59+05:30",
      "startDateTime": "2024-10-02T13:04:42+05:30",
      "@baseType": null,
      "@schemaLocation": null,
      "@type": null
   },
   "@baseType": "Bucket",
   "@schemaLocation": null,
   "@type": "Bucket"
}

Example of Request Body for Creating a Noncurrency Bucket

The following is an example of the contents of the bucketCreate.json file sent as the request body to create a noncurrency bucket.

{
   "partyAccount": {
      "id": "0.0.0.1+-account+2090314"
   },
   "remainingValue": {
      "amount": 9999,
      "units": "Free Domestic Minutes"
   },
   "validFor": {
      "endDateTime": "2025-05-02T16:24:59+05:30",
      "startDateTime": "2024-04-02T13:04:42+05:30"
   },
   "usageType": "other"
}

You can also transfer noncurrency product balances, with or without a cost.

Example of Response Body for Creating a Noncurrency Bucket

The following is an example of the response body in JSON format.

{
   "id": "0.0.0.1+-balance_group+2091210+1000010+4",
   "href": "https://host:port/brm/prepayBalanceManagement/v4/bucket/0.0.0.1+-balance_group+2091210+1000010+4",
   "confirmationDate": null,
   "description": null,
   "isShared": null,
   "name": "Balance Group<Account>",
   "remainingValueName": null,
   "requestedDate": null,
   "logicalResource": null,
   "partyAccount": {
      "id": "0.0.0.1+-account+2090314",
      "href": null,
      "description": null,
      "name": "aa sa",
      "status": "active",
      "@baseType": null,
      "@schemaLocation": null,
      "@type": "PartyAccountRef",
      "@referredType": null
   },
   "product": null,
   "relatedParty": null,
   "remainingValue": {
      "amount": 9999.0,
      "units": "Free Domestic Minutes",
      "@baseType": null,
      "@schemaLocation": null,
      "@type": "Quantity"
   },
   "reservedValue": {
      "amount": 0.0,
      "units": "Free Domestic Minutes",
      "@baseType": null,
      "@schemaLocation": null,
      "@type": "Quantity"
   },
   "status": "ACTIVE",
   "usageType": null,
   "validFor": {
      "endDateTime": "2025-05-02T16:24:59+05:30",
      "startDateTime": "2024-04-02T13:04:42+05:30",
      "@baseType": null,
      "@schemaLocation": null,
      "@type": null
   },
   "@baseType": "Bucket",
   "@schemaLocation": null,
   "@type": "Bucket"
}

Create a currency bucket using an account external ID

The following example creates a currency bucket using the account external ID in partyAccount.id.

curl -X POST 'http://host:port/brm/prepayBalanceManagement/v4/bucket' -H 'Content-Type: application/json' -d @currency-account-external-id.json

where:

  • host is the URL for the REST server.
  • port is the port for the REST server.

The -d option specifies the request body file, currency-account-external-id.json.

Example of Request Body

{
  "partyAccount": {
    "id": "test_acct_264591"
  },
  "remainingValue": {
    "amount": 10,
    "units": "USD"
  },
  "usageType": "monetary"
}

Example of Response Body

{
  "id": "0.0.0.1+-balance_group+262223+840+24",
  "href": "https://localhost:8080/brm/prepayBalanceManagement/v4/bucket/0.0.0.1+-balance_group+262223+840+24",
  "confirmationDate": "0",
  "description": "",
  "isShared": false,
  "name": "Balance Group<Account>",
  "remainingValueName": "",
  "requestedDate": "0",
  "logicalResource": [
    {
      "@baseType": "LogicalResourceRef",
      "@referredType": null,
      "@schemaLocation": null,
      "@type": "LogicalResourceRef",
      "href": null,
      "id": null,
      "name": null,
      "value": "677-20260429-024757-0-153527--213851008-cagbu-phx-1038"
    }
  ],
  "partyAccount": {
    "id": "test_acct_264591",
    "href": null,
    "description": null,
    "name": "non-currency2 Test2",
    "status": "active",
    "@baseType": "PartyAccountRef",
    "@schemaLocation": null,
    "@type": "PartyAccountRef",
    "@referredType": null
  },
  "product": [
    {
      "id": "0.0.0.1+-service-telco-gprs+264783",
      "href": null,
      "name": "ServiceTelcoGprs",
      "@baseType": "ProductRef",
      "@schemaLocation": null,
      "@type": "ProductRef",
      "@referredType": null
    }
  ],
  "relatedParty": [],
  "remainingValue": {
    "amount": 10.0,
    "units": "USD",
    "@baseType": "Quantity",
    "@schemaLocation": null,
    "@type": "Quantity"
  },
  "reservedValue": {
    "amount": 0.0,
    "units": "USD",
    "@baseType": "Quantity",
    "@schemaLocation": null,
    "@type": "Quantity"
  },
  "status": "ACTIVE",
  "usageType": "MONETARY",
  "validFor": {
    "endDateTime": null,
    "startDateTime": "2026-05-07T13:28:31+05:30",
    "@baseType": "TimePeriod",
    "@schemaLocation": null,
    "@type": "TimePeriod"
  },
  "@baseType": "Bucket",
  "@schemaLocation": "",
  "@type": "Bucket"
}

Create a noncurrency bucket using an account external ID

The following example creates a noncurrency bucket for Free Minutes using the account external ID in partyAccount.id.

curl -X POST 'http://host:port/brm/prepayBalanceManagement/v4/bucket' -H 'Content-Type: application/json' -d @noncurrency-account-external-id.json

where:

  • host is the URL for the REST server.
  • port is the port for the REST server.

The -d option specifies the request body file, noncurrency-account-external-id.json.

Example of Request Body

{
  "partyAccount": {
    "id": "test_acct_264591"
  },
  "remainingValue": {
    "amount": 100,
    "units": "Free Minutes"
  },
  "usageType": "other"
}

Example of Response Body

{
  "id": "0.0.0.1+-balance_group+262223+100002+26",
  "href": "https://localhost:8080/brm/prepayBalanceManagement/v4/bucket/0.0.0.1+-balance_group+262223+100002+26",
  "confirmationDate": "0",
  "description": "",
  "isShared": false,
  "name": "Balance Group<Account>",
  "remainingValueName": "",
  "requestedDate": "0",
  "logicalResource": [
    {
      "@baseType": "LogicalResourceRef",
      "@referredType": null,
      "@schemaLocation": null,
      "@type": "LogicalResourceRef",
      "href": null,
      "id": null,
      "name": null,
      "value": "677-20260429-024757-0-153527--213851008-cagbu-phx-1038"
    }
  ],
  "partyAccount": {
    "id": "test_acct_264591",
    "href": null,
    "description": null,
    "name": "non-currency2 Test2",
    "status": "active",
    "@baseType": "PartyAccountRef",
    "@schemaLocation": null,
    "@type": "PartyAccountRef",
    "@referredType": null
  },
  "product": [
    {
      "id": "0.0.0.1+-service-telco-gprs+264783",
      "href": null,
      "name": "ServiceTelcoGprs",
      "@baseType": "ProductRef",
      "@schemaLocation": null,
      "@type": "ProductRef",
      "@referredType": null
    }
  ],
  "relatedParty": [],
  "remainingValue": {
    "amount": 100.0,
    "units": "Free Minutes",
    "@baseType": "Quantity",
    "@schemaLocation": null,
    "@type": "Quantity"
  },
  "reservedValue": {
    "amount": 0.0,
    "units": "Free Minutes",
    "@baseType": "Quantity",
    "@schemaLocation": null,
    "@type": "Quantity"
  },
  "status": "ACTIVE",
  "usageType": "OTHER",
  "validFor": {
    "endDateTime": null,
    "startDateTime": "2026-05-07T13:30:34+05:30",
    "@baseType": "TimePeriod",
    "@schemaLocation": null,
    "@type": "TimePeriod"
  },
  "@baseType": "Bucket",
  "@schemaLocation": "",
  "@type": "Bucket"
}
Back to Top