IMTO Payment
Overview
Our IMTO service provides businesses with a comprehensive set of endpoints for managing International Money Transfer Operations . It covers authentication, partner management, wallet operations, FX rates, fees, user management, reporting, and more. Use this service to test, integrate, and automate workflows for IMTO-related business processes.
Key Features
Authentication: Secure access for partners. Partner Management: Onboard, update, and manage business partners. Wallet Operations: Create, fund, and manage partner wallets. FX Rate Management: Retrieve currency exchange rates. User Management: Invite, activate, and manage users. Reporting: Generate transaction and operational reports.
Getting Integration Credentials
To call our IMTO service, you need to get your Client Id and Client Secret from the business portal. You can find the guide here Getting Integration Credentials.
You can create your wallet on the business portal and pick the wallet ID from there under the wallets menu.
Funding your Wallet
You can create and fund your wallet position on the portal as shown below.
IMTO Status
We currently have 3 main statuses:
| Status | Description |
|---|---|
| PROCESSING | Transactions is currently being processed |
| SUCCESSFUL | Transaction is successful, value has been given |
| FAILED | Transaction has failed. Funds have been reversed if they were originally debited. |
IMTO API Documentation
IMTO Channels
The following IMTO channels for payment are available:
BANK_TRANSFER: Standard bank transfer
You can view the individual nuances for the different IMTO channels here
Order Creation
This endpoint generates a payment order using the current FX rate and includes an expiration window, allowing the business to review the rate and authorise the payment if they’re comfortable with it.
Endpoint: POST /api/v1/order
Request
{
"senderCurrencyCode":"USD",
"destinationCurrencyCode":"NGN",
"senderAmount":"2"
}Response
{
"responseCode": "00",
"responseMessage": "Successful",
"data": {
"createdOn": "2025-12-03 08:32:14",
"createdBy": "[email protected]",
"id": 20246,
"senderAmountBeforeCharge": 2.00,
"senderAmountAfterCharge": 2.00,
"orderId": "55b73cce-14e2-4f8e-b3d7-22e830d56695",
"charge": 0.00,
"orderValidityPeriodInSeconds": 3600,
"senderCurrency": "USD",
"beneficiaryCurrency": "NGN",
"fxRate": 1488.00,
"businessId": 40135,
"status": "NEW",
"beneficiaryAmount": 2976.00,
"fxReference": "0d23065a-4d1e-4e66-b48f-6ae6e785762c"
}
}Authorise Order
This allows the partner to authorise the order using the order ID generated by the create-order endpoint.
Endpoint: POST /api/v1/order/authorize
Request
{
"orderId": "55b73cce-14e2-4f8e-b3d7-22e830d56695",
"senderWalletId": "3570003235",
"senderWalletPin": "1111",
"recipientBank": "HAK",
"recipientAccount": "0037320662",
"partnerReference": "TESTREFERENCE107",
"payoutChannel": "BANK_TRANSFER",
"narration": "TestRef101"
}Note: payoutChannel should be one of the available IMTO Channels listed above.
Response
{
"responseCode": "00",
"responseMessage": "SUCCESS",
"data": {
"id": 72822,
"reference": "b09e0e59-3451-4d18-896f-f7d479629be3",
"transactionReference": "IMTO20251203083240441000955",
"clientId": "MX192446",
"recipientAccount": "0037320662",
"recipientBank": "HAK",
"recipientName": "ROTIMI MODUPE AKINRIMISI",
"sourceAccount": "3570003369",
"provider": "TS",
"channel": "BANK_TRANSFER",
"amount": 2976.00,
"fee": 13.20,
"commission": 0.00,
"currencyCode": "NGN",
"retryCount": 0,
"status": "SUCCESSFUL",
"narration": "TestRef101",
"reversed": false,
"walletDebit": true,
"createdOn": "2025-12-03T08:32:43.77",
"lastUpdatedOn": "2025-12-03T08:32:53.429307",
"processingReference": "CR|AFZ|HAK|031225083241|049691"
}
}Get Transaction
Retrieves an IMTO transaction using orderId.
Endpoint: GET /api/v1/order/transaction/{orderId}
Response
{
"responseCode": "00",
"responseMessage": "Successful",
"data": [
{
"createdOn": "2025-12-03 08:32:53",
"updatedOn": "2025-12-03 08:32:53",
"lastUpdatedBy": "[email protected]",
"id": 15137,
"transactionReference": "IMTO20251203083240441000955",
"clientId": "MX192446",
"channel": "BANK_TRANSFER",
"amount": 2976.00,
"fee": 13.20,
"responseCode": "00",
"responseDescription": "SUCCESS",
"status": "SUCCESSFUL",
"narration": "TestRef101",
"processingReference": "CR|AFZ|HAK|031225083241|049691",
"walletDebitReference": "357000323580AJDFR0FFZL7WF",
"orderId": 20246,
"action": "DEBIT",
"commission": 0.00
}
]
}Get Wallet Balance
Retrieve the balance on a wallet.
curl --location 'https://imto-service.k8.isw.la/imto/api/v1/wallet/balance?partnerWalletId={insert wallet id here}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer xxThe response contains the relevant balance(s) tied to the wallet
{
"responseCode": "00",
"responseMessage": "Balance retrieved successfully!",
"data": {
"ledgerBalance": 25600,
"availableBalance": 25600
}
}Updated 1 day ago
