Download OpenAPI specification:Download
Payments: hosted checkout (POST /checkout/create/ on the API base, e.g. …/api/checkout/create/), get payment by id (GET /transactions/{id}/), create refund (POST /transactions/{id}/refund/), list/get refunds (GET /refunds/, GET /refunds/{id}/).
Charge currencies: USD and EUR only.
Merchant (dashboard session): organization profile, API keys, webhooks, and payment links
(payment links are not available with API keys—use Authorization: Token from the merchant web app).
Subscriptions: lifecycle (create, update, cancel, charges) is managed in the merchant dashboard; subscription REST endpoints for API keys are not part of this reference until published.
Webhooks: configure under Organization in the dashboard; events such as transaction.status_changed and refund.status_changed are documented in the product guides.
Create a payment session (hosted checkout). Returns checkout_url and token. Redirect the customer to checkout_url to complete payment. Requires API key with checkout:create scope.
| billing_country required | string <= 2 characters |
| billing_postal_code | string |
| billing_first_name required | string <= 100 characters |
| billing_last_name required | string <= 100 characters |
| billing_email required | string <email> |
| billing_phone | string |
| currency | string Default: "USD" Enum: "USD" "EUR" Charge currency; omitted values default to USD (matches the API). |
required | Array of objects or objects (ProductItem) |
| successUrl | string <uri> |
| failedUrl | string <uri> |
| cancelUrl | string <uri> |
| sandbox_simulate | string Enum: "payment_failed" "checkout_canceled" "canceled" "success_pending_deposit" "checkout_pending" Sandbox API key only; rejected with production keys. Scripted provider outcomes apply only when the server runs internal simulation (e.g. CI). Otherwise the value may be stored on the session but does not change live provider GET results. |
{- "billing_country": "US",
- "billing_postal_code": "string",
- "billing_first_name": "string",
- "billing_last_name": "string",
- "billing_email": "user@example.com",
- "billing_phone": "string",
- "currency": "USD",
- "products": [
- {
- "id": "string",
- "quantity": 1
}
], - "sandbox_simulate": "payment_failed"
}{- "checkout_id": "string",
- "order_id": "string",
- "token": "string",
- "expires_at": 0
}Retrieve a payment by its public ID (e.g. TXabc123) or numeric ID. Returns amount, status, currency, products, and timestamps. Requires API key.
| id required | string Payment ID — use public ID (e.g. TXabc123) or numeric transaction ID |
{- "id": "string",
- "amount": "99.00",
- "status": "string",
- "currency": "USD",
- "payer_email": "user@example.com",
- "products": [
- {
- "id": "string",
- "name": "string"
}
], - "created_at": "2019-08-24T14:15:22Z",
- "depositAttempts": [
- {
- "status": "succeeded",
- "paymentId": "string",
- "attemptedAt": "2019-08-24T14:15:22Z",
- "errorMessage": "string",
- "paymentMethod": "card"
}
]
}Request a full or partial refund for a paid transaction. Requires API key with refunds:write or payments:write scope.
No 2FA is required for API requests (unlike the merchant dashboard). Partial refunds are supported via amount.
Refunds are subject to the same eligibility rules as the dashboard (paid status, wallet balance, provider limits). Partial refunds are supported when wallet balance is below the full payment amount.
On success the refund status is processing while Inflow processes the request. Subscribe to refund.status_changed webhooks for updates.
| id required | string Payment ID — public ID (e.g. TXabc123) or numeric transaction ID |
| reason required | string <= 500 characters Reason shown to the customer and sent to the payment provider |
| amount | string Partial refund amount in charge currency (TTC). Omit for full remaining refundable amount. |
{- "reason": "Customer request",
- "amount": "40.00"
}{- "status": "processing",
- "refund_id": 0,
- "refund_public_id": "string",
- "transaction_id": 0,
- "amount": "string",
- "currency": "string",
- "amount_usd": "string",
- "amount_in_cents": 0
}List refunds for the organization. Requires API key with refunds:read or payments:read scope.
| status | string Enum: "pending" "processing" "completed" "failed" "rejected" |
| created_at__gte | string <date-time> |
| created_at__lte | string <date-time> |
| search | string Search payment ID or refund reason |
| ordering | string Sort field, e.g. -created_at, amount |
| page | integer |
| page_size | integer |
[- {
- "id": "string",
- "transaction_id": "string",
- "amount": "string",
- "currency": "string",
- "amount_in_cents": 0,
- "amount_usd": "string",
- "reason": "string",
- "status": "pending",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]Retrieve a refund by public ID (e.g. RFabc123) or numeric ID. Requires refunds:read or payments:read.
| id required | string |
{- "id": "string",
- "transaction_id": "string",
- "amount": "string",
- "currency": "string",
- "amount_in_cents": 0,
- "amount_usd": "string",
- "reason": "string",
- "status": "pending",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Partial update of editable organization fields (e.g. name, website, contact_email, telegram, price_mode).
| property name* additional property | any |
{ }Create a shareable link with a product snapshot. Currency must be USD or EUR. Requires catalog product ids from your organization.
| name required | string Internal label for the merchant dashboard |
required | Array of objects (PaymentLinkLine) |
| currency | string Default: "USD" Enum: "USD" "EUR" |
| pricing_mode | string Enum: "TAX_EXCLUSIVE" "TAX_INCLUSIVE" |
| expires_at | string or null <date-time> |
| max_uses | integer or null >= 1 |
object or null |
{- "name": "string",
- "products": [
- {
- "product_id": "string",
- "quantity": 1
}
], - "currency": "USD",
- "pricing_mode": "TAX_EXCLUSIVE",
- "expires_at": "2019-08-24T14:15:22Z",
- "max_uses": 1,
- "metadata": { }
}Creates a hosted checkout session from the link snapshot. USD or EUR. No merchant API key required.
| token required | string <uuid> |
| billing_country required | string <= 2 characters |
| billing_postal_code | string |
| billing_first_name required | string |
| billing_last_name required | string |
| billing_email required | string <email> |
| billing_phone | string |
| currency | string Enum: "USD" "EUR" |
| successUrl | string <uri> |
| failedUrl | string <uri> |
| cancelUrl | string <uri> |
{- "billing_country": "st",
- "billing_postal_code": "string",
- "billing_first_name": "string",
- "billing_last_name": "string",
- "billing_email": "user@example.com",
- "billing_phone": "string",
- "currency": "USD",
}