Billing Movements API

The Billing Movements API provides programmatic access to all financial movements registered within your Bamboo merchant account. Unlike the file-based Report Builder (which delivers scheduled CSV/TXT reports via SFTP, Email, or S3), this endpoint allows you to query movement data on demand and integrate it directly into your own systems, dashboards, or reconciliation workflows.

Why use the Billing Movements API?

The Billing Movements API is ideal for merchants who need near-real-time access to their financial data through a programmatic interface. Note that the API currently has a minimum data delay of approximately 1 hour.

Near-real-time access
Query movements at any point in time. Note: data has a minimum delay of 1 hour before appearing in the API.

Flexible filtering
Narrow results by date range and select only the columns your system needs.

Pagination support
Handle large datasets efficiently with built-in page/page-size controls.

Easy integration
Standard REST/JSON interface that plugs directly into your internal tools, dashboards, or reconciliation systems.

How it works

The endpoint accepts a GET request with optional query parameters to filter and paginate the results. On success, it returns a structured JSON response containing a list of billing movement objects along with pagination metadata.

  1. Build your request with the desired date range (From / To) and pagination settings.
  2. Optionally specify which Columns to include in the response to reduce payload size.
  3. Send the request with your authentication credentials in the headers.
  4. Parse the Data array from the JSON response to access individual movement records.
  5. Use the Total, Page, and PageSize fields to determine whether additional pages exist and iterate accordingly.
💡

Contact your Technical Account Manager (TAM) to obtain the correct authentication credentials and base URL for your environment.

Endpoint

GET https://api.bamboopayment.com/v3/api/Reporting/billing-movements

For the full interactive reference, including live request testing and schema details, see the Billing Movements API Reference.

Request Parameters

Query Parameters

ParameterTypeRequiredDescription
Fromdate-timeYesStart of the date range for filtering movements. ISO 8601 format recommended (e.g., 2025-01-01T00:00:00Z).
Todate-timeYesEnd of the date range for filtering movements. ISO 8601 format recommended.
Pageint32YesPage number for paginated results. Starts at 1.
PageSizeint32YesNumber of records per page. Adjust according to your processing capacity. A maximum page size will be enforced once defined and implemented.
Columnsarray of stringsNo (optional)List of specific field names to include in the response. If omitted, all available fields are returned.

Headers

HeaderValue
acceptapplication/json (default), text/json, or text/plain

Response Structure

A successful 200 response returns a JSON object with the following top-level fields:

FieldTypeDescription
Dataarray of objectsList of billing movement records matching the query.
Pageint32The current page number returned.
PageSizeint32The number of records per page as configured in the request.
Totalint32Total number of records matching the query across all pages.
Errorsarray of objectsList of error details if any issues occurred processing the request.

Movement Object Fields

Each object inside the Data array represents a single financial movement and includes the following fields:

FieldTypeDescription
TransactionIdstringUnique identifier for the original transaction linked to this movement.
MovementIdint32Unique identifier for the specific financial movement within the account.
Createddate-timeTimestamp when the movement record was created.
TypestringCategory of the movement, such as Purchase, Refund, or TrafficFee.
CountrystringCountry where the original transaction took place.
CurrencystringISO 4217 code for the currency in which the movement was recorded.
SignstringIndicates whether the movement is a Credit or a Debit.
Amountint64Monetary amount associated with this movement.
AvailableDatedate-timeDate when the movement funds become available to the merchant.
ReferenceIdstringAdditional reference identifier for the movement, if applicable.
EndUserNotesstringNotes or comments related to the transaction provided by the end user.
ExchangeRatedoubleExchange rate applied to the original transaction, if a currency conversion occurred.
StatusstringCurrent status of the movement, such as Approved, Pending, or Rejected.
Merchant_Account_Idint32Unique identifier of the merchant's account in Bamboo.
Merchant_Account_NamestringRegistered name of the merchant's account in Bamboo.
Merchant_Idint32Unique identifier assigned to the merchant within Bamboo's system.
Merchant_NamestringOfficially registered business name of the merchant.
Payment_MethodstringSpecific payment method used, such as Visa or MasterCard.
Payment_Media_BrandstringBrand of the payment media associated with the movement.
Last_Status_Datedate-timeMost recent date when the movement's status was updated.
Withdrawal_Idint32Identifier for the associated withdrawal, if applicable.
Withdrawal_StatusstringCurrent status of the associated withdrawal, such as Pending or Approved.

Example Request

GET https://api.bamboopayment.com/v3/api/Reporting/billing-movements?From=2025-01-01T00:00:00Z&To=2025-01-31T23:59:59Z&Page=1&PageSize=50
Accept: application/json

Example Response (abbreviated)

{
  "Data": [
    {
      "TransactionId": "TXN-00123456",
      "MovementId": 987654,
      "Created": "2025-01-15T10:32:00.000Z",
      "Type": "Purchase",
      "Country": "UY",
      "Currency": "UYU",
      "Sign": "Credit",
      "Amount": 150000,
      "AvailableDate": "2025-01-17T00:00:00.000Z",
      "Status": "Approved",
      "Merchant_Id": 1001,
      "Merchant_Name": "My Store",
      "Payment_Method": "Visa"
    }
  ],
  "Page": 1,
  "PageSize": 50,
  "Total": 312,
  "Errors": null
}

Pagination

The API uses page-based pagination. Use the Total, Page, and PageSize fields in the response to determine how many pages exist and whether you need to fetch additional data.

Total pages = ceil(Total / PageSize)

To retrieve all records, iterate from Page=1 up to the last page, keeping PageSize constant across all requests.

Error Responses

HTTP StatusMeaning
200 OKRequest was successful. Check the Errors array within the body for any partial errors.
400 Bad RequestOne or more query parameters are invalid or malformed.
500 Internal Server ErrorAn unexpected error occurred on the server. Contact Bamboo support if this persists.

When errors occur, each object in the Errors array contains:

FieldTypeDescription
ErrorCodestringCode identifying the type of error.
CreatedstringTimestamp of when the error was generated.
MessagestringHuman-readable summary of the error.
DetailstringAdditional technical context about the error.

Relation to Other Reports

The Billing Movements API exposes the same underlying financial data as the Statement Report available through Report Builder. The key difference is the delivery mechanism:

FeatureBilling Movements APIReport Builder (Statement)
DeliveryOn-demand via RESTScheduled via SFTP / Email / S3
FormatJSONCSV / TXT
FilteringDate range + column selectionConfigured by TAM
Use caseReal-time integrationBatch reconciliation

For a deeper understanding of the movement fields and how they relate to your payins and payouts, refer to the Reports section of the documentation:

Next Steps

Billing Movements API Reference →
Full interactive documentation including live request testing and schema explorer.

Statement Report →
Understand the full field definitions and how credits and debits are structured across your account.

Reports Overview →
Learn how Report Builder complements the API for batch and scheduled delivery workflows.