Singapay Home Page
Logo Icon
  1. E-Wallet (Money In)
  2. Inquiry Status

Overview

The Inquiry Status endpoint checks the latest payment status directly from the e-wallet vendor (ShopeePay or Dana). If the vendor confirms the payment has been completed, this endpoint will automatically update the transaction status from open to success and process the payment flow.

This is useful when:

  • You want to actively check if a customer has completed payment
  • Webhook notification was not received or was delayed
  • You need to confirm the final status of a transaction

Information

MethodPathFormatAuthentication
GET/api/v1.0/ewallet-native/{account_id}/inquiry-status/{id}jsonOAuth 2.0 with Access Token

Request Details

Path Parameters

ParameterTypeMandatoryDescriptionExample
account_idStringRequiredYour account ULID01K8AESCCKYSD98Z3P9RSDA36W
idIntegerRequiredTransaction ID to check status for42

Headers Structure

FieldValueTypeMandatoryLengthDescriptionExample
X-PARTNER-IDapi_keyAlphanumericMandatoryAPI key obtained from the merchant dashboard.b3ed7d4b-a96c-6c08-b3c7-12c3124242d9
Acceptapplication/jsonAlphabeticMandatorySpecifies JSON as the expected response format.application/json
AuthorizationBearer {bearerToken}AlphanumericMandatoryBearer token obtained from the get access token endpoint.Bearer eyJ0eXAiOiJKV1{…}

Request Example

GET /api/v1.0/ewallet-native/01K8AESCCKYSD98Z3P9RSDA36W/inquiry-status/42

cURL Example:

curl -X GET "https://api.singapay.id/api/v1.0/ewallet-native/01K8AESCCKYSD98Z3P9RSDA36W/inquiry-status/42" \
  -H "X-PARTNER-ID: b3ed7d4b-a96c-6c08-b3c7-12c3124242d9" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..."

Response Details

Response Structure

The response uses the same transaction structure as Show Transaction. The key difference is that this endpoint may update the transaction status before returning the data.

FieldTypeMandatoryDescriptionExample
statusNumericMandatoryHTTP Status Code200
successBooleanMandatory2xx is true. 4xx–5xx is false.true
dataObjectConditionalTransaction details (with latest status from vendor)-
> idIntegerMandatoryUnique transaction ID42
> reff_noStringMandatoryUnique reference numberEWT01JKABCDEF123456789
> statusStringMandatoryUpdated transaction statussuccess
> status_computedStringMandatoryComputed statussuccess
> is_expiredBooleanMandatoryWhether the checkout URL has expiredfalse
> ewallet_vendorStringMandatoryE-wallet vendor codeEWALLET_SHOPEEPAY
> amountDecimalMandatoryPayment amount50000.0
> total_amountDecimalMandatoryTotal transaction amount50000.0
> merchant_feeDecimal/NullOptionalTotal fee charged to the merchant1000.0
> net_amountDecimal/NullOptionalNet amount after fees49000.0
> checkout_urlString/NullOptionalWeb redirect URLhttps://wsa.wallet.airpay.co.id/
> vendor_reference_noString/NullOptionalReference number from e-wallet vendorSP20260209ABC123
> merchant_redirect_urlString/NullOptionalCustom redirect URL provided at checkout creationhttps://yoursite.com/payment/callback
> payment_channelString/NullOptionalPayment channel (updated after successful inquiry)SHOPEEPAY
> processed_timestampString/NullOptionalPayment processing timestamp (set after success)2026-02-09T13:05:00+00:00
> expired_atString/NullOptionalCheckout expiration time (ISO 8601)2026-02-09T13:30:00+00:00
> created_atStringMandatoryTransaction creation time (ISO 8601)2026-02-09T13:00:00+00:00
> updated_atStringMandatoryLast update time (ISO 8601)2026-02-09T13:05:00+00:00
> events_countIntegerMandatoryNumber of events logged3
> eventsArray/NullOptionalTransaction event logs (included relation)-

Response Example - Payment Confirmed

Success: The inquiry found that payment was completed. Transaction status updated to “success”.

