Gravv DOCS
Docs Agent Get Started
API Reference Transfer

Transfer

Initiate a transfer between internal accounts, external accounts, or crypto wallets.

POST/v1/transfer

Headers

Required for POST requests. Reuse the key only when retrying the same operation with an identical payload.

Request Body

Source of the transfer

source can be internal_account or internal_crypto_wallet

Possible values: internal_account, internal_crypto_wallet

Optional crypto asset type

Use internal account ID or wallet ID

One of the following variants:

External account ID

The transfer destination type

Possible values: external_account

The transfer rail type

Possible values: ach, wire, sepa, swift, fps, globalbank

Internal account ID

Possible values: internal_account

Blockchain network (e.g., polygon, ethereum)

Possible values: polygon, ethereum, avalanche, stellar, solana, sui, tron

Crypto wallet address

Possible values: crypto_wallet

Required for only stellar network

Recipient card ID

The transfer destination type

Possible values: card

Transfer amount

Additional remitter information required for external bank account and mobile money beneficiaries

Full name of the person sending the transfer

Country code of the remitter (ISO 3166-1 alpha-2)

Document/ID number of the remitter

Date when the remitter's document was issued

Date when the remitter's document expires

Date of birth of the remitter

Physical address of the remitter

Primary address line

City name

State or province code

Postal or ZIP code

Country code (ISO 3166-1 alpha-2)

Nationality of the remitter (ISO 3166-1 alpha-2 country code)

Transfer description

Customer initiating the transfer

Optional client reference for reconciliation

Request Examples

{
"source": {
"source_type": "internal_account",
"id": "b9c2cb0d-e09a-496f-8655-d8c4b7aaf2f8"
},
"destination": {
"id": "70c337ad-e3e8-4a90-9de7-7f3e6bc2aac8",
"destination_type": "external_account"
},
"amount": 1.5,
"additional_information": {
"remitter_full_name": "John Doe",
"remitter_country": "US",
"remitter_document_number": "A123456789",
"remitter_document_issue_date": "2020-01-15",
"remitter_document_expiry_date": "2030-01-15",
"remitter_date_of_birth": "1990-06-25",
"remitter_address": {
  "address_line1": "123 Main Street",
  "city": "New York",
  "state": "NY",
  "postal_code": "10001",
  "country": "US"
},
"remitter_nationality": "US"
},
"client_reference": "099283849s",
"description": "Transfer Testing",
"customer_id": "bb6c6022-f1d8-492f-80f0-7547134bb42f"
}
{
"source": {
"source_type": "internal_account",
"id": "b9c2cb0d-e09a-496f-8655-d8c4b7aaf2f8"
},
"destination": {
"id": "915a6953-49a1-4a78-b29d-56d401d9f22a",
"destination_type": "internal_account"
},
"amount": 1,
"additional_information": {
"remitter_full_name": "John Doe",
"remitter_country": "US",
"remitter_document_number": "A123456789",
"remitter_document_issue_date": "2020-01-15",
"remitter_document_expiry_date": "2030-01-15",
"remitter_date_of_birth": "1990-06-25",
"remitter_address": {
  "address_line1": "123 Main Street",
  "city": "New York",
  "state": "NY",
  "postal_code": "10001",
  "country": "US"
},
"remitter_nationality": "US"
},
"description": "Transfer Testing",
"customer_id": "bb6c6022-f1d8-492f-80f0-7547134bb42f",
"client_reference": "hellowe2"
}
{
"source": {
"source_type": "internal_account",
"id": "b9c2cb0d-e09a-496f-8655-d8c4b7aaf2f8"
},
"destination": {
"blockchain_network": "polygon",
"destination_type": "crypto_wallet",
"wallet_address": "0x25a4c9853e761753ae18d6871731e305b8b0b2a4"
},
"amount": 2,
"description": "Transfer Testing",
"customer_id": "bb6c6022-f1d8-492f-80f0-7547134bb42f",
"client_reference": "2893843"
}
{
"source": {
"source_type": "crypto_wallet",
"id": "67e169c0-547f-410d-8e18-f616b6822d70"
},
"destination": {
"destination_type": "card",
"id": "3397bab8-0f2b-4721-b15b-8c71860f01f9"
},
"amount": 3,
"description": "card funding",
"customer_id": "04dfb2e5-1274-4214-b5fd-3415fde7dc18",
"client_reference": "cardtransfer1234"
}

Responses

Status Description
200 Transfer successful
400 Bad request

200 response

Transfer amount as a decimal string.

Unique transfer reference.

ISO 8601 timestamp when the transfer was created.

Current status of the transfer.

Possible values: pending, failed, completed

ID of the associated transaction record.

Equivalent amount in the recipient's local currency, if applicable.

Three-letter ISO 4217 code for the recipient's local currency, if applicable.

{
"data": {
"amount": "1.5",
"reference": "550e8400-e29b-41d4-a716-446655440000",
"date_created": "2024-01-15T10:30:00Z",
"transfer_status": "pending",
"transaction_id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"local_amount": null,
"local_currency": null
},
"error": null
}

400 response

{
"data": null,
"error": "invalid request payload"
}

Authorization

  • ApiKeyAuth
Was this page helpful?
Assistant
Responses are generated using AI and may contain mistakes.

Ask me anything about the documentation.

ESC