Remittance Termination (TaaS)
Licensed MTOs (money transfer operators) use Meras as the last-mile terminator for inbound remittance into Djibouti and Ethiopia. One partner API for all Djiboutian wallets and banks.
Who this API is for
How it works
- 1
Obtain a partner API key
After onboarding, your organisation receives a partner key (pk_partner_...) scoped to the remittance namespace. This key is separate from any merchant keys and carries partner-level rate limits and permissions. - 2
Create a remittance order
POST to/v1/partner/remittance/orderswith full sender details, the beneficiary (either a pre-savedbene_ID or an inline object), the amount, and the corridor string such as"US-DJ". Include aquote_idto lock the exchange rate. - 3
KYC and sanctions screening
Meras validates the beneficiary and sender against KYC records and screens both parties against international sanctions lists. If a hit is flagged the order moves tocompliance_reviewand cannot be completed until cleared by the Meras compliance team. - 4
Order routes to the correct rail
For Djibouti corridors, the orchestrator selects the matching rail — Waafi, D-Money, EAB, or CAC — based on the beneficiary's account type. For the DJ→ET and AE→ET corridors, the order is forwarded to SantimPay for local delivery in Ethiopia. - 5
Webhook fires on completion
remittance_order.completedfires to your registered partner webhook once the funds have been delivered to the beneficiary. The event body includes the finalexchange_rateapplied and thereceive_amount_minorcredited. - 6
Reconcile via the orders list
UseGET /v1/partner/remittance/ordersto pull your full order history. Filter by status, corridor, or date range. The list endpoint is paginated and supports cursor-based iteration.
Supported corridors
| Corridor | Send currency | Receive currency | Delivery rail |
|---|---|---|---|
US-DJ | USD | DJF | Waafi · D-Money · EAB · CAC |
EU-DJ | EUR | DJF | Waafi · D-Money · EAB · CAC |
UK-DJ | GBP | DJF | Waafi · D-Money · EAB · CAC |
Gulf-DJ | AED / SAR / QAR | DJF | Waafi · D-Money · EAB · CAC |
DJ-ET | DJF | ETB | SantimPay |
AE-ET | AED | ETB | SantimPay |
Endpoints
/v1/partner/remittance/ordersCreate a new remittance order.
/v1/partner/remittance/orders/{id}Retrieve a specific order and its current status.
/v1/partner/remittance/quotesGet a rate + fee preview for a corridor and amount. Valid 60 seconds.
/v1/partner/remittance/beneficiariesPre-register a beneficiary for faster order creation.
/v1/partner/remittance/beneficiariesList saved beneficiaries for your partner account.
/v1/partner/remittance/ordersList and filter all remittance orders.
Quote parameters
Always fetch a quote before creating an order to lock the rate and fee. Pass the returned quote_id into the order.
| Name | Type | Description |
|---|---|---|
corridorrequired | string | Corridor string, e.g. "US-DJ" or "DJ-ET". |
send_amount_minorrequired | integer | Amount to send in the source currency minor units. |
send_currencyrequired | ISO 4217 | ISO 4217 code for the source currency, e.g. "USD". |
The response includes receive_amount, exchange_rate, fee_minor, and an expires_at timestamp 60 seconds in the future.
Create order parameters
| Name | Type | Description |
|---|---|---|
corridorrequired | string | Corridor string identifying source and destination country pair. |
send_amount_minorrequired | integer | Amount in the send currency, minor units. |
send_currencyrequired | ISO 4217 | ISO 4217 code for the send currency. |
beneficiary_id | bene_ | ID of a pre-saved beneficiary. Provide this or an inline beneficiary object. |
beneficiary | object | Inline beneficiary: name, account_type, account_number, msisdn, address. Required if beneficiary_id is absent. |
purpose_coderequired | string | SWIFT purpose code, e.g. "SALA" (salary), "GIFT", "FMLY" (family support), "TRAD" (trade). |
senderrequired | object | Sender details: name, address (street, city, country), id_type, id_number, date_of_birth. |
quote_id | string | ID from a prior quote response. Locks the exchange rate and fee for this order. Recommended. |
external_reference | string | Your MTO's internal transaction ID. Stored for reconciliation; must be unique per partner. |
Rate lock via quote_id
quote_id from the quote response into the order to lock the rate. Orders submitted without a quote_id receive the live market rate at the time of processing, which may differ from what was shown to the sender.Automatic sanctions screening
compliance_review and cannot be completed or cancelled by the MTO until it has been cleared or rejected by the Meras compliance team. Do not represent the transfer to the sender until the order reaches completed status.Example — get quote and create order
curl "https://api.merashub.com/v1/partner/remittance/quotes?corridor=US-DJ&send_amount_minor=10000&send_currency=USD" \ -H "Authorization: Bearer pk_partner_..."
{
"quote_id": "q_01HZGM7PNQR4T8VW2XE5YK9LA",
"corridor": "US-DJ",
"send_amount_minor": 10000,
"send_currency": "USD",
"exchange_rate": "177.42",
"fee_minor": 199,
"receive_amount_minor": 1772001,
"receive_currency": "DJF",
"expires_at": "2026-05-25T12:01:00Z"
}curl -X POST https://api.merashub.com/v1/partner/remittance/orders \
-H "Authorization: Bearer pk_partner_..." \
-H "Content-Type: application/json" \
-d '{
"corridor": "US-DJ",
"send_amount_minor": 10000,
"send_currency": "USD",
"quote_id": "q_01HZGM7PNQR4T8VW2XE5YK9LA",
"purpose_code": "FMLY",
"external_reference": "MTO-TXN-20260525-00041",
"sender": {
"name": "Ahmed Mohamed",
"address": {
"street": "123 Main St",
"city": "Minneapolis",
"country": "US"
},
"id_type": "passport",
"id_number": "A12345678"
},
"beneficiary_id": "bene_01HZGK8QRST5V7WX3YE2NF6PJ"
}'{
"id": "rto_01HZGN2KMPR6Q9ST4VW7XE8YL",
"status": "pending",
"corridor": "US-DJ",
"send_amount_minor": 10000,
"send_currency": "USD",
"receive_amount_minor": 1772001,
"receive_currency": "DJF",
"exchange_rate": "177.42",
"fee_minor": 199,
"purpose_code": "FMLY",
"external_reference": "MTO-TXN-20260525-00041",
"created_at": "2026-05-25T12:00:30Z"
}