{
    "status": 200,
    "success": true,
    "data": {
        "id": 42,
        "account_id": 15,
        "reff_no": "EWT01JKABCDEF123456789",
        "status": "success",
        "status_computed": "success",
        "is_expired": false,
        "ewallet_vendor": "EWALLET_SHOPEEPAY",
        "amount": 50000.0,
        "total_amount": 50000.0,
        "merchant_fee": 1000.0,
        "net_amount": 49000.0,
        "checkout_url": "https://wsa.wallet.airpay.co.id/universal-link/wallet/pay?deep_and_deferred=1&txn_token=abc123",
        "checkout_url_app": "shopeeid://main?type=transfer&token=abc123",
        "vendor_reference_no": "SP20260209ABC123",
        "merchant_redirect_url": "https://yoursite.com/payment/callback",
        "additional_info": {
            "web_redirect_url": "https://wsa.wallet.airpay.co.id/universal-link/wallet/pay?deep_and_deferred=1&txn_token=abc123",
            "app_redirect_url": "shopeeid://main?type=transfer&token=abc123",
            "shopeepay_reference_no": "SP20260209ABC123",
            "response_code": "2005400"
        },
        "customer_name": "John Doe",
        "customer_email": "john@example.com",
        "customer_phone": "081234567890",
        "balance_after": null,
        "has_recon": false,
        "recon_at": null,
        "recon_by": null,
        "has_settle": false,
        "settle_at": null,
        "settle_by": null,
        "has_settle_request": false,
        "settle_request_at": null,
        "settle_request_by": null,
        "payment_channel": "SHOPEEPAY",
        "payment_vendor_code": "EWALLET_SHOPEEPAY",
        "is_auto_settle": false,
        "settlement_method": null,
        "processed_timestamp": "2026-02-09T13:05:00+00:00",
        "expired_at": "2026-02-09T13:30:00+00:00",
        "created_at": "2026-02-09T13:00:00+00:00",
        "updated_at": "2026-02-09T13:05:00+00:00",
        "deleted_at": null,
        "events_count": 2,
        "events": [
            {
                "id": 1,
                "event_type": "ewallet_checkout_created",
                "direction": "OUT",
                "source": "API",
                "created_at": "2026-02-09T13:00:00+00:00"
            },
            {
                "id": 2,
                "event_type": "ewallet_payment_success_inquiry",
                "direction": "IN",
                "source": "API",
                "created_at": "2026-02-09T13:05:00+00:00"
            }
        ]
    }
}

Response Example - Still Pending

When the vendor has not yet received payment, the transaction status remains unchanged:

{
    "status": 200,
    "success": true,
    "data": {
        "id": 42,
        "account_id": 15,
        "reff_no": "EWT01JKABCDEF123456789",
        "status": "open",
        "status_computed": "open",
        "is_expired": false,
        "ewallet_vendor": "EWALLET_SHOPEEPAY",
        "amount": 50000.0,
        "total_amount": 50000.0,
        "merchant_fee": 1000.0,
        "net_amount": 49000.0,
        "checkout_url": "https://wsa.wallet.airpay.co.id/universal-link/wallet/pay?deep_and_deferred=1&txn_token=abc123",
        "checkout_url_app": "shopeeid://main?type=transfer&token=abc123",
        "vendor_reference_no": "SP20260209ABC123",
        "merchant_redirect_url": "https://yoursite.com/payment/callback",
        "customer_name": "John Doe",
        "customer_email": "john@example.com",
        "customer_phone": "081234567890",
        "payment_channel": null,
        "processed_timestamp": null,
        "expired_at": "2026-02-09T13:30:00+00:00",
        "created_at": "2026-02-09T13:00:00+00:00",
        "updated_at": "2026-02-09T13:00:00+00:00",
        "events_count": 1
    }
}

Error: Transaction not found.

{
    "status": 404,
    "success": false,
    "error": {
        "message": "E-Wallet transaction not found"
    }
}

How It Works

  1. If status is already success: Returns the current transaction data immediately without calling the vendor API.
  2. If status is open: Calls the e-wallet vendor API to check the latest payment status.
    • If vendor confirms payment (status code 00), the transaction is processed: status changes to success, payment channel is updated, and an event is logged.
    • If vendor has not received payment yet, the transaction data is returned as-is.
  3. If vendor API fails: The error is logged internally, and the current transaction data is returned without changes.

Important Notes

  • State-Changing Endpoint: Unlike the Show endpoint, Inquiry Status can trigger state changes. If payment is confirmed by the vendor, the transaction status will be updated from open to success.
  • Idempotent for Success: If the transaction is already success, calling this endpoint has no side effects — it simply returns the current data.
  • Polling Strategy: If you need to poll for payment completion, wait at least 5-10 seconds between calls. Do not poll more frequently than necessary.
  • Prefer Webhooks: For real-time payment notifications, configure webhooks instead of polling this endpoint.
  • Vendor Timeout: If the vendor API is slow or unreachable, this endpoint still returns the current transaction data — it does not fail.