Skip to main content

Payment Lifecycle

Every payment goes through a series of statuses: Payment Lifecycle
StatusDescription
openPayment created, waiting for customer
paidFull amount received, settlement in progress
underpaidPartial amount received, waiting for top-up
underpaid_acceptedMerchant accepted partial payment, settlement in progress
canceledPayment was canceled by the merchant or customer
expiredPayment timed out (30 minutes)
refundedPayment was refunded

Settlement

When a payment is marked paid, the settlement process begins automatically:
  1. Platform fee is deducted
  2. Partner commission is calculated (if applicable)
  3. Net amount is transferred to the merchant’s receive account
  4. Webhook is sent with settlement_status: "paid"
Settlement is in USDC on the Stellar network.

Amounts

All amounts in the API are in the smallest unit of the currency:
  • 1000 USD = $10.00
  • settlement_amount of 1000 = 10.00 USDC

Creating a Payment

The amount.value is in the smallest unit of the currency. For USD, this means cents. So 1000 = $10.00.
{
  "amount": {
    "value": 1000,
    "currency": "USD"
  },
  "description": "Order #1234",
  "redirectUrl": "https://yoursite.com/success",
  "webhookUrl": "https://yoursite.com/webhook"
}
The API returns a checkout_id and a qrCode (SEP-7 URI) that the customer can scan with any Stellar wallet.