GonnaOrder’s payment (GonnaPay) APIs & webhooks allow third-party systems to create and manage payments across multiple payment providers through a single, normalized API interface. Instead of integrating separately with providers such as Stripe or PayPal, integrations communicate with GonnaPay APIs and receive standardized webhook events regardless of the underlying payment service provider (PSP). This ensures fast and efficient integration with diverse payment providers globally without rebuilding payment flows.
On This Page
- Overview of GonnaPay Payment APIs & Webhooks
- Supported Payment Contexts
- Create a Payment Intent
- Get Payment Status
- Setup Webhook Integrations
- Webhook Event Structure
- Canonical Webhook Event Types
Overview of GonnaPay Payment APIs & Webhooks
GonnaPay payment APIs & webhooks provide a unified payment orchestration layer for:
- Orders (store checkout)
- Reservations (deposits, holds, prepayments)
- Stand-alone payments (POS, invoices, payment links)
- White-label entities such as event booking payments.
GonnaOrder continues to receive provider-specific webhooks internally and converts them into normalized GonnaPay events before forwarding them to third-parties or subscribers.
Base URL
The APIs are available through:
https://admin.gonnaorder.com/api/v1/
Or through the tenant’s white-label domain:
https://{tenant-domain}/v1/
Note that all routes are versioned using /v1.
Authentication
Authentication is supported using:
- API Keys
- OAuth2 Client Credentials
Authentication credentials are configured per tenant or partner.
Example Authorization Header
Authorization: Bearer <access_token>
Supported Payment Contexts
Through GonnaPay, same payment APIs & webhooks support multiple payment flows using a normalized context object. Here are the supported payment contexts:
| Context Type | Description |
|---|---|
| ORDER | Store checkout payments |
| RESERVATION | Deposits, prepayments, and reservation holds |
| STANDALONE_PAYMENT | POS, invoices, and payment links |
| EXTERNAL | External integrations such as whitelabel Events |
Create a Payment Intent
Use this endpoint to create a payment intent regardless of the underlying provider.
Endpoint
POST /v1/payments/intents
Example Request
{
"amount": {
"value": 25,
"currency": "EUR"
},
"context": {
"type": "ORDER",
"id": "ord_7f2e123"
},
"metadata": {
"orderToken": "AB3D"
}
}
Example Response
{
"payment_id": "pay_016fa1b0-0b7f-4c4c-9f67-2b57d2e6e270",
"status": "pending",
"checkout": {
"type": "redirect",
"url": "https://checkout.gonnaorder.com/session/123"
},
"provider": {
"name": "stripe"
}
}
Response Details
| Field | Description |
|---|---|
| payment_id | Unique GonnaPay payment identifier |
| status | Normalized payment status |
| checkout | Redirect or SDK configuration object |
| provider | Payment provider selected internally |
Get Payment Status
Retrieve the latest normalized payment status.
Endpoint
GET /v1/payments/{payment_id}
Example Response
{
"payment_id": "pay_016fa1b0-0b7f-4c4c-9f67-2b57d2e6e270",
"status": "captured",
"amount": {
"value": 25,
"currency": "EUR"
},
"context": {
"type": "ORDER",
"id": "ord_7f2e123"
}
}
Setup Webhook Integrations
Webhook subscriptions allow third-party systems to receive real-time normalized payment events from GonnaPay. GonnaPay sends standardized webhook events regardless of the payment provider used internally.
How Webhook Setup Works
Webhook endpoints are configured offline by the GonnaOrder Support Team. To configure a webhook subscription, follow these steps:
- Contact the GonnaOrder support team
-
Provide:
- Your webhook endpoint URL
- Tenant or white-label domain
- Required event types
- Authentication requirements
- GonnaOrder support configures the subscription
- A webhook secret is securely shared with your team
- Your endpoint begins receiving normalized GonnaPay events
Note
Third parties do not self-configure webhook subscriptions through the API at this stage.
Webhook Event Structure
All webhook events follow a normalized payload structure.
Example: payment.captured
{
"id": "evt_9aa7...",
"type": "payment.captured",
"created_at": "2025-10-16T10:15:00Z",
"data": {
"payment_id": "pay_016fa1b0-0b7f-4c4c-9f67-2b57d2e6e270",
"status": "captured",
"amount": {
"value": 25,
"currency": "EUR"
},
"context": {
"type": "ORDER",
"id": "ord_7f2e..."
},
"provider": {
"name": "stripe",
"payment_provider_id": "pi_3NZ..."
},
"metadata": {
"orderToken": "AB3D"
}
}
}
Canonical Webhook Event Types
The following normalized event types are supported.
| Event Type | Description |
|---|---|
| payment.created | Payment intent created |
| payment.pending | Awaiting completion |
| payment.requires_action | Customer action required |
| payment.authorized | Payment authorized |
| payment.captured | Payment successfully captured |
| payment.canceled | Payment canceled |
| payment.failed | Payment failed |
| payment.refunded | Fully refunded |
| payment.partially_refunded | Partially refunded |
| webhook.test | Manual webhook test ping |