Balance & Movements

The Balance & Movements API allows merchants configured under the balance-based settlement model to query:

  • Opening balance
  • Closing balance
  • Balance-impacting transactions within a specific date range
  • Detailed operational transaction information

This enables merchants to:

  • Monitor available funds
  • Perform financial reconciliation
  • Track collections, refunds, settlements, and fees
  • Support financial decision-making based on current balances

📤POST Endpoint

📘

URL

Endpoint: {{base_url}}//merchant/balance/report

Please consult our Integrations team to obtain the environment-specific base URL required to begin your testing.

📝Creation Request

🔐Header

All requests to the this endpoint must include a custom Authorization header to ensure secure communication and proper merchant validation.

HeaderRequiredValue Format
X-Api-Key✅ YesPublic merchant identifier
X-Timestamp✅ YesUnix timestamp of the request. Validated against a time window ≤ 2 minutes.
X-Signature✅ YesHMAC_SHA512(secret-key, timestamp + api-key)

The signature value must be a SHA-512 hash generated by concatenating the fields as decribed.

The secret-key is a credential provided by Monnet that must be used to build the final string before generating the hash.

📦Request Data

Specifies the structure and required parameters that must be included in the request body to successfully retrieve balance information and transaction movements, ensuring accurate reporting of opening balance, closing balance, and all balance-impacting transactions within the specified period.

Body Parameters

FieldTypeRequiredDescription
reportTypestringYesDefines the type of report to be generated. Allowed values: EOD (End of Day) or Intraday.
startDateTimedatetime (ISO 8601)YesStart date and time used as the reference point for the balance and transaction query.
endDateTimedatetime (ISO 8601)ConditionalEnd date and time of the query range. Required when reportType is intraday; ignored for EOD.
currencystringYesCurrency in which the balance and transactions will be retrieved (ISO 4217 format, e.g., PEN, USD).
GMTstringNoTime zone offset applied to the request. Default value is -5 if not provided.
pageNumberintegerNoPage number to retrieve for paginated results. Minimum value is 1. Default is 1.
pageSizeintegerNoNumber of records returned per page. Default is 50; maximum allowed value may apply.

Example Request

{
  "reportType": "Intraday",
  "startDateTime": "2025-02-21T14:22:05Z",
  "endDateTime": "2025-02-21T15:22:05Z",
  "currency": "USD",
  "GMT": "-5",
  "pageNumber": 1,
  "pageSize": 50
}

Success Response

FieldTypeDescription
initialBalanceDecimalOpening balance prior to the first movement within the requested period
finalBalanceDecimalClosing balance after the last movement within the requested period
pendingCreditsDecimalAmount corresponding to authorized payin operations that have not yet been recognized in the available balance at the end of the query range.
pendingDebitsDecimalAmount corresponding to liquidation requests generated but whose payment has not yet been executed at the end of the query range.
currencyString (ISO-4217)Currency of the balance report
startDateTimeISO-8601 DatetimeStart timestamp applied to the query
endDateTimeISO-8601 DatetimeEnd timestamp applied to the query
pageNumberIntegerCurrent page number returned
pageSizeIntegerNumber of records per page
balanceDetailsArrayList of balance-impacting transactions
balanceDetails.recordDatetimeISO-8601 DatetimeTimestamp when the movement was recorded in the balance ledger
balanceDetails.recordTypeStringMovement type (Income / Outcome)
balanceDetails.conceptStringBusiness concept (Collection, Refund, Settlement, Fee, Tax, etc.)
balanceDetails.amountDecimalTransaction amount impacting the balance
balanceDetails.accumulatedBalanceDecimalRunning balance after applying the movement
balanceDetails.completedTimeISO-8601 DatetimeOperational completion timestamp (authorization, settlement, refund, etc.)
balanceDetails.operationIdString (UUID)Unique identifier of the transaction
balanceDetails.payinMethodStringPayment method used (only for collections)
balanceDetails.virtualAccountObject / NullVirtual account information when the transaction originates from a virtual account
balanceDetails.virtualAccount.account.idStringVirtual account identifier
balanceDetails.virtualAccount.account.accountTypeStringAccount type (e.g., CCI, Checking, Savings)
balanceDetails.virtualAccount.account.accountNumberStringVirtual account number
balanceDetails.virtualAccount.owner.fullNameStringAccount owner name
balanceDetails.virtualAccount.owner.documentTypeStringOwner document type
balanceDetails.virtualAccount.owner.documentNumberStringOwner document number
balanceDetails.virtualAccount.owner.referenceIdStringMerchant internal customer reference
balanceDetails.virtualAccount.payer.fullNameStringDepositor/payer name
balanceDetails.virtualAccount.payer.documentTypeStringDepositor document type
balanceDetails.virtualAccount.payer.documentNumberStringDepositor document number

