Merchant API v1 · OpenAPI 3.1

Build payments that feel native to your product.

Create tenant-isolated orders, control payout wallets, discover payment methods, and reconcile settlement through one server API.

01

Authenticate

Create a live merchant key and send it in X-API-Key. The key decides the tenant—never an email in the request.

02

Create an order

POST /v1/orders creates an UNPAID order and returns your Paymegate checkout URL. No transaction exists yet.

03

Reconcile settlement

A verified payment callback marks the order PAID, creates its transaction, and triggers your merchant webhook.

Your first order

Amounts are exact decimal strings. The checkout URL in the response is the only URL you share with the customer.

Keys stay server-side.
Wallet overrides are opt-in per merchant.
curl --request POST "$PAYMEGATE_BASE_URL/v1/orders" \
  --header "X-API-Key: $PAYMEGATE_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "amount": "20.00",
    "currency": "USD",
    "paymentMethodsKeys": ["all"],
    "customer": {
      "email": "[email protected]",
      "fullName": "Example Customer"
    }
  }'

OpenAPI reference

Merchant API endpoints

Six server-to-server operations. Every request uses your merchant API key—never a JWT.

Raw OpenAPI
POST/v1/orders

Create an order

Creates an UNPAID order and returns the Paymegate checkout URL you share with the customer. Add receivingWallet to override the payout wallet for this order when the merchant enabled overrides.

Scope: orders:create
Authentication header
X-API-Key: $PAYMEGATE_API_KEY
Request
curl --request POST "$PAYMEGATE_BASE_URL/v1/orders" \
  --header "X-API-Key: $PAYMEGATE_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "amount": "20.00",
    "currency": "USD",
    "paymentMethodsKeys": ["all"],
    "customer": {
      "email": "[email protected]",
      "fullName": "Example Customer"
    }
  }'
Example response
{
  "success": true,
  "data": {
    "orderUUID": "9cb50d55-9e02-4fc0-a824-277ac39b4144",
    "status": "UNPAID",
    "amount": "20.00",
    "currency": "USD",
    "paymentMethodsKeys": ["stripe", "coinbase", "paypal"],
    "checkoutUrl": "https://www.paymegate.com/pay/9cb50d55-9e02-4fc0-a824-277ac39b4144"
  }
}