Skip to content

Transfer events

Transfer events notify you when the status of a transfer changes. These events help you track fund movements in real time.

When transfer events are sent

Gravv sends transfer events when:

  • A transfer is initiated between accounts or wallets.
  • The transfer is complete.

Transfer event types

The following event types are available for transfers:

Event type Description
transfer.status.pending transfer initiated and processing
transfer.status.completed transfer completed successfully

Transfer event structure

The event_data object for transfer events contains the following fields:

Field Type Description
amount string amount transferred
remark string optional transfer description
source object details about where the funds came from
tx_hash string blockchain transaction hash for verification
destination object details about where the funds are going
client_reference string optional reference identifier

The source object contains the following fields:

Field Type Description
id string identifier for the source account or wallet
source_type string type of source, which can either be internal_account, internal_crypto_wallet, or crypto_wallet

The destination object contains the following fields:

Field Type Description
id string identifier for the destination account
destination_type string type of destination, which can either be internal_account, external_account, crypto_wallet, or card
rail string transfer rail, which can either be ach, wire, or sepa
wallet_address string blockchain address if sending to a crypto wallet
blockchain_network string blockchain network if sending to crypto wallet
blockchain_memo string memo required for specific networks like Stellar

The following is a sample payload for transfer events:

{
  "event_id": "6c54b861-7116-4cbc-b479-4a64264eda51",
  "tenant_id": "6d45104f-12db-4485-bea2-ffc3e44d60ee",
  "timestamp": "2025-08-31T18:58:15.733245361Z",
  "event_data": {
    "amount": "1",
    "remark": null,
    "source": {
      "id": "fd84a244-dc5a-4232-af7d-f2047bf59542",
      "source_type": "internal_account"
    },
    "tx_hash": "57132d61922afff3653d665de84bf00f7b0a5898fb7f7f026377bd67fe2ab7ae",
    "destination": {
      "id": null,
      "rail": null,
      "wallet_address": "GDUCZEMOM4PCW2IMEIWZMW7HOZADEIAXSUFSY4GULJ2ZEYHLWLG4KRUP",
      "blockchain_memo": null,
      "destination_type": "crypto_wallet",
      "blockchain_network": "stellar"
    },
    "client_reference": "2893843"
  },
  "event_type": "transfer.status.completed",
  "event_category": "transfer",
  "event_group_id": "47ef7fbd-3c4d-479a-932a-7c75c6e2842f"
}

For the required fields in all Gravv webhook payloads, see Webhook payload structure.