Example Response — Payin Transaction Details

{
  "initialBalance": 15000.0,
  "finalBalance": 18250.5,
  "pendingCredits": 1200.0,
  "pendingDebits": 500.0,
  "currency": "PEN",
  "startDateTime": "2025-02-01T00:00:00Z",
  "endDateTime": "2025-02-01T23:59:59Z",
  "pageNumber": 1,
  "pageSize": 50,
  "balanceDetails": [
    {
      "recordDatetime": "2025-02-01T10:15:30Z",
      "recordType": "Credit",
      "concept": "Collection",
      "amount": 3250.5,
      "accumulatedBalance": 18250.5,
      "completedTime": "2025-02-01T10:16:05Z",
      "operationId": "b7a91c44-7f8c-4c59-9c9b-21d7a7a3c123",
      "payinMethod": "BANKTRANSFER",
      "virtualAccount": null
    }
  ]
}

Example Response — Virtual Account Transaction Details

{
  "initialBalance": 15000.0,
  "finalBalance": 21500.5,
  "pendingCredits": 1200.0,
  "pendingDebits": 500.0,
  "currency": "PEN",
  "startDateTime": "2025-02-01T00:00:00Z",
  "endDateTime": "2025-02-01T23:59:59Z",
  "pageNumber": 1,
  "pageSize": 50,
  "balanceDetails": [
    {
      "recordDatetime": "2025-02-01T10:15:30Z",
      "recordType": "Credit",
      "concept": "Collection",
      "amount": 3250.5,
      "accumulatedBalance": 18250.5,
      "completedTime": "2025-02-01T10:16:05Z",
      "operationId": "b7a91c44-7f8c-4c59-9c9b-21d7a7a3c123",
      "payinMethod": "VIRTUAL_ACCOUNT",
      "virtualAccount": {
        "account": {
          "id": "3f8c2a4e-9b6d-4f1e-b8a2-7d5c9e13a6f2",
          "accountType": "CCI",
          "accountNumber": "00212345678912345678"
        },
        "owner": {
          "fullName": "Comercial ABC SAC",
          "documentType": "RUC",
          "documentNumber": "20123456789",
          "referenceId": "CLI-45879"
        },
        "payer": {
          "fullName": "Juan Perez",
          "documentType": "DNI",
          "documentNumber": "45879632"
        }
      }
    },
    {
      "recordDatetime": "2025-02-01T14:32:18Z",
      "recordType": "Credit",
      "concept": "Collection",
      "amount": 3250.0,
      "accumulatedBalance": 21500.5,
      "completedTime": "2025-02-01T14:33:02Z",
      "operationId": "a9c2f77d-88b1-4e2f-9cdd-2e9f5a6b4d90",
      "payinMethod": "VIRTUAL_ACCOUNT",
      "virtualAccount": {
        "account": {
          "id": "7d2a1f4c-3e9b-4a7c-b5f2-1c6e8d9a0b11",
          "accountType": "CCI",
          "accountNumber": "00298765432198765432"
        },
        "owner": {
          "fullName": "Comercial ABC SAC",
          "documentType": "RUC",
          "documentNumber": "20123456789",
          "referenceId": "CLI-78901"
        },
        "payer": {
          "fullName": "Maria Lopez",
          "documentType": "DNI",
          "documentNumber": "78451236"
        }
      }
    }
  ]
}