Disbursements
Pay people by name and amount across multiple payout rails, without collecting their payment details.
RAMFi provisions a campaign (the enabled rails and their per-rail fees); you read it, add payees
(consumers) in a batch, and each payee is emailed a link to choose how they get paid. All calls
use the short-term bearer token plus X-OTP and hit the api/Disbursement controller.
Fetch your company’s campaign(s) and their enabled rails and per-rail fees. Pass payeeId to scope to one campaign; note each campaign’s campaignGuid for the next step. Full reference: Get Campaign.
| Field | Type | Required | Description | Value |
|---|---|---|---|---|
| payeeId | integer | optional | Filter to a single campaign by payee ID. When omitted, all campaigns for the authenticated company are returned. |
curl --request GET \
--url 'https://FQDN/api/Disbursement/Campaign' \
--header 'Authorization: Bearer <SHORT_TERM_TOKEN>' \
--header 'X-OTP: <X_OTP>'Provision one or more payees into the campaign in a single batch. Set each payee’s eligible rails with ach / checkMail / prepaidCard. The response reports success per consumer. Full reference: Add Consumers.
| Field | Type | Required | Description | Value |
|---|---|---|---|---|
| campaignGuid | string (UUID) | REQUIRED | The campaign to add the payees to (from Get Campaign). | |
| consumers | array<Consumer> | REQUIRED | One or more payees to provision — see the Consumer fields below. | see fields below |
| consumers[].firstName | string | REQUIRED | Payee first name. | |
| consumers[].lastName | string | REQUIRED | Payee last name. | |
| consumers[].email | string | REQUIRED | Where Reliant sends the payout-method selection link. | |
| consumers[].amount | number (decimal) | REQUIRED | Gross payout amount for this payee. | |
| consumers[].middleInitial | string | optional | Optional contact details. | |
| consumers[].phone | string | optional | Optional contact details. | |
| consumers[].streetAddress1 | string | optional | Mailing address (required for check-by-mail). | |
| consumers[].streetAddress2 | string | optional | Mailing address (required for check-by-mail). | |
| consumers[].city | string | optional | Mailing address (required for check-by-mail). | |
| consumers[].state | string | optional | Mailing address (required for check-by-mail). | |
| consumers[].zip | string | optional | Mailing address (required for check-by-mail). | |
| consumers[].taxId | string | optional | Tax identifier, where required for reporting. | |
| consumers[].miscellaneous | string | optional | Free-form reference on the payee. | |
| consumers[].ach | boolean | optional | Eligible payout rails to offer this payee. | |
| consumers[].checkMail | boolean | optional | Eligible payout rails to offer this payee. | |
| consumers[].prepaidCard | boolean | optional | Eligible payout rails to offer this payee. | |
| consumers[].routingNumber | string | optional | Bank details; apply when ach is enabled. | |
| consumers[].accountNumber | string | optional | Bank details; apply when ach is enabled. |
curl --request POST \
--url 'https://FQDN/api/Disbursement/Consumers' \
--header 'Authorization: Bearer <SHORT_TERM_TOKEN>' \
--header 'X-OTP: <X_OTP>' \
--header 'Content-Type: application/json' \
--data '{
"campaignGuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"consumers": [
{ "firstName": "Jordan", "lastName": "Lee", "email": "jordan@example.com", "amount": 250.00, "ach": true }
]
}'Confirm who is on the campaign, or look one up. Filters (campaignGuid, consumerId, email) are optional and combine. Full reference: Get Consumers.
| Field | Type | Required | Description | Value |
|---|---|---|---|---|
| campaignGuid | string (UUID) | optional | Scope results to a single campaign. | |
| consumerId | integer | optional | Fetch a single consumer by ID. | |
| string | optional | Match consumers by email address. |
curl --request GET \
--url 'https://FQDN/api/Disbursement/Consumers?campaignGuid=3fa85f64-5717-4562-b3fc-2c963f66afa6' \
--header 'Authorization: Bearer <SHORT_TERM_TOKEN>' \
--header 'X-OTP: <X_OTP>'Correct a payee’s details by consumerId. Only the fields you send change. Full reference: Update Consumer.
| Field | Type | Required | Description | Value |
|---|---|---|---|---|
| consumerId | number (int) | REQUIRED | The consumer to update. | |
| firstName | string | optional | Updated first name. | |
| lastName | string | optional | Updated last name. | |
| middleInitial | string | optional | Updated middle initial. | |
| phone | string | optional | Updated phone. | |
| streetAddress1 | string | optional | Updated street address. | |
| city | string | optional | Updated city. | |
| state | string | optional | Updated state. | |
| zip | string | optional | Updated ZIP. |
curl --request PATCH \
--url 'https://FQDN/api/Disbursement/Consumers' \
--header 'Authorization: Bearer <SHORT_TERM_TOKEN>' \
--header 'X-OTP: <X_OTP>' \
--header 'Content-Type: application/json' \
--data '{ "consumerId": 90231, "phone": "555-0142", "city": "Austin", "state": "TX", "zip": "78701" }'results array from step 2 — a batch can partially succeed, so a failed payee (isSuccess: false with errorMessages) doesn’t block the others.