API · Partners

Remittance operators

For licensed MTOs (money transfer operators) terminating cross-border remittances into Djibouti or Ethiopia. Two modes: origination (you collect abroad, we terminate) and termination-as-a-service (you instruct, we terminate).

MTOrp_ · rto_

Onboarding required

The remittance surface is gated to licensed partners. Contact partners@merashub.com to onboard. You'll receive a sk_partner_… key + a per-corridor fee schedule + KYC threshold matrix.

Endpoints

POST/v1/remittance/quotes

Lock an FX quote for a specific corridor + amount. Holds rate for 60 seconds.

POST/v1/remittance/orders

Originate a remittance against a quote, or directly with partner_reference (TaaS mode).

GET/v1/remittance/orders

List your orders (filter by status, corridor, partner_reference).

GET/v1/remittance/orders/{id}

Retrieve a specific order.

POST/v1/remittance/orders/{id}/cancel

Cancel an order before termination. Funds released to your funding account.

GET/v1/remittance/corridors

List supported corridors (source country → destination country, with caps + fee schedule).

GET/v1/remittance/statements

Per-period CSV statement (camt.053-style) of your funding + termination activity.

Origination flow

  1. 1

    Lock an FX quote

    POST /v1/remittance/quotes with source + destination currencies and a source amount. Rate locks for 60s; you get a quote_id.
  2. 2

    Collect abroad

    Your customer pays you the source amount in your own UI. KYC is your responsibility (you're the licensed party).
  3. 3

    Originate order

    POST /v1/remittance/orders with the quote_id + beneficiary details (msisdn, account, or agent). Funds debit your prefunded MerasPay balance.
  4. 4

    Termination

    We route to the right local rail — Waafi/SabaPay/D-Money for wallets, CAC/EAB for bank accounts, agent network for cash pickup.
  5. 5

    Webhook

    remittance.order.succeeded fires when the beneficiary receives funds. Confirmation message back to your customer is your responsibility.

Lock quote

NameTypeDescription
source_currency
required
ISO 4217"USD", "EUR", "GBP".
source_amount_minor
required
integerMinor units in source currency.
destination_currency
required
ISO 4217"DJF" or "ETB".
destination_country
required
ISO 3166"DJ" or "ET".
corridorstringOptional alias — e.g. "US→DJ"; if set we apply your corridor-specific fee schedule.
POST /v1/remittance/quotesbash
curl -X POST https://api.merashub.com/v1/remittance/quotes \
  -H "Authorization: Bearer sk_partner_..." \
  -d '{
    "source_currency": "USD",
    "source_amount_minor": 10000,
    "destination_currency": "DJF",
    "destination_country": "DJ"
  }'
201 Created · quote lockedjson
{
  "id": "rqt_01HZ...",
  "source": { "currency": "USD", "amount_minor": 10000 },
  "destination": { "currency": "DJF", "amount_minor": 17750000 },
  "fx_rate": 177.5,
  "fees": [
    { "kind": "partner_fee",   "amount_minor": 250, "currency": "USD" },
    { "kind": "meraspay_fee",  "amount_minor": 100, "currency": "USD" }
  ],
  "net_to_beneficiary_minor": 17750000,
  "expires_at": "2026-05-25T10:16:30Z"
}

Originate order

NameTypeDescription
quote_idrqt_Required in origination mode. Omitted in TaaS mode.
partner_referencestringRequired in TaaS mode (the licensed MTO instructs without a MerasPay quote).
sender_name
required
stringSender full name (sanctions-screened).
sender_country
required
ISO 3166Sender country.
beneficiary_name
required
stringRecipient full name (sanctions-screened).
beneficiary_msisdnE.164For wallet termination.
beneficiary_accountstringFor bank termination.
beneficiary_providerenum"waafi", "cac", "santimpay" (ETB), etc.
beneficiary_agent_pickupbooleanWhen true, route to the agent network for cash pickup with a one-time code.
purpose_codestringISO 18-character purpose code (FATF). Required for AML.
metadatamapFree-form key/value.

Termination-as-a-Service (TaaS)

If you already collect, do KYC, and lock FX in your own stack, just instruct MerasPay to terminate. Send partner_reference instead of a quote_id; we charge a flat per-transaction termination fee against your prefunded balance.

POST /v1/remittance/orders · TaaSbash
curl -X POST https://api.merashub.com/v1/remittance/orders \
  -H "Authorization: Bearer sk_partner_..." \
  -H "Idempotency-Key: order_xfer_123" \
  -d '{
    "partner_reference": "WU-2026-XFER-000123",
    "amount_minor": 17750000,
    "currency": "DJF",
    "sender_name": "John Doe",
    "sender_country": "US",
    "beneficiary_name": "Bob Hassan",
    "beneficiary_msisdn": "+25377xxxxxxx",
    "beneficiary_provider": "waafi",
    "purpose_code": "INTC"
  }'

Corridors

Each corridor has a per-tx max, daily aggregate cap, KYC threshold, and fee schedule. Refresh nightly:

bashbash
curl https://api.merashub.com/v1/remittance/corridors \
  -H "Authorization: Bearer sk_partner_..."
200 OKjson
{
  "data": [
    {
      "source_country": "US", "destination_country": "DJ",
      "max_per_tx_minor": 500000,   "daily_cap_minor": 2500000,
      "kyc_threshold_minor": 100000,
      "fee_schedule": [
        { "tier_max_minor": 50000,  "fee_minor": 250 },
        { "tier_max_minor": 250000, "fee_minor": 750 },
        { "tier_max_minor": null,   "fee_minor": 1500 }
      ]
    }
  ]
}

ETB corridor

For Ethiopia terminations the rail is SantimPay. Quotes against ETB lock against our committed liquidity at the SantimPay float; large outliers (greater than max_per_tx_minor) require pre-funding 24h ahead.

Sanctions + AML

Every order is screened against OFAC + EU + UN + local lists. Hits hold the order in requires_review state with a 4-business-hour SLA. Your partner agreement spells out reimbursement obligations on hits.