Draft Webhooks — Not Live Yet
GoPaySol Webhooks
Receive signed events when payments are validated on-chain.
Why Webhooks Matter
Webhooks allow your backend to react when a payment becomes paid. This is the safest way to unlock digital products, activate subscriptions, update orders, or send customer confirmations.
Event: payment.paid
This event is sent only after GoPaySol validates the payment server-side.
Example Payload
json
{
"event_id": "evt_123456",
"type": "payment.paid",
"created_at": "2026-06-20T12:30:00Z",
"payment_id": "pay_123456",
"amount": "25.00",
"token": "USDC",
"environment": "test",
"transaction_signature": "5rY...",
"receipt_url": "https://gopaysol.com/receipts/rcpt_123456",
"customer_reference": "customer_456",
"metadata": {
"order_id": "ORD-1001"
}
}Webhook Security
GoPaySol webhook payloads will be signed.
Your server should:
- Verify the signature
- Check the timestamp
- Reject replayed events
- Store the event ID
- Process each event idempotently
Important Fulfillment Rule
Do not unlock content or mark an order as paid from frontend status alone.
Use this flow:
- Buyer pays on GoPaySol checkout
- GoPaySol verifies payment on-chain
- GoPaySol sends signed
payment.paidwebhook - Your backend verifies the webhook
- Your backend unlocks the product or updates the order
Retry Behavior
If your endpoint fails, GoPaySol will retry delivery. Your system should be ready to receive the same event more than once. Use event_id to prevent duplicate fulfillment.
