Partner API
  1. Partner Operations
Partner API
  • Getting Started
    • Introduction
    • Authentication
    • Business Use Cases
  • API References
    • Partner Operations
      • Get Balances
        GET
      • Create Wallet
        POST
      • Get Transaction History
        GET
      • Retrieve Exchange Rate and Create a Lock
        GET
      • Create and Finalize an Exchange
        POST
      • Retrieve Detailed Exchange Infromation
        GET
      • Create Crypto Withdrawal
        POST
      • Get Crypto Withdrawal Details
        GET
      • Create a SEPA Transfer
        POST
      • Get SEPA Transfer Details
        GET
    • User Accounts
      • Create User Account
      • Add KYC File
      • Add POA File
      • Add User Verification
      • Extend user
      • Update Existing User
      • Delete User
      • Suspend User
      • Unsuspend User
      • Get User Balances
      • Get User Transaction History
    • KYC by P100
      • Creating KYC Verification
      • Redirect to Verification
      • Get KYC Status
    • Currency Exchange
      • Retrieve Exchange Rate
      • Retrieve Exchange Rate and Create a Lock
      • Create and Finalize an Exchange
      • Retrieve Detailed Exchange Infromation
    • Crypto Deposits
      • Update Travel Rule
    • Crypto Withdrawals
      • Get Network Fee
      • Create Crypto Withdrawal
      • Get Crypto Withdrawal Details
    • 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
    • Custom Fiat Operations
      • SEPA Deposit & Withdrawal
    • Orders
      • Get Rates
      • Retrieve Order Rate and Create a Lock
      • Create and Finalize an Order
      • Get Order Details
    • Payment link
      • Generate Payment Link
      • Get Payment Link Details
  • Integration
    • SDKs & Integration Guides
    • Transaction Processing
    • Error Handling
    • Rate Limiting
    • Webhooks
      • User & KYC Webhooks
        • User Balance Generation
        • KYC File Added
        • POA Verification Status
        • KYC Verification Status
        • Create wallet
      • Transfers & Payments Webhooks
        • P2P Transfer Webhook
        • SEPA Transfer
        • SEPA Deposit
        • Crypto Withdrawal
        • Crypto Deposit
        • Exchange
        • Card Transaction
        • Order status
        • Payment Link
      • Card Webhooks
        • Card 3DS Code
        • Card Activation Code
  • Reference
    • Supported Countries
    • Supported Currencies
    • Fees
    • FAQ
    • Changelog
    • Support
  1. Partner Operations

Create and Finalize an Exchange

Testing Env
https://partner-api-stage.p100.io
Testing Env
https://partner-api-stage.p100.io
POST
/v1/partner/exchange
Executes a currency exchange using a pre-established rate lock.
This endpoint converts a specified amount from a source currency to a target currency at a guaranteed rate. A full list of available currency pairs can be found in the Supported Currencies guide.

Asynchronous Workflow#

The exchange process is asynchronous and requires the following steps:
1.
Create a Rate Lock: You must first call the POST /exchange/lock endpoint to obtain a valid rateLockId. This ID is mandatory to execute the exchange at the locked rate.
2.
Execute the Exchange: Call this endpoint (POST /exchange/execute) with the rateLockId and transaction details. The system validates the request, reserves the funds, and immediately returns an exchangeId.
3.
Track Transaction Status: To determine the final status of the transaction (e.g., completed or failed), you can:
Listen for an automated webhook notification sent to your configured endpoint.
Poll the GET /exchange/{exchangeId} endpoint at any time using the exchangeId.

Business logic errors (such as insufficient funds) are not checked at this stage. Processing occurs asynchronously. Use the Get Transfer Details endpoint to verify the final status and any errors.

Request

Authorization
API Key
Add parameter in header
x-api-key
Example:
x-api-key: ********************
or
Body Params application/json

Examples

Responses

🟢201Created
application/json
Body

🟠401Access Denied
🟠400P403: Validation error
🟠400P432: Invalid Exchange Lock
🟠400P457: Currencies cannot be the same
🟠400P500: Unknown exception
🟠400P501: Service temporarily unavailable
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://partner-api-stage.p100.io/v1/partner/exchange' \
--header 'x-api-key: <api-key>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "amount": 10,
  "currencyFrom": "eth",
  "currencyTo": "eur",
  "lockId": "ee7b2f0f-0ffb-4fce-8fb3-66db2ca1f461"
}'
Response Response Example
201 - Success
{
    "exchangeId": "3f0aeaa7-1177-4d77-9985-0cb987809801"
}
Previous
Retrieve Exchange Rate and Create a Lock
Next
Retrieve Detailed Exchange Infromation
Built with