API Reference
Complete reference of all Paysera Checkout integration endpoints.
Interactive API Reference​
For detailed endpoint documentation with request/response examples, see the Endpoint Reference section under API Integration:
- Create Order - Create a payment order
- Create Payment Link - Generate a payment URL
- Get Payment Methods - Query available methods
OpenAPI Specification​
Download the complete API specification:
Use with Postman, Insomnia, or Swagger Editor for interactive exploration.
Base URL​
https://api.paysera.com
Authentication​
All endpoints require OAuth2 Bearer token authentication:
Authorization: Bearer YOUR_ACCESS_TOKEN
See Authentication for details on obtaining tokens.
Orders API​
Base path: /merchant-order/integration/v1
Create Order​
Creates a new payment order.
POST /merchant-order/integration/v1/orders
Request Body:
| Field | Type | Required | Description |
|---|---|---|---|
project_id | string (UUID) | No | Your merchant project ID. Defaults to the project from your JWT token. |
redirect_urls.success_url | string | No | URL to redirect on successful payment |
redirect_urls.failure_url | string | No | URL to redirect on failed payment |
redirect_urls.callback_url | string | No | Backend URL to receive webhook notifications |
purchase.reference | string | Yes | Your unique order reference in the merchant system |
purchase.amount | string | Yes | Amount in minor units as a string (e.g., "14999" for €149.99) |
purchase.currency | string | Yes | ISO 4217 currency code |
source | string | No | Where the order originated (URL or identifier). Defaults to Integration. |
metadata | object | No | Additional key-value pairs (each key/value max 255 chars) |
merchant_data | object | No | Merchant data key-value pairs (each key/value max 255 chars) |
Response: 201 Created
| Field | Type | Description |
|---|---|---|
order_id | string (UUID) | Unique order identifier |
project_id | string (UUID) | Project identifier associated with the order |
created_at | integer | Creation Unix timestamp (UTC) |
source | string | Source indicating where the order originated |
merchant_data | object | Merchant data key-value pairs (if provided in request) |
purchase.reference | string | Your order reference |
purchase.amount | integer | Amount in minor units |
purchase.currency | string | Currency code |
Payment Links API​
Base path: /checkout-payment-link/integration/v1
Create Payment Link​
Creates a payment link for an existing order.
POST /checkout-payment-link/integration/v1/payment-links
Request Body:
| Field | Type | Required | Description |
|---|---|---|---|
order_id | string (UUID) | Yes | The associated order ID |
name | string | Yes | Descriptive name for the payment link (max 255 chars) |
purchase.amount | integer | Yes | Amount in minor currency units (e.g., cents) |
experience.language | string | Yes | UI language, 2-letter ISO 639-1 code (e.g., en, lt) |
experience.payment_flow | string | No | Payment flow type. Defaults to paysera_checkout. |
lifetime | integer | No | Link validity in seconds. Default 259200 (3 days). 0 = never expires. |
payment_details.key | string | No | Preferred payment method key (e.g., credit_card) |
payment_details.purpose | string | No | Payment purpose description (max 255 chars) |
payment_details.country_code | string | No | Country code, ISO 3166-1 alpha-2 (e.g., LT) |
payer_information.name | string | No | Payer name (max 150 chars) |
payer_information.email | string | No | Payer email |
metadata | object | No | Additional key-value metadata |
Response: 201 Created
| Field | Type | Description |
|---|---|---|
link_id | string (UUID) | Unique payment link ID |
order_id | string (UUID) | Associated order ID |
payment_URL | string | Payment URL to redirect the customer to |
experience.language | string | Selected language |
experience.payment_flow | string | Payment flow type |
payment_details.key | string | Payment method key (if specified) |
payment_details.purpose | string | Payment purpose (if specified) |
payment_details.country_code | string | Country code (if specified) |
payer_information.name | string | Payer name (if specified) |
payer_information.email | string | Payer email (if specified) |
purchase.amount | integer | Amount in minor units |
created_at | integer | Creation Unix timestamp (UTC) |
expired_at | integer | Expiration Unix timestamp (UTC) |
The response field payment_URL uses mixed case as documented.
Payment Methods API​
Base path: /checkout-project/integration/v1
Get Available Payment Methods​
Retrieves available payment methods for your project.
GET /checkout-project/integration/v1/methods
Query Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
amount | integer | No | Filter by transaction amount (minor units) |
currency | string | No | Filter by currency (ISO 4217) |
Filtering only applies when both amount and currency are provided.
Response: 200 OK
{
"items": [
{
"key": "swedbank",
"title": "Swedbank",
"description": "Pay via Swedbank online banking.",
"type": "banklink",
"flow": "redirect",
"available_countries": ["LT", "EE"],
"available_currencies": {
"EUR": { "main": true }
}
}
]
}
| Field | Type | Description |
|---|---|---|
items[].key | string | null | Unique identifier for the payment method |
items[].title | string | Display name of the payment method |
items[].description | string | null | Detailed description of the payment method |
items[].type | string | Method type: card, banklink, wallet, or pis |
items[].flow | string | Flow: redirect or decoupled |
items[].available_countries | array<string> | ISO 3166-1 alpha-2 country codes |
items[].available_currencies | object | Map of currency code → { main: boolean } |
Common Response Codes​
| Code | Description |
|---|---|
200 | Success |
201 | Created |
400 | Bad Request - Invalid parameters |
401 | Unauthorized - Invalid or expired token |
403 | Forbidden - Insufficient permissions |
404 | Not Found - Resource doesn't exist |
409 | Conflict - Resource already exists |
422 | Unprocessable Entity - Validation error |
429 | Too Many Requests - Rate limit exceeded |
500 | Internal Server Error |
Error Response Format​
Simple error response:
{
"error": "error_code",
"error_description": "Human-readable description"
}
Validation error response (per-field details):
{
"error": "invalid_request",
"error_description": "Validation failed",
"error_properties": {
"purchase.amount": ["Amount should be greater than 0"],
"purchase.currency": ["Currency is required"]
}
}
Related Documentation​
- Payment Orders Guide - Detailed order creation guide
- Payment Links Guide - Detailed payment link guide
- Error Codes - Complete error reference
- Payment Statuses - Status reference