Partner API
  1. Integration
Partner API
  • Getting Started
    • Introduction
    • Authentication
    • Business Use Cases
  • API References
    • Partner Operations
      • Balances & Transaction History
        • Get Balances
        • Get Transaction History
        • Create Wallet
      • Currency Exchange
        • Retrieve Exchange Rate
        • Retrieve Exchange Rate and Create a Lock
        • Create and Finalize an Exchange
        • Retrieve Detailed Exchange Information
      • SEPA Transfers
        • Get SEPA Deposit Info
        • Get SEPA Deposit Contact List
        • Create a SEPA Transfer
        • Get SEPA Transfer Details
      • Crypto Withdrawal
        • Get Network Fee
        • Create Crypto Withdrawal
        • Get Crypto Withdrawal Details
      • Crypto Deposits
        • Update Travel Rule
      • Orders
        • Get Rates
        • Retrieve Order Rate and Create a Lock
        • Create and Finalize an Order
        • Get Order Details
      • Payment link & Checkout Link
        • Generate Payment Link
        • Generate Hosted Checkout
        • Get Payment Link Details
    • User Operations
      • Onboarding & KYC Flow
        • Create User Account
        • Method A: Add KYC File
        • Method B: Creating KYC Verification
        • Method B: Redirect to Verification
        • Method B: Get KYC Status
        • Add User Verification
        • Add POA File
      • Account Management
        • Update Existing User
        • Delete User
        • Suspend User
        • Unsuspend User
      • Balances & Transaction History
        • Get User Balances
        • Get User Transaction History
      • Currency Exchange
        • Retrieve Exchange Rate
        • Retrieve Exchange Rate and Create a Lock
        • Create and Finalize an Exchange
        • Retrieve Detailed Exchange Information
      • SEPA Transfers
        • Get SEPA Deposit Info
        • GET SEPA Deposit Contact List
        • Create a SEPA Transfer
        • Get SEPA Transfer Details
      • Crypto Withdrawal
        • Get Network Fee
        • Create Crypto Withdrawal
        • Get Crypto Withdrawal Details
      • Crypto Deposits
        • Update Travel Rule
      • Internal Transfers
        • Create a Transfer
        • Get Transfer Details
      • Virtual Cards
        • Create Virtual Card
        • Get All User Cards
        • Get Card Details
        • Update Card PIN
        • Block Card
        • Unblock Card
        • Get Card Limits
        • Update Card Limits
        • Delete Card
  • Integration
    • SDKs & Integration Guides
    • Transaction Processing
    • Error Handling
    • Rate Limiting
    • Webhooks
      • User & KYC Webhooks
        • User Balance Generation Webhook
        • KYC File Added Webhook
        • POA Verification Status Webhook
        • KYC Verification Status Webhook
        • Create Wallet Webhook
        • High Risk KYC Verification Webhook
      • Transfers & Payments Webhooks
        • Internal Transfer Webhook
        • IBAN Status Webhook
        • Partner SEPA Transfer Webhook
        • User SEPA Transfer Webhook
        • SEPA Deposit Webhook
        • Crypto Withdrawal Webhook
        • Crypto Deposit Webhook
        • Exchange Webhook
        • Card Transaction Webhook
        • Order status Webhook
        • Payment Link Webhook
      • Card Webhooks
        • Card 3DS Code Webhook
        • Card Activation Code Webhook
  • Reference
    • Supported Countries
    • Supported Currencies
    • Fees
    • FAQ
    • Changelog
    • Support
  1. Integration

Error Handling

The P100 API uses a consistent JSON structure for error responses. Understanding the two primary types of errors is key to building a robust integration.

1. Standard API Errors (Business Logic)#

These errors relate to business logic, resource states, or permissions, and always feature a three-field structure.
Example:
{
  "errorCode": "P424",
  "errorName": "source-or-destination-required",
  "errorMessage": "Source or destination must be provided."
}
errorCode: A unique code (e.g., P424, P433) for driving application logic.
errorName: A human-readable identifier for the error.
errorMessage: A detailed description for debugging and logging purposes.

2. Validation Errors (P403)#

These errors are automatically generated when request data fails format validation (e.g., invalid email format, missing required field). They have a streamlined structure.
Example:
{
  "errorCode": "P403",
  "errorMessage": "currency must be one of the following values: btc, eth, usdt. Amount can have at most 8 decimal places."
}
Key Characteristics:
Fixed Error Code: Always returns errorCode: "P403".
errorName is Omitted.
Concatenated Messages: errorMessage may contain multiple validation failures in a single string.
Always a 400 Status: The response will always have HTTP 400 Bad Request.
P403 Note: This is an aggregate error code. The errorMessage field may contain multiple, concatenated messages about various failed conditions (e.g., invalid data format, missing required field). For a comprehensive list of possible validation rules, please refer to the specific endpoint documentation or contact support.

Best Practices for Error Handling#

Regardless of the error type, follow this unified approach:
1.
Check the HTTP Status Code First: Use the status code (4xx or 5xx) as the initial indicator of an error.
2.
Use errorCode for Logic:
If errorCode is P403, handle it as a general validation failure (e.g., display an "invalid input" message to the user).
For other codes (e.g., P424, P433), implement specific logic if necessary (e.g., "Insufficient funds"). However, rely primarily on errorName for readable identifiers.
3.
Log errorMessage for Debugging: Always log the full errorMessage to aid in diagnosing issues, but do not display it directly to the end-user, as it may contain sensitive technical details.

Common Error Codes Reference (Selected)#

Instead of listing all possible errors, focus on the most common or critical ones, and group them logically. Developers can always consult support or logs for less frequent errors.

HTTP: 400 - Bad Request Errors (Common)#

Error CodeError NameError Message Example
P403Validation Errorcurrency must be one of the following values...
P410invalid-currencyCurrency not found
P411user-existsUser exists
P412invalid-userUser does not exist
P424source-or-destination-requiredSource or destination must be provided.
P433insufficient-fundsInsufficient funds
P451forbidden-country-cardUser of this country cannot have card
P455user-suspendedUser suspended

HTTP: 401 - Unauthorized Errors#

ResponseDescription
Access Denied. xo1API key not provided
Access Denied. xo2Invalid API key provided
Access Denied. xo3IP address not whitelisted (production)

HTTP: 404 - Not Found Errors (Common)#

Error CodeError NameError Message Example
P421withdrawal-not-foundWithdrawal not found
P423transfer-not-foundTransfer not found
P425exchange-not-foundExchange not found
P463order-not-foundOrder not found
P464payment-link-not-foundPayment link not found

HTTP: 202 - Accepted (Pending Responses)#

Error CodeError NameError Message Example
P210poa-file-not-foundPOA file not yet uploaded.
P211poa-verification-pendingPOA verification pending
P212kyc-verification-pendingKYC verification pending

Need Help?#

📖 FAQ
Find answers to the most common questions about our API.
💬 Support
Can't find what you're looking for? Contact our support team for assistance.
Previous
Transaction Processing
Next
Rate Limiting
Built with