Manage settlement instructions

Create and manage the bank accounts and crypto wallets you settle funds to. Once saved, reference an instruction by its ID, for example as the destination of an OTC order.

Create a settlement instruction

Use the POST /v1/settlement-instructions endpoint. These fields apply to every instruction:

Field Type Description
instruction_type string bank_account or crypto_wallet
account_name string a label for the destination
currency string the settlement currency
is_default boolean optional; make this the default for its currency

Bank account

Send the bank fields that match the corridor (routing_number for US accounts, swift_code for international, iban where applicable):

curl --request POST \
     --url https://api.gravv.xyz/v1/settlement-instructions \
     --header 'Api-Key: <API_KEY>' \
     --header 'Idempotency-Key: bank-settlement-<UUID>' \
 --header 'content-type: application/json' \
 --data '
{
"instruction_type": "bank_account",
"account_name": "Operating account",
"currency": "USD",
"is_default": true,
"account_number": "0123456789",
"bank_name": "Example Bank",
"routing_number": "123456789",
"country": "US",
"address": {
"address_line1": "201 Allen St",
"city": "New York",
"state": "New York",
"postal_code": "10002",
"country_code": "US"
}
}
'

The response returns the saved instruction with its id and status:

{
"data": {
"id": "a14ec356-f33d-4384-ba68-4d9bfa19765b",
"instruction_type": "bank_account",
"account_name": "Operating account",
"currency": "USD",
"is_default": true,
"status": "active",
"account_number": "0123456789",
"bank_name": "Example Bank",
"routing_number": "123456789",
"country": "US",
"date_created": "2026-06-20T10:29:16.000Z"
},
"error": null
}

Crypto wallet

For a crypto destination, send the wallet fields. Include memo when the network requires one:

curl --request POST \
 --url https://api.gravv.xyz/v1/settlement-instructions \
 --header 'Api-Key: <API_KEY>' \
 --header 'Idempotency-Key: wallet-settlement-<UUID>' \
--header 'content-type: application/json' \
--data '
{
"instruction_type": "crypto_wallet",
"account_name": "USDC treasury",
"currency": "USDC",
"wallet_address": "0x445906a6766927c5da8b2fca0e0db5d7b5565ef8",
"network": "polygon"
}
'

Retrieve settlement instructions

List them with GET /v1/settlement-instructions. Filter with currency and instruction_type, and page with page and items_per_page (default 20, max 100):

curl --request GET \
--url 'https://api.gravv.xyz/v1/settlement-instructions?currency=USD&instruction_type=bank_account' \
--header 'Api-Key: <API_KEY>'

Get a single instruction with GET /v1/settlement-instructions/{id} by its ID:

curl --request GET \
--url https://api.gravv.xyz/v1/settlement-instructions/a14ec356-f33d-4384-ba68-4d9bfa19765b \
--header 'Api-Key: <API_KEY>'

Update a settlement instruction

Use PATCH /v1/settlement-instructions/{id} to change the label, the saved details, or which instruction is the default for its currency. Send only the fields you want to change:

curl --request PATCH \
--url https://api.gravv.xyz/v1/settlement-instructions/a14ec356-f33d-4384-ba68-4d9bfa19765b \
--header 'Api-Key: <API_KEY>' \
--header 'content-type: application/json' \
--data '
{
"account_name": "Primary operating account",
"is_default": true
}
'

Delete a settlement instruction

Remove one with DELETE /v1/settlement-instructions/{id}:

curl --request DELETE \
--url https://api.gravv.xyz/v1/settlement-instructions/a14ec356-f33d-4384-ba68-4d9bfa19765b \
--header 'Api-Key: <API_KEY>'
Was this page helpful?