v2.0 (Production)
    • v2.0 (Production)
    • v2.1 (Sandbox)
    • v2.0 (Sandbox)
    • v1.0 (Deprecated)
    • Getting Started
    • Account Setup
    • Webhook
    • Idempotent Requests
    • API Error Handling Guide
    • Authentication
      • Authentication
      • Get Token
        POST
    • Account Management
      • Get Balance
        GET
      • Internal Transfer
        POST
      • Get Internal Transfer
        GET
      • Get Settlement Statement
        GET
    • Merchant Management
      • [Recommended] Create Merchant
      • [Recommended] Get Merchant
      • [Recommended] Merchant Status Webhook
      • Merchant Status Webhook
    • Fiat Payment
      • Fiat Account Management
        • Get Fiat Account Capabilities
        • Create Fiat Account Request
        • Submit Additional Information for Fiat Account Request
        • Get Fiat Account Application Status
        • Fiat Account Request Status Webhook
        • Fiat Account Application Status Webhook
        • Add Bank Account
        • Get Bank Accounts
      • Fiat Deposit
        • Get Deposit Bank Account
        • Get Fiat Deposit Detail
        • Get Fiat Deposit History
        • Fiat Deposit Webhook
      • Fiat Withdrawal
        • Get Same Name Withdrawal Capabilities
        • Activate Same Name Withdrawal
        • Submit Additional Information for Activating Same Name Withdrawal
        • Activate Same Name Withdrawal Webhook
        • Create Fiat Withdrawal
        • Submit Additional Information for Fiat Withdrawal Request
        • Get Fiat Withdrawal Detail
        • Get Fiat Withdrawal History
        • Fiat Withdrawal Webhook
    • Crypto Payment
      • Crypto Checkout
        • Create Crypto Checkout
        • Create Crypto Checkout Link
        • Crypto Checkout Wallet Connection
        • Generate POS Payment Request
        • Close Crypto Checkout
        • Get Convertible Cryptos
        • Get Crypto Checkout
        • Get Crypto Checkout Link
        • Get Crypto Checkout Currencies
        • Crypto Checkout Webhook
      • Crypto Deposit
        • Update Crypto Deposit Travel Rule Info
        • Get Crypto Deposit Wallet
        • Get Crypto Deposit
        • Get Crypto Deposit History
        • Crypto Deposit Webhook
      • Crypto Withdrawal
        • Register Wallet Address
        • Remove Wallet Address
        • Create Crypto Withdrawal
        • Get Wallet Address
        • Get Crypto Withdrawal
        • Get Crypto Withdrawal History
        • Crypto Withdrawal Webhook
      • Crypto Collection
        • Buyer Management
          • Create Buyer
          • Get Buyer
          • Update Buyer
          • Buyer Status Webhook
        • Create Collection Wallet
        • Update Collection Wallet
        • Get Collection Wallet
        • Get Crypto Collection
        • Update Co-KYT status
        • Crypto Collection Wallet Webhook
        • Crypto Collection Webhook
      • Crypto Refund
        • Create Crypto Refund
        • Confirm Crypto Refund
        • Get Crypto Refund
        • Crypto Refund Webhook
      • Currency & Blockchain
        • Get Supported Blockchains
    • Conversion
      • Create Quotation
      • Create Conversion
      • Get Quotation
      • Get Conversion
      • Conversion Webhook
    • Tools
      • [Recommended] Upload File
        POST
      • [Deprecated] Upload File
        POST
      • getTnC
        GET
    • Release Note
      • Version 1.0 Release Note
      • Version 1.0.1 Release Note
      • Version 1.0.2 Release Note
      • Version 1.0.3 Release Note
      • Version 1.0.4 Release Note
    • Deprecated APIs
      • Deprecated
        • [Deprecated] Create Fiat Account Application(v1.0)
        • [Deprecated] Get Fiat Account Application Status(v1.0)
        • [Deprecated] Fiat Account Application Status Webhook(v1.0)
      • (Deprecated)Withdrawal
        • Create Withdrawal Request
        • Get Withdrawal Detail
        • Get Withdrawal History
        • Create Third Party Withdrawal Request
      • (Deprecated)Deposit
        • Get Deposit Detail
        • (Deprecated)Get Deposit Bank Account
        • Get Deposit Wallet
        • Get Deposit History
      • (Deprecated) Payment
        • Create Payment Request
        • Get Payment Request
        • Get List of Supported Currencies for Payment Link Generation
        • Get Payment Wallet Address
      • (Deprecated) OTC Trading
        • (Deprecated)Get Quote
        • (Deprecated)Create OTC Trading
        • (Deprecated)Get Trade Detail
        • (Deprecated)Get Trade History
      • (Deprecated) Account Management
        • (Deprecated) Get Balance
        • (deprecated) Get Statement
        • (Deprecated) Internal Transfer
      • (Deprecated) Address Book
        • (Deprecated)Add Bank Account
        • (Deprecated)Get Bank Accounts
      • (Deprecated) Merchant Management
        • (Deprecated)Create End User Account
      • Deprecated
        • [Deprecated] Get List of Currencies that Supports Same-Name Withdrawal
        • [Deprecated] Create Fiat Withdrawal(v1.0)
        • [Deprecated] Get Fiat Withdrawal Detail(v1.0)
        • [Deprecated] Get Fiat Withdrawal History(v1.0)
        • Fiat Withdrawal Webhook
      • Deprecated
        • [Deprecated] Create Merchant(v1.0)
        • [Deprecated] Get Merchant(v1.0)
        • [Deprecated] Merchant Status Webhook(v1.0)
      • (Deprecated) Intra Account Sweep

    API Error Handling Guide

    Overview#

    Our API uses standard HTTP response codes to indicate the success or failure of an API request. When an error occurs, the response body will contain a JSON object structured according to IETF RFC 7807 (Problem Details for HTTP APIs).
    This standardized format allows you to programmatically handle errors based on stable error codes while providing human-readable details for debugging.

    HTTP Status Codes#

    We use the following HTTP status codes to indicate the general class of the response:
    Status CodeDescription
    200 OKThe request was successful.
    400 Bad RequestThe request was invalid (e.g., missing parameters, invalid format).
    401 UnauthorizedAuthentication failed (e.g., API key is missing or invalid).
    403 ForbiddenYou do not have permission to access this resource.
    422 Unprocessable EntityThe request was well-formed but failed business logic validation (e.g., insufficient funds).
    429 Too Many RequestsYou have exceeded your rate limit.
    500 Internal Server ErrorSomething went wrong on our end. Please contact support with the logId.
    503 Service UnavailableThe service or an upstream dependency is temporarily unavailable. Please retry later.

    Error Response Structure#

    In the event of an error (4xx or 5xx), the response body will follow this structure:
    {
      "type": "https://api-doc.mce.sg/8182426m0",
      "title": "Insufficient Funds",
      "status": 422,
      "detail": "The transaction amount (150.00) exceeds the available balance.",
      "instance": "/v1.0/payment/fiat/createWithdrawal",
      "code": "PAY_INSUFFICIENT_FUNDS",
      "logId": "0a1b2c3d-4e5f-6789-0123-456789abcdef"
    }
    

    Field Definitions#

    FieldTypeDescription
    codeStringThe specific error identifier.
    detailStringA human-readable explanation specific to this occurrence of the problem. Safe to display to your end-users.
    logIdStringTechnical Support ID. A unique identifier for the specific request trace on our infrastructure. Please log this ID and provide it when contacting Technical Support. It is distinct from your business
    titleStringA short, readable summary of the problem type.
    statusIntegerThe HTTP status code generated by the origin server for this occurrence of the problem.
    typeStringA URI reference that identifies the problem type and links to documentation.
    instanceString(Optional) A URI reference that identifies the specific resource where the error occurred.

    Error Code Pattern#

    Our error codes follow a semantic string pattern to help you quickly identify the source of the error.
    Format: SERVICE_CODE
    Prefix (SERVICE): Identifies the module (e.g., PAY for Payments, AUTH for Authentication).
    Suffix (CODE): Identifies the specific error (e.g., INVALID_PARAM, TIMEOUT, 001).
    Common Examples:
    PAY_INSUFFICIENT_FUNDS: Business logic error in the Payment module.
    AUTH_TOKEN_EXPIRED: The access token has expired.
    GATEWAY_TIMEOUT: Upstream service timeout.

    Need Help?#

    If you encounter an error that persists or is not documented, please contact our support team.
    Crucial: When reporting an issue, please copy the logId from the error response. This allows our engineering team to locate the logs for your specific request immediately.
    Support Email: api_support@mce.sg
    Ticket Format: "API Error - logId: [Insert logId here]"
    Modified at 2026-02-11 07:10:39
    Previous
    Idempotent Requests
    Next
    Authentication
    Built with