External account status webhook
Webhook that is called whenever the status of an external account changes, for any transition between statuses (PENDING, ACTIVE, UNDER_REVIEW, INACTIVE, PENDING_OWNERSHIP_VERIFICATION, UNVERIFIED) — for example when an account under review becomes active, when ownership verification completes (PENDING_OWNERSHIP_VERIFICATION → ACTIVE), or when a verification attempt fails (PENDING_OWNERSHIP_VERIFICATION → UNVERIFIED). This endpoint should be implemented by clients of the Grid API.
Authentication
The webhook includes a signature in the X-Grid-Signature header that allows you to verify that the webhook was sent by Grid. To verify the signature:
- Get the Grid public key provided to you during integration
- Decode the base64 signature from the header
- Create a SHA-256 hash of the request body
- Verify the signature using the public key and the hash
If the signature verification succeeds, the webhook is authentic. If not, it should be rejected.
Event types
- EXTERNAL_ACCOUNT.STATUS_UPDATED — Fired when the status of an external account changes. The data payload contains the full external account object.
Payload
Example payload
{
"id": "Webhook:019542f5-b3e7-1d02-0000-000000000007",
"timestamp": "2025-08-15T14:32:00Z",
"data": {
"id": "ExternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965",
"customerId": "Customer:da459a29-1fb7-41ce-a4cb-eb3a3c9fd7a7",
"platformAccountId": "acc_123456789",
"ownershipType": "FIRST_PARTY",
"currency": "USD",
"beneficiaryVerifiedData": {
"fullName": "John Doe"
},
"accountInfo": {
"accountType": "AED_ACCOUNT",
"iban": "AE070331234567890123456",
"swiftCode": "EBILAEAD"
}
}
}Response
Webhook received successfully