{
"id": "Webhook:019542f5-b3e7-1d02-0000-000000000007",
"type": "OUTGOING_PAYMENT.COMPLETED",
"timestamp": "2025-08-15T14:32:00Z",
"data": {
"id": "Transaction:019542f5-b3e7-1d02-0000-000000000005",
"status": "COMPLETED",
"type": "OUTGOING",
"source": {
"sourceType": "ACCOUNT",
"accountId": "InternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965"
},
"destination": {
"destinationType": "ACCOUNT",
"accountId": "ExternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d123"
},
"customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
"platformCustomerId": "18d3e5f7b4a9c2",
"senderUmaAddress": "$sender@uma.domain",
"receiverUmaAddress": "$recipient@external.domain",
"sentAmount": {
"amount": 10550,
"currency": {
"code": "USD",
"name": "United States Dollar",
"symbol": "$",
"decimals": 2
}
},
"receivedAmount": {
"amount": 9706,
"currency": {
"code": "EUR",
"name": "Euro",
"symbol": "€",
"decimals": 2
}
},
"exchangeRate": 0.92,
"quoteId": "Quote:019542f5-b3e7-1d02-0000-000000000006",
"settledAt": "2025-08-15T14:30:00Z",
"createdAt": "2025-08-15T14:25:18Z",
"description": "Payment for invoice #1234",
"paymentInstructions": [],
"rateDetails": {
"counterpartyMultiplier": 1.08,
"counterpartyFixedFee": 10,
"gridApiMultiplier": 0.925,
"gridApiFixedFee": 10,
"gridApiVariableFeeRate": 0.003,
"gridApiVariableFeeAmount": 30
}
}
}{
"status": 400,
"code": "INVALID_INPUT",
"message": "<string>",
"details": {}
}Webhook that is called when an outgoing payment’s status changes. This endpoint should be implemented by clients of the Grid API.
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:
If the signature verification succeeds, the webhook is authentic. If not, it should be rejected.
This webhook is informational only and is sent when an outgoing payment completes successfully, fails, or is refunded.
{
"id": "Webhook:019542f5-b3e7-1d02-0000-000000000007",
"type": "OUTGOING_PAYMENT.COMPLETED",
"timestamp": "2025-08-15T14:32:00Z",
"data": {
"id": "Transaction:019542f5-b3e7-1d02-0000-000000000005",
"status": "COMPLETED",
"type": "OUTGOING",
"source": {
"sourceType": "ACCOUNT",
"accountId": "InternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965"
},
"destination": {
"destinationType": "ACCOUNT",
"accountId": "ExternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d123"
},
"customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
"platformCustomerId": "18d3e5f7b4a9c2",
"senderUmaAddress": "$sender@uma.domain",
"receiverUmaAddress": "$recipient@external.domain",
"sentAmount": {
"amount": 10550,
"currency": {
"code": "USD",
"name": "United States Dollar",
"symbol": "$",
"decimals": 2
}
},
"receivedAmount": {
"amount": 9706,
"currency": {
"code": "EUR",
"name": "Euro",
"symbol": "€",
"decimals": 2
}
},
"exchangeRate": 0.92,
"quoteId": "Quote:019542f5-b3e7-1d02-0000-000000000006",
"settledAt": "2025-08-15T14:30:00Z",
"createdAt": "2025-08-15T14:25:18Z",
"description": "Payment for invoice #1234",
"paymentInstructions": [],
"rateDetails": {
"counterpartyMultiplier": 1.08,
"counterpartyFixedFee": 10,
"gridApiMultiplier": 0.925,
"gridApiFixedFee": 10,
"gridApiVariableFeeRate": 0.003,
"gridApiVariableFeeAmount": 30
}
}
}{
"status": 400,
"code": "INVALID_INPUT",
"message": "<string>",
"details": {}
}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:
If the signature verification succeeds, the webhook is authentic. If not, it should be rejected.
Unique identifier for this webhook delivery (can be used for idempotency)
"Webhook:019542f5-b3e7-1d02-0000-000000000007"
Status-specific event type in OBJECT.EVENT dot-notation (e.g., OUTGOING_PAYMENT.COMPLETED)
OUTGOING_PAYMENT.PENDING, OUTGOING_PAYMENT.PROCESSING, OUTGOING_PAYMENT.COMPLETED, OUTGOING_PAYMENT.FAILED, OUTGOING_PAYMENT.EXPIRED, OUTGOING_PAYMENT.REFUND_PENDING, OUTGOING_PAYMENT.REFUND_COMPLETED, OUTGOING_PAYMENT.REFUND_FAILED ISO 8601 timestamp of when the webhook was sent
"2025-08-15T14:32:00Z"
The resource object. Contains the full resource as the corresponding GET endpoint would return it.
Show child attributes
Webhook received successfully
Was this page helpful?