> ## Documentation Index
> Fetch the complete documentation index at: https://docs.singapay.id/llms.txt
> Use this file to discover all available pages before exploring further.

# Inquiry Status

> Retrieves the current status and details of a disbursement using your `reference_number` and the account in the path. For pending transactions, the service may refresh status from the banking partner before responding, See `Response Code` for the full SP000–SP020 reference.



## OpenAPI

````yaml https://payment-b2b.singapay.id/api/docs/merchant-api.json post /api/v2.0/disbursement/{account_id}/inquiry-status
openapi: 3.1.0
info:
  title: Singa Merchant API
  description: >-
    OpenAPI specification for the merchant/partner HTTP API. All routes below
    are additionally protected by `ip.whitelisted.merchant` — the caller IP must
    be registered for the credential or merchant. Obtain a JWT using `POST
    /api/v1.0/access-token/b2b` (Basic auth) or `POST
    /api/v1.1/access-token/b2b` (X-Signature) before calling secured endpoints.
  version: 1.0.0
servers:
  - url: https://sandbox-payment-b2b.singapay.id
    description: >-
      API host. Paths include `/api` prefix (see `RouteServiceProvider`).
      Replace scheme/host with your environment.
security: []
tags:
  - name: Security
    description: >-
      Merchant authentication (`OauthMerchantTokenController`). **v1.1** B2B
      token uses `X-CLIENT-ID`, `X-PARTNER-ID`, and `X-Signature` (no Basic
      auth). Secured routes also require the issued Bearer JWT plus
      `X-PARTNER-ID`.
  - name: Accounts
    description: >-
      Account management (`routes/merchantApiRoute.php`, `v1.0`). Path parameter
      `{id}` is always the account ULID.
  - name: Balance Inquiry
    description: >-
      Merchant and per-account balance inquiry (`BalanceController`, `v1.0`).
      Path `account_id` is the account ULID.
  - name: Statements
    description: >-
      Per-account statement list and detail
      (`AccountController::accountStatements`, `accountStatementDetail`, prefix
      `v1.0/statements`). Flugger responses; detail path param `{statement_id}`
      maps to `statements.transaction_id`.
  - name: Payment Link
    description: >-
      Payment link CRUD and payment-method catalog (`PaymentLinkApiController`,
      prefix `v1.0/payment-link-manage`). `account_id` is ULID;
      `payment_link_id` is numeric `payment_links.id`.
  - name: Payment Link History
    description: >-
      Payment link transaction/history listing and detail
      (`PaymentLinkApiController`, prefix `v1.0/payment-link-histories`).
      `history_id` is numeric `payment_link_histories.id`.
  - name: Virtual Account
    description: >-
      Native VA CRUD (`VirtualAccountController`, prefix
      `v1.0/virtual-accounts`). `account_id` and `virtual_account_id` are ULIDs.
  - name: VA Transaction
    description: >-
      VA money-in transaction listing and detail (`VirtualAccountController`,
      prefix `v1.0/va-transactions`).
  - name: QRIS (Money In)
    description: >-
      MPM dynamic QRIS list, show, and generate (`QrisMpmDynamicApiController`,
      prefix `v1.0/qris-dynamic`).
  - name: QRIS (Money Out)
    description: >-
      Issuer MPM decode/inquiry, payment credit (money out), and transaction
      status (`QrisIssuerMpmController`, `QrisApiV2Controller::checkStatus`,
      prefix `v2.0/qris`). Related list/detail: `GET
      /api/v2.0/qris/transaction/...`.
  - name: E-Wallet (Money In)
    description: >-
      E-Wallet Native checkout and transactions (`EwalletNativeApiController`,
      `EwalletNativeTransactionApiController`, `EwalletNativeV2ApiController`).
      Paths include `v1.0/ewallet-native`, `v1.0/ewallet-native-transactions`,
      and `v2.0/ewallet-native`.
  - name: E-Wallet (Money Out)
    description: >-
      E-wallet disbursement / top-up to beneficiary wallets
      (`EWalletTopUpController`, prefix `v2.0/ewallet`). Responses use the
      custom **`MerchantV2ApiEnvelope`** with **`MerchantV2ResponseCode`**
      (SP000–SP020).
  - name: Card (Money In)
    description: >-
      One-time card payment, cancel, and inquiry
      (`CardPaymentMerchantApiController`, prefix `v2.0/card`).
  - name: Subscription (Recurring)
    description: >-
      Credit-card recurring subscription plans (`SubscriptionPlanApiController`,
      prefix `v2.0/recurring`). Plan `{id}` is UUID (`sub_plans.id`).
  - name: Direct Debit
    description: >-
      Direct Debit — bind a customer bank account once via hosted webview, then
      charge it host-to-host (`DirectDebitMerchantController`, prefix
      `v2.0/direct-debit`). Binding `{binding_id}` and transaction
      `{transaction_id}` are UUIDs. Responses use the
      **`MerchantV2ApiEnvelope`** with both standard SP000–SP020 codes and
      Direct-Debit-specific codes (`SP_DD_*`). The `/charge` endpoint is
      additionally protected by **`X-Signature`** + **`X-Timestamp`**
      (`verify.signature-internal`); see operation parameters for the signing
      scheme.
  - name: Account Transfer
    description: >-
      Move funds between sub-accounts within the same merchant
      (`AnotherAccountApiController`, prefix `v1.0/account-transfer`). The
      transfer endpoint requires request signature headers
      (`verify.signature-internal`). Both accounts must belong to the
      authenticated merchant and be accessible to the credential.
  - name: Disbursement (Money Out)
    description: >-
      Bank disbursement (`DisbursementController` **v1.0**,
      `DisbursementV2Controller` **v2.0**). **v1.0**
      list/show/fee/beneficiary/transfer use Flugg envelopes; v1 inquiry-status
      uses the **custom v2 envelope** (`MerchantV2ApiEnvelope`, codes
      **SP000–SP020**). **v2.0** check-beneficiary, transfer, and inquiry-status
      use the same custom envelope — see component schema
      **`MerchantV2ResponseCode`** for the full response code table.
  - name: Cardless Withdrawal
    description: >-
      Cardless withdrawal API for initiating ATM cash withdrawals without a
      physical card. Supports creating withdrawals with OTP generation, listing
      transaction history, viewing transaction details, canceling pending
      withdrawals, and deleting canceled records. All endpoints use the
      `v1.0/cardless-withdrawals` route prefix and the standard success/error
      response envelope. Path parameter `{id}` refers to the `transaction_id`
      (platform-assigned business identifier).
