Skip to content

API reference

Twelve endpoints, one page each, so you can link a colleague to the exact one rather than to a heading two thirds of the way down something longer.

MethodPathDoes
POST/v1/partners/paymentsCreate a payment — give a customer something to pay with
GET/v1/partners/paymentsList payments — the reconciliation endpoint
GET/v1/partners/payments/{id}One payment, current status
POST/v1/partners/quotesWhat a payment would cost, without creating one
GET/v1/partners/balanceWhat you can pay out right now
POST/v1/partners/payoutsMove your balance to a bank account
GET/v1/partners/payoutsList payouts
GET/v1/partners/payouts/{id}One payout, current status
GET/v1/partners/payment-instructionsChannel codes and bilingual payment steps
POST/v1/partners/groups/{external_group_id}/members/{external_id}/transfersMove part of your balance into a member’s wallet
GET/v1/partners/member-transfersList member transfers
GET/v1/partners/member-transfers/{id}One member transfer, current status
PropertyValue
Base URLhttps://api-stg.moriafund.com/v1/partners (staging) · https://api.moriafund.com/v1/partners (production) — see Environments
AuthAuthorization: Bearer <api_key> on every call; POST requests additionally require x-partner-signature. GET reads use the key plus read-gateway only — see Authentication
Content-Typeapplication/json
Success{ "data": …, "request_id": "…" }
Failure{ "error": { "code", "message" }, "request_id": "…" } — see Errors

The three money-moving endpoints — create a payment, request a payout, transfer to a member — additionally require X-Idempotency-Key. That header is the difference between a safe retry and a second charge, and it has its own page.

Amounts are strings in both directions. You send "100000"; we answer "100000.0000". A JSON number is an IEEE-754 double and money must not pass through one.