Beneficiaries / API reference
Register an institution beneficiary for review
Request and response reference for POST /v1/beneficiaries.
POST
/v1/beneficiariesAuthentication: API key
Use the base URL and access configuration provided to your institution. Examples are request templates, not transaction results. Field tables focus on client fields; preserve additional metadata returned by the configured service.
Request
Keep API keys in your backend. Required entitlements and institution scope still apply.
curl -X POST "$OSAI_API_BASE_URL/v1/beneficiaries" \
-H "Authorization: ApiKey $OSAI_PUBLIC_ID:$OSAI_API_SECRET" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: <stable-operation-key>" \
--data '{
"name": "<name>",
"bank_code": "<bank_code>",
"account_number": "<account_number>"
}'Parameters
| Name | Location | Requirement | Description |
|---|---|---|---|
Authorization | header · string | Required | Use the value defined for this resource. |
X-Request-Id | header · string | Optional | Use the value defined for this resource. |
Idempotency-Key | header · string | Required | Use the value defined for this resource. |
Request body
Send JSON with Content-Type: application/json. Nested field names identify their parent object; required markers apply within that object. Replace template values using the relevant resource and configured instrument rules.
| Field | Type | Description & constraints |
|---|---|---|
nameRequired in parent object | string | Defined by the resource contract. |
bank_codeRequired in parent object | string | Defined by the resource contract. |
account_numberRequired in parent object | string | Defined by the resource contract. |
Responses
Inspect HTTP status before parsing a body. These tables describe client response fields rather than invented successful transaction payloads.
202 · Beneficiary registered pending approval
| Field | Type | Description & constraints |
|---|---|---|
beneficiary_idRequired in parent object | string | Defined by the resource contract. |
statusRequired in parent object | string | Defined by the resource contract. |
approval_statusRequired in parent object | string | Defined by the resource contract. |
request_idRequired in parent object | string | Defined by the resource contract. |
400 · Validation failure
| Field | Type | Description & constraints |
|---|---|---|
errorRequired in parent object | object | Defined by the resource contract. |
error.codeRequired in parent object | string | Defined by the resource contract. |
error.messageRequired in parent object | string | Defined by the resource contract. |
error.request_idRequired in parent object | string | Defined by the resource contract. |
Retries & recovery
Keep the original request identifiers and any required idempotency key. A timeout does not establish failure. Read the original resource or command before another financial write; use expected versions for concurrent changes.