{
"id": "Webhook:019542f5-b3e7-1d02-0000-000000000020",
"type": "AGENT_ACTION.PENDING_APPROVAL",
"timestamp": "2025-10-03T15:00:00Z",
"data": {
"id": "AgentAction:019542f5-b3e7-1d02-0000-000000000099",
"agentId": "Agent:019542f5-b3e7-1d02-0000-000000000042",
"customerId": "Customer:019542f5-b3e7-1d02-0000-000000000010",
"platformCustomerId": "user-a1b2c3",
"status": "PENDING_APPROVAL",
"type": "EXECUTE_QUOTE",
"quote": {
"id": "Quote:019542f5-b3e7-1d02-0000-000000000006",
"status": "PENDING",
"expiresAt": "2025-10-03T15:00:30Z",
"createdAt": "2025-10-03T15:00:00Z",
"source": {
"sourceType": "ACCOUNT",
"accountId": "InternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d123"
},
"destination": {
"destinationType": "ACCOUNT",
"accountId": "ExternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965"
},
"sendingCurrency": {
"code": "USD",
"name": "United States Dollar",
"symbol": "$",
"decimals": 2
},
"receivingCurrency": {
"code": "INR",
"name": "Indian Rupee",
"symbol": "₹",
"decimals": 2
},
"totalSendingAmount": 50000,
"totalReceivingAmount": 4625000,
"exchangeRate": 92.5,
"feesIncluded": 250,
"transactionId": "Transaction:019542f5-b3e7-1d02-0000-000000000099"
},
"createdAt": "2025-10-03T15:00:00Z",
"updatedAt": "2025-10-03T15:00:00Z"
}
}{
"status": 401,
"code": "UNAUTHORIZED",
"message": "<string>",
"details": {}
}Fired when an agent submits an action that requires platform approval before Grid will execute it. Use this to send a push notification to the customer so they can review and approve or reject the action in your app. 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.
The payload contains the full AgentAction — including the embedded quote or transfer details — so you can render the approval UI without a second API call. Approve or reject via POST /agents/{agentId}/actions/{actionId}/approve or POST /agents/{agentId}/actions/{actionId}/reject.
{
"id": "Webhook:019542f5-b3e7-1d02-0000-000000000020",
"type": "AGENT_ACTION.PENDING_APPROVAL",
"timestamp": "2025-10-03T15:00:00Z",
"data": {
"id": "AgentAction:019542f5-b3e7-1d02-0000-000000000099",
"agentId": "Agent:019542f5-b3e7-1d02-0000-000000000042",
"customerId": "Customer:019542f5-b3e7-1d02-0000-000000000010",
"platformCustomerId": "user-a1b2c3",
"status": "PENDING_APPROVAL",
"type": "EXECUTE_QUOTE",
"quote": {
"id": "Quote:019542f5-b3e7-1d02-0000-000000000006",
"status": "PENDING",
"expiresAt": "2025-10-03T15:00:30Z",
"createdAt": "2025-10-03T15:00:00Z",
"source": {
"sourceType": "ACCOUNT",
"accountId": "InternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d123"
},
"destination": {
"destinationType": "ACCOUNT",
"accountId": "ExternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965"
},
"sendingCurrency": {
"code": "USD",
"name": "United States Dollar",
"symbol": "$",
"decimals": 2
},
"receivingCurrency": {
"code": "INR",
"name": "Indian Rupee",
"symbol": "₹",
"decimals": 2
},
"totalSendingAmount": 50000,
"totalReceivingAmount": 4625000,
"exchangeRate": 92.5,
"feesIncluded": 250,
"transactionId": "Transaction:019542f5-b3e7-1d02-0000-000000000099"
},
"createdAt": "2025-10-03T15:00:00Z",
"updatedAt": "2025-10-03T15:00:00Z"
}
}{
"status": 401,
"code": "UNAUTHORIZED",
"message": "<string>",
"details": {}
}Documentation Index
Fetch the complete documentation index at: https://ramps-docs-agents-webhook-and-account-model-links.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
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)
AGENT_ACTION.PENDING_APPROVAL ISO 8601 timestamp of when the webhook was sent
"2025-08-15T14:32:00Z"
An action submitted by an agent that may require platform approval before execution. All agent-initiated operations (quote execution, transfers) are represented as AgentActions, giving the platform a consistent object to approve, reject, and audit regardless of the underlying operation type.
Show child attributes
Webhook received and acknowledged.
Was this page helpful?