Wallet operation completed or failed
Webhook that is called when an asynchronous embedded-wallet operation reaches a terminal state. Fires WALLET_OPERATION.COMPLETED on terminal success and WALLET_OPERATION.FAILED on terminal failure. The payload is self-contained — handle it from the fields below with no follow-up API call needed.
The specific operation is carried in data.operationType (auth_credential.create, auth_credential.delete, session.revoke, wallet.export, or customer.contact_update), and the business resource it affected is carried in data.resourceType / data.resourceId:
operationType | resourceType | resourceId identifies |
|---|---|---|
auth_credential.create | AUTH_METHOD | the created credential — its id can’t be known before this webhook, since the create request has nothing to echo |
auth_credential.delete | AUTH_METHOD | the deleted credential |
session.revoke | SESSION | the revoked session |
wallet.export | INTERNAL_ACCOUNT | the account whose wallet was exported |
customer.contact_update | CUSTOMER | the customer whose email or phone number changed |
The webhook carries no sensitive result material — for wallet.export, the export bundle itself is never delivered here; retrieve it by resubmitting the original signed export request until it returns the result.
Correlating this webhook
data.requestIdis the primary correlation key. It is the sameRequest-Idvalue you supplied on the signed retry that produced this terminal result — echo it against theRequest-Idyou sent (and, if you polled through one or more200 { status: "PROCESSING" }responses, against the value you kept resending).data.resourceIdis the primary correlator for the business resource itself, distinct fromrequestId’s role of matching the request. Forauth_credential.createthis is the only way to learn the created credential’s id — the request that created it had nothing to echo.id(the top-level webhook envelope id) is for deduplication. Grid may redeliver a webhook after a transient failure; trackidto avoid double-processing.data.operationIdis a Grid-internal identifier for the operation. It’s useful when contacting support about a specific operation, but isn’t intended as a correlation key.
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.
Authorizations
Secp256r1 (P-256) asymmetric signature of the webhook payload, which can be used 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.
Body
Response
Webhook received successfully