Multigate
  1. 🔃 Conversions
Multigate
  • 🚀 Getting Started
  • 🔓 Authentication
    • Get Token
    • Refresh Token
    • Logout User
  • 👋 Onboarding
    • Create Subclient
    • Get All Subclients
    • Get Subclient
    • Update Subclient
    • Create Subclient Shareholder
    • Get Subclient Shareholders
    • Update Subclient Shareholder
    • Upload Subclient Documents
    • Get Subclient Documents
    • Delete Subclient
    • Submit Subclient
  • 💰 Accounts
    • 📄 Statements
      • Get Statement
    • Create Virtual Account
    • Get Account
    • Get Accounts By
    • Get All Accounts
    • Simulate Inflow (UAT only)
  • 🔃 Conversions
    • Get Quote
      GET
    • Lock Rate
      POST
    • Get Trade
      GET
    • Get All Trades
      GET
  • 💸 Payments
    • 🏦 Banks
      • Get Bank Details
    • 👤 Beneficiaries
      • Create Beneficiary
      • Get All Beneficiaries
      • Get Beneficiary
      • Update Beneficiary
      • Validate Beneficiary Account (NGN only)
    • Create Single Transfer
    • Get Purpose Codes
    • Get Transfer Fields & Fees
    • Find Transfers
  • 📩 Webhooks / Push Notifications
    • Add a New Client Configuration
    • Update Client Configuration Current Mode
    • Get Client Configuration
  1. 🔃 Conversions

Lock Rate

POST
/trade-service/api/v1/fx-rates/lock-rate
Lock in a trade using a previously obtained rate.

Request

Authorization
Provide your bearer token in the
Authorization
header when making requests to protected resources.
Example:
Authorization: Bearer ********************
Body Params application/json
id
string 
required
The previously obtained rate id
sourceAccountId
string 
required
Source account
targetAccountId
string 
required
Target account
amount
number 
required
The desired target/buy amount
Example
{
  "id": "fxr_7m2ScBy6TZI6Qh",
  "sourceAccountId": "AZ99gZadFmmw5Z5W5FDXy",
  "targetAccountId": "jKp7XzQ3WvMl2Rt8Y9GnB",
  "amount": 100
}

Request samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://api-gateway-uat.mmacs.io/platform/trade-service/api/v1/fx-rates/lock-rate' \
--header 'Content-Type: application/json' \
--data-raw '{
    "id": "fxr_7m2ScBy6TZI6Qh",
    "sourceAccountId": "AZ99gZadFmmw5Z5W5FDXy",
    "targetAccountId": "jKp7XzQ3WvMl2Rt8Y9GnB",
    "amount": 100
}'

Responses

🟢200OK
application/json
Body
message
string 
required
Message
id
string 
required
Rate/trade id
valueDate
string 
required
Value date (UTC)
sourceAmount
string 
required
Source/sell amount (calculated and rounded to 2 decimal places)
sourceCurrency
string 
required
Source/sell currency
rate
string 
required
FX rate
targetAmount
string 
required
Target/buy amount
targetCurrency
string 
required
Target/buy currency
tradeReference
string 
required
Trade reference
status
enum<string> 
required
Status
Allowed values:
processingcompleted
sourceAccountNumber
string 
required
Source account number
targetAccountNumber
string 
required
Target account number
createdAt
string 
required
Date/time (UTC) when the rate was locked and trade was created
updatedAt
string 
required
Date/time (UTC) last updated
Example
{
  "message": "The FX rate has been successfully locked.",
  "id": "fxr_lck_Bpp4QwX77UfMhE",
  "valueDate": "2025-04-03T22:29:11.679Z",
  "sourceAmount": "163634.25",
  "sourceCurrency": "NGN",
  "rate": "0.0006111189998765252",
  "targetAmount": "100",
  "targetCurrency": "USD",
  "tradeReference": "fxr_5bDRH6DeaUyYNU",
  "status": "processing",
  "sourceAccountNumber": "0018251053",
  "targetAccountNumber": "0378576798",
  "createdAt": "2025-04-03T22:29:11.679Z",
  "updatedAt": "2025-04-03T22:29:11.679Z"
}
🟠400Invalid input
Previous
Get Quote
Next
Get Trade
Built with