API · Money movement

Transfers

Inter-merchant transfers on the MerasPay network. Atomic — both legs land or neither does. Use with application_fee + transfer_data for marketplace-style splits.

2 endpointstr_

Endpoints

POST/v1/transfers

Initiate a transfer to another MerasPay merchant.

GET/v1/transfers

List transfers your merchant initiated or received.

Create

NameTypeDescription
destination
required
m_Recipient merchant ID.
amount
required
integerMinor units to move.
currency
required
ISO 4217"DJF", "USD", "ETB".
source_paymentpi_Optional — link this transfer back to a customer charge for marketplace flows.
descriptionstringFree-form memo.
metadatamapFree-form key/value.

Marketplace pattern

On a single customer charge, you take a marketplace fee and forward the rest to a connected merchant. Pass application_fee_amount and transfer_data.destination on the original PaymentIntent — we handle the split atomically.

POST /v1/payment_intents · splitbash
curl -X POST https://api.merashub.com/v1/payment_intents \
  -H "Authorization: Bearer sk_test_..." \
  -d '{
    "amount": 100000,
    "currency": "DJF",
    "provider": "waafi",
    "customer_msisdn": "+25377xxxxxxx",
    "application_fee_amount": 5000,
    "transfer_data": { "destination": "m_seller_001" }
  }'

Same-network transfers only

Both source and destination must be live MerasPay merchants. To pay an external party (someone with no MerasPay merchant account), use Payouts instead.