Skip to main content
POST
Create Payment
This endpoint requires HMAC-SHA256 authentication. See Authentication for signature computation details.

Long-Polling Behavior

This endpoint uses long-polling and waits up to 90 seconds for the terminal to respond. Plan for this timeout in your HTTP client configuration.

Terminal ID Resolution

The terminalId parameter is resolved in the following order:
  1. Device ID (Recommended) - First checks if the ID matches a registered deviceId
  2. Connection ID (Fallback) - If no device ID match, treats it as a connectionId
Always use deviceId when available. It provides a stable reference that doesn’t change when terminals reconnect.

Handling Timeouts

If you receive a 504 Gateway Timeout response:
  1. Do not retry the payment immediately
  2. Use Get Transaction to check if the payment completed
  3. Only retry if the transaction record’s status is Failed or Cancelled
The payment may have completed on the terminal after the HTTP timeout. Always verify transaction status before retrying to avoid duplicate charges.

Authorizations

x-api-key
string
header
required

HMAC-SHA256 authentication. Requires three headers: x-api-key (your API key), x-timestamp (ISO 8601 timestamp), and x-signature (Base64-encoded HMAC-SHA256 signature). See Authentication documentation for signature computation.

Path Parameters

terminalId
string
required

The terminal identifier. Can be either a deviceId (recommended) or connectionId (legacy fallback).

Body

application/json

Payment request details

amount
number
required

Amount to charge. Positive; numeric strings are also accepted. When products are supplied, this must equal the sum of price * quantity + tax - discount within 0.01.

Required range: x > 0
currency
string
required

Currency code, 3 characters (for example PHP). Only the length is validated.

Required string length: 3
paymentMethod
enum<string>
required

Payment method

Available options:
CARD,
CASH,
MOBILE,
OTHER
transactionId
string<uuid>

Optional client-supplied idempotency id. If given, a UUID v7.

products
object[]

Optional line items.

customerInfo
object
metadata
object

Custom key-value pairs for your use

Response

Payment completed successfully (standard mode)

transactionId
string
required

Transaction identifier

status
enum<string>
required

Payment result status

Available options:
SUCCESS,
FAILED,
PENDING,
CANCELLED
timestamp
string<date-time>
required

ISO 8601 timestamp

paymentResponse
object