Payment APIs & Webhooks

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

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:

  1. Contact the GonnaOrder support team
  2. Provide:

    • Your webhook endpoint URL
    • Tenant or white-label domain
    • Required event types
    • Authentication requirements
  3. GonnaOrder support configures the subscription
  4. A webhook secret is securely shared with your team
  5. 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