Initiate Transfer

Use this API to initiate a secure fund transfer between accounts. All fields will be validated before processing. This API returns the id which you will use to confirm the processing of the fund transfer transaction.

Auto-Confirm Mode: You can optionally include the x-auto-confirm: true header to skip the separate confirmation step. When enabled, the API will always return 202 Accepted with no response body. Validation and confirmation both happen asynchronously, and the final status (APPROVED or DECLINED) will be delivered via callback. This is useful for integrations that do not require a review step between initiation and confirmation.

⚠️

Unified Transfer is in active development. As a pioneer merchant, you will be informed of the updates through your Maya Relationship Manager.

Body Params

The request payload for processing a fund transfer between accounts.

data
object
required
Headers
string
required
length between 36 and 36

Use a unique identifier for the request, must be UUID. This identifier enforces idempotency for repeated requests. If a duplicate request is detected, an error will be thrown.

string
required

The transaction identifier provided by the partner. This should be unique per partner transaction. If a request using the same id is detected, an error will be thrown

boolean
Defaults to false

When set to true, the API will always return 202 Accepted with no response body. Validation, initiation, and confirmation all happen asynchronously, and the final status will be delivered via callback. The confirmation step (PUT /v1/transfers/p2p/{id}/confirmation) can be skipped. Defaults to false.

string
required

Credentials to integrate with the API.

string
required

A detached JWS signature of the body of the payload.

string
length between 36 and 36

An RFC4122 UUID used as a correlation id.

string

The time when the client was last authenticated. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Fri, 27 Jun 2025 04:14:02 UTC

string

The client's IP address.

string

The user-agent that the client is using.

Responses

x-auto-confirm: true header is sent. The request has been accepted for processing. Validation, initiation, and confirmation all happen asynchronously. The final status (APPROVED or DECLINED) will be delivered via callback notification.

401

Unauthorized

405

Method Not Allowed

406

Not Acceptable

415

Unsupported Media Type

429

Too Many Requests

503

When the service encounters an intermittent availability problem. Re-transactions may succeed.

504

When the service encounters any form of timeouts while processing the request.

Language
Credentials
OAuth2
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json