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/transfersInitiate a transfer to another MerasPay merchant.
GET
/v1/transfersList transfers your merchant initiated or received.
Create
| Name | Type | Description |
|---|---|---|
destinationrequired | m_ | Recipient merchant ID. |
amountrequired | integer | Minor units to move. |
currencyrequired | ISO 4217 | "DJF", "USD", "ETB". |
source_payment | pi_ | Optional — link this transfer back to a customer charge for marketplace flows. |
description | string | Free-form memo. |
metadata | map | Free-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.