> ## 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 Account

> Validates a beneficiary's e-wallet account details and retrieves applicable transfer limits and fee information. This endpoint queries the e-wallet provider through Shanghai Core gateway to verify account validity and calculate transaction fees. Use this endpoint before initiating an actual transfer to ensure the account exists and meets your requirements. Optional **X-Signature** and **X-Timestamp** headers are required when your integration uses internal request signing.



## OpenAPI

````yaml https://payment-b2b.singapay.id/api/docs/merchant-api.json post /api/v2.0/ewallet/account-inquiry
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/ewallet/account-inquiry:
    post:
      tags:
        - E-Wallet (Money Out)
      summary: Inquiry Account
      description: >-
        Validates a beneficiary's e-wallet account details and retrieves
        applicable transfer limits and fee information. This endpoint queries
        the e-wallet provider through Shanghai Core gateway to verify account
        validity and calculate transaction fees. Use this endpoint before
        initiating an actual transfer to ensure the account exists and meets
        your requirements. Optional **X-Signature** and **X-Timestamp** headers
        are required when your integration uses internal request signing.
      operationId: ewalletTopUpAccountInquiry
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EwalletTopUpAccountInquiryRequest'
      responses:
        '200':
          description: >-
            Success — `data` matches `EwalletAccountInquirySuccessData`
            (`SP000`)
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/EwalletMoneyOutInquiryAccountSuccessResponse
        '404':
          description: '**SP117** beneficiary not found'
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/EwalletMoneyOutBeneficiaryInfoNotFoundResponse
        '504':
          description: '**SP009** timeout (upstream)'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EwalletMoneyOutTimeoutResponse'
      security:
        - BearerAuth: []
          PartnerId: []
components:
  schemas:
    EwalletTopUpAccountInquiryRequest:
      description: >-
        Request payload for validating e-wallet beneficiary and retrieving
        transfer limits and fee information.
      required:
        - account_id
        - ewallet_code
        - customer_number
        - amount
      properties:
        account_id:
          description: >-
            Unique identifier (ULID) of the merchant account from which funds
            will be transferred.
          type: string
          maxLength: 64
          example: 01K5G4FZZ18DMK0M5QTR8Y9QY9
        ewallet_code:
          description: >-
            E-wallet provider code. Supported providers: DANA, OVO, GOPAY,
            SHOPEEPAY. Must be a valid code from the provider list.
          type: string
          example: DANA
        customer_number:
          description: >-
            Beneficiary phone number or e-wallet account identifier. Format and
            validation rules are specific to the selected e-wallet provider.
          type: string
          maxLength: 15
          minLength: 10
          example: '085733347341'
        amount:
          $ref: '#/components/schemas/EwalletMoneyOutMoneyAmount'
          description: >-
            Transfer amount to be validated against provider limits and
            available balance.
      type: object
    EwalletMoneyOutInquiryAccountSuccessResponse:
      description: >-
        Success response data from account inquiry endpoint (HTTP 200). Includes
        beneficiary details, transfer limits, and fee calculation.
      properties:
        response_code:
          description: Standardized response code (e.g., SP000 for success)
          type: string
          example: SP000
        response_message:
          description: Human-readable response message
          type: string
          example: Successful
        data:
          $ref: '#/components/schemas/EwalletAccountInquirySuccessData'
          description: Detailed data about the e-wallet account inquiry result
      type: object
    EwalletMoneyOutBeneficiaryInfoNotFoundResponse:
      description: >-
        Response when beneficiary information is not found during account
        inquiry.
      properties:
        response_code:
          description: Standardized response code (e.g., SP117 for beneficiary not found)
          type: string
          example: SP117
        response_message:
          description: Human-readable response message
          type: string
          example: Beneficiary not found
        data:
          description: Additional data or null when beneficiary is not found
          properties:
            ewallet_code:
              description: E-wallet provider code that was queried
              type: string
              example: DANA
            customer_number:
              description: Beneficiary account identifier that was queried
              type: string
              example: '085733347341'
          type: object
      type: object
    EwalletMoneyOutTimeoutResponse:
      description: Response when a timeout occurs during account inquiry or status refresh.
      properties:
        response_code:
          description: Standardized response code (e.g., SP009 for timeout)
          type: string
          example: SP009
        response_message:
          description: Human-readable response message
          type: string
          example: Upstream timeout
        data:
          description: Additional data or null when a timeout occurs
          properties:
            reference_number:
              description: Reference number of the transaction that experienced a timeout
              type: string
              example: '176458254538481'
          type: object
      type: object
    EwalletMoneyOutMoneyAmount:
      description: >-
        Monetary amount with currency information. All amounts are displayed
        with exactly 2 decimal places.
      required:
        - value
        - currency
      properties:
        value:
          description: Numeric amount with exactly 2 decimal places (e.g., 10000.50)
          type: string
          pattern: ^\d+\.\d{2}$
          example: '10000.00'
        currency:
          description: Currency code (ISO 4217)
          type: string
          enum:
            - IDR
          example: IDR
      type: object
    EwalletAccountInquirySuccessData:
      description: >-
        Success response data from account inquiry endpoint (HTTP 200). Includes
        beneficiary details, transfer limits, and fee calculation.
      properties:
        ewallet_code:
          description: Confirmed e-wallet provider code
          type: string
          example: DANA
        customer_number:
          description: Confirmed beneficiary phone number or account identifier
          type: string
          example: '085733347341'
        customer_name:
          description: Beneficiary name as registered with the e-wallet provider
          type: string
          example: John Doe
        min_amount:
          $ref: '#/components/schemas/EwalletMoneyOutMoneyAmount'
          description: Minimum transfer amount allowed by the provider
        max_amount:
          $ref: '#/components/schemas/EwalletMoneyOutMoneyAmount'
          description: Maximum transfer amount allowed by the provider
        amount:
          $ref: '#/components/schemas/EwalletMoneyOutMoneyAmount'
          description: Net amount to be transferred to beneficiary (after fees)
        fee_amount:
          $ref: '#/components/schemas/EwalletMoneyOutMoneyAmount'
          description: Platform or provider fee for this transaction
        gross_amount:
          $ref: '#/components/schemas/EwalletMoneyOutMoneyAmount'
          description: Total amount including fees (deducted from merchant balance)
      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

````