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.
- 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 |
| 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 |
| source_type | string | type of source, for example, internal_account |
The destination object contains the following fields:
| Field | Type | Description |
|---|---|---|
| id | string | identifier for the destination account |
| destination_type | string | type of destination, for example, internal account or card |
| rail | string | transfer rail, which can either be ach, wire, or sepa |
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"
},
"destination": {
"id": null,
"rail": null,
"destination_type": "card",
},
"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.