paths:
  /api/v2.0/disbursement/{account_id}/inquiry-status:
    post:
      tags:
        - Disbursement (Money Out)
      summary: Inquiry Status
      description: >-
        Retrieves the current status and details of a disbursement using your
        `reference_number` and the account in the path. For pending
        transactions, the service may refresh status from the banking partner
        before responding, See `Response Code` for the full SP000–SP020
        reference.
      operationId: disbursementV2InquiryStatus
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            description: >-
              Unique identifier (ULID) of the merchant account that owns the
              disbursement. Must belong to the authenticated merchant.
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisbursementInquiryStatusRequestBody'
      responses:
        '200':
          description: >-
            **SP000** Successfully. Merchant action: interpret
            `data.transaction_status` (`03` Pending, `00` Success, `06` Failed).
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/MerchantV2ApiEnvelopeDisbursementV2InquiryStatus
              example:
                response_code: SP000
                response_message: Successfully
                data:
                  transaction_id: '331222025121209092460774035'
                  reference_number: '1134567891011'
                  transaction_status:
                    code: '03'
                    desc: Pending
                  post_timestamp: '1765505364000'
                  processed_timestamp: ''
                  bank:
                    code: '002'
                    name: BRI
                    account_name: Cengkal Marpaung
                    account_number: '1234567890000'
                  gross_amount:
                    currency: IDR
                    value: '51000.00'
                  fee:
                    currency: IDR
                    value: '1000.00'
                  net_amount:
                    currency: IDR
                    value: '50000.00'
                  balance_after:
                    currency: IDR
                    value: '1000000.00'
                  notes: sometimes
        '404':
          description: '**SP008** Invalid Reference Number — account or reference not found.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MerchantV2ApiEnvelopeError'
              example:
                response_code: SP008
                response_message: Invalid Reference Number
                data:
                  reference_number: '113456'
                  message: '`reference_number` or `account_id` not found'
        '422':
          description: '**SP018** Validation error.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MerchantV2ApiEnvelopeError'
              example:
                response_code: SP018
                response_message: Validation error
                data:
                  reference_number: '113456'
                  message: >-
                    Validation error `reference_number`: `The reference number
                    field is required.`
      security:
        - BearerAuth: []
          PartnerId: []
