Skip to main content

The transfer object

string
Transfer ID.
string
The route ID.
string
deposit, withdraw or send.
string
SEP-24 status: whose turn it is. See Transfer lifecycle.
string
The internal state.
string
Source base units.
string
Minimum destination base units.
string
User-paid fee.
string
string
string
string
string | null
The EVM transaction (burn, OFT send or destination mint).
string | null
The Stellar transaction.
string
string
string | null
string
object
Explorer links: source and destination.

Create a transfer

POST /v1/transfers
string
required
A new key per transfer. A repeat returns the same transfer.
string
required
The quote’s id. Its owner must be the caller.
Returns the transfer. 409 if the quote is used or expired, 422 if a limit is reached.

Get the next action

GET /v1/transfers/{id}/actions Returns { "action": <action> } with zero or one action the user can take now.

Submit a result

POST /v1/transfers/{id}/submissions
string
required
evm_tx or stellar_tx.
string
For evm_tx: the mined transaction hash. For a smart wallet, the bundle transaction hash.
string
For stellar_tx: the transaction signed by the owner. Pesa’s relay fee-bumps and submits it.
The server decodes every submission and checks it against the issued action: sender, contract, recipient and amount. EVM submissions are checked from the mined receipt’s logs. A mismatch returns 422 and changes nothing. A duplicate returns 409.

Get a transfer

GET /v1/transfers/{id} Returns the transfer. 404 if it does not exist or belongs to another owner.

List transfers

GET /v1/transfers
string
An ISO date. Returns transfers started before it. Use the oldest started_at from the previous page.
Returns the owner’s transfers, newest first.

Cancel a transfer

POST /v1/transfers/{id}/cancel Allowed before anything irreversible (stages AWAITING_FUNDS, FUNDED, AWAITING_SIGNATURE). Otherwise 409 with the current stage.