1. Currency Exchange
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
          GET
        • Retrieve Exchange Rate and Create a Lock
          GET
        • Create and Finalize an Exchange
          POST
        • Retrieve Detailed Exchange Information
          GET
      • 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. Currency Exchange

Create and Finalize an Exchange

Testing Env
https://stage-api.fintegence.io
Testing Env
https://stage-api.fintegence.io
POST
/v1/exchange
Executes a currency exchange using a pre-established rate lock.
You must provide a valid rate lock ID (from the Retrieve Exchange Rate and Create a Lock endpoint) to execute at the locked rate.

Asynchronous Workflow#

The exchange process is asynchronous and requires the following steps:
1.
Create a Rate Lock: Call Retrieve Exchange Rate and Create a Lock to obtain a valid lockId. This ID is mandatory to execute the exchange at the locked rate.
2.
Execute the Exchange: Submit this endpoint with the lockId, amount, and currency pair. The system reserves funds and immediately returns an exchangeId.
3.
Track Status: To determine the final outcome (COMPLETED or FAILED):
Listen for the Exchange Webhook.
Poll Retrieve Exchange Details using the exchangeId.
Asynchronous Processing
Business logic errors such as insufficient funds are not checked immediately.
The API accepts the request and schedules it for processing. Verify the final outcome via the incoming webhook or by calling the details endpoint.

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
Bodyapplication/json

🟠401Access Denied
🟠400P403: Validation error
🟠404P412: User not exist
🟠400P432: Invalid Exchange Lock
🟠400P457: Currencies cannot be the same
🟠400P500: Unknown exception
🟠400P501: Service temporarily unavailable
🟠400P459: User not verified
Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://stage-api.fintegence.io/v1/exchange' \
--header 'x-api-key: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
  "sourceExternalUserId": "75a1d530-3c12-44e8-a23a-0241b9e73c87",
  "amount": 1,
  "currencyFrom": "eur",
  "currencyTo": "eth",
  "lockId": "e850ae7b-b416-4991-a8e1-1811e6c77e18"
}'
Response Response Example
201 - Success
{
    "exchangeId": "3f0aeaa7-1177-4d77-9985-0cb987809801"
}
Previous
Retrieve Exchange Rate and Create a Lock
Next
Retrieve Detailed Exchange Information
Built with