components:
  schemas:
    DisbursementInquiryStatusRequestBody:
      description: Request body for looking up a disbursement by merchant reference number.
      required:
        - reference_number
      properties:
        reference_number:
          description: >-
            Merchant reference supplied when the transfer was created. Lookup is
            scoped to the account in the path and the authenticated merchant.
          type: string
          maxLength: 64
          example: '1134567891011'
      type: object
    MerchantV2ApiEnvelopeDisbursementV2InquiryStatus:
      description: >-
        Custom v2 envelope for disbursement inquiry status. Success uses `SP000`
        (HTTP 200).
      required:
        - response_code
        - response_message
        - data
      properties:
        response_code:
          $ref: '#/components/schemas/MerchantV2ResponseCode'
        response_message:
          $ref: '#/components/schemas/MerchantV2ResponseMessage'
        data:
          $ref: '#/components/schemas/DisbursementV2TransactionData'
      type: object
    MerchantV2ApiEnvelopeError:
      description: >-
        Custom v2 envelope for error outcomes (`response_code` other than
        `SP000`).
      required:
        - response_code
        - response_message
      properties:
        response_code:
          $ref: '#/components/schemas/MerchantV2ResponseCode'
        response_message:
          $ref: '#/components/schemas/MerchantV2ResponseMessage'
        data:
          $ref: '#/components/schemas/MerchantV2ApiErrorData'
      type: object
    MerchantV2ResponseCode:
      description: SingaPay custom business response code.
      type: string
      example: SP000
    MerchantV2ResponseMessage:
      description: Human-readable label paired with `response_code`.
      type: string
      example: Successfully
    DisbursementV2TransactionData:
      description: >-
        `data` on successful disbursement v2 transfer or v2 inquiry status (HTTP
        200, `response_code` SP000).
      properties:
        transaction_id:
          description: SingaPay disbursement identifier.
          type: string
          example: '101222025122910292195055674'
        reference_number:
          description: Merchant reference supplied when the transfer was created.
          type: string
          example: '11111111118'
        transaction_status:
          $ref: '#/components/schemas/DisbursementTransactionStatus'
        post_timestamp:
          description: >-
            Transaction creation time as a 13-digit Unix timestamp in
            milliseconds (string).
          type: string
          example: '1766978961000'
        processed_timestamp:
          description: >-
            Processing time as a 13-digit Unix timestamp in milliseconds
            (string). Empty or omitted while pending.
          type:
            - string
            - 'null'
          example: '1766978962000'
        bank:
          $ref: '#/components/schemas/DisbursementV2BankInfo'
        gross_amount:
          $ref: '#/components/schemas/DisbursementV2MoneyAmount'
          description: Total debited from the merchant account (net plus fee).
        fee:
          $ref: '#/components/schemas/DisbursementV2FeeAmount'
        net_amount:
          $ref: '#/components/schemas/DisbursementV2MoneyAmount'
          description: Amount credited to the beneficiary.
        balance_after:
          $ref: '#/components/schemas/DisbursementV2MoneyAmount'
          description: Merchant account balance after the debit.
        notes:
          description: Optional merchant note.
          type:
            - string
            - 'null'
          example: test transfer
        failed_code:
          description: Present when `transaction_status.code` is `06` (failed).
          type:
            - string
            - 'null'
          example: null
        failed_reason:
          description: Failure reason when `transaction_status.code` is `06` (failed).
          type:
            - string
            - 'null'
          example: null
      type: object
    MerchantV2ApiErrorData:
      description: >-
        Common `data` shape on error responses. May include request echo fields
        plus `message`.
      properties:
        message:
          description: >-
            Error or validation detail (for example upstream bank message or
            validation summary).
          type:
            - string
            - 'null'
          example: Validation error details.
      type: object
      additionalProperties: true
    DisbursementTransactionStatus:
      description: >-
        Mapped disbursement status returned in v2 transfer and inquiry
        responses.
      properties:
        code:
          description: >-
            Two-digit status code: `00` Success, `03` Pending, `06` Failed, and
            others.
          type: string
          example: '00'
        desc:
          description: Human-readable status (for example `Success`, `Pending`).
          type: string
          example: Success
      type: object
    DisbursementV2BankInfo:
      description: >-
        Destination bank and beneficiary account in v2 transfer and inquiry
        `data`.
      properties:
        code:
          description: Three-digit national bank code (for example `002` for BRI).
          type: string
          example: '002'
        name:
          description: Bank short name or display name.
          type: string
          example: BRI
        account_name:
          description: Beneficiary account holder name.
          type: string
          example: Dummy Test Account Internal
        account_number:
          description: Beneficiary bank account number.
          type: string
          example: '11111111118'
      type: object
    DisbursementV2MoneyAmount:
      description: Monetary amount in disbursement v2 API responses.
      properties:
        currency:
          description: ISO currency code. Always `IDR`.
          type: string
          example: IDR
        value:
          description: Amount as a decimal string in IDR.
          type: string
          example: '12504.00'
      type: object
    DisbursementV2FeeAmount:
      description: Transfer fee in v2 transfer and inquiry `data` (no `name` field).
      properties:
        currency:
          description: ISO currency code. Always `IDR`.
          type: string
          example: IDR
        value:
          description: Fee amount as a decimal string in IDR.
          type: string
          example: '2500'
      type: object
  securitySchemes:
    BearerAuth:
      type: http
      description: >-
        JWT issued by `POST /api/v1.1/access-token/b2b`. Send `Authorization:
        Bearer <token>`.
      bearerFormat: JWT
      scheme: bearer
    PartnerId:
      type: apiKey
      description: Merchant API key (`Credential.api_key`). Required on every request.
      name: X-PARTNER-ID
      in: header

````