Skip to main content

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:

OpenAPI Specification​

Download the complete API specification:

Download OpenAPI Spec (YAML)

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:

FieldTypeRequiredDescription
project_idstring (UUID)NoYour merchant project ID. Defaults to the project from your JWT token.
redirect_urls.success_urlstringNoURL to redirect on successful payment
redirect_urls.failure_urlstringNoURL to redirect on failed payment
redirect_urls.callback_urlstringNoBackend URL to receive webhook notifications
purchase.referencestringYesYour unique order reference in the merchant system
purchase.amountstringYesAmount in minor units as a string (e.g., "14999" for €149.99)
purchase.currencystringYesISO 4217 currency code
sourcestringNoWhere the order originated (URL or identifier). Defaults to Integration.
metadataobjectNoAdditional key-value pairs (each key/value max 255 chars)
merchant_dataobjectNoMerchant data key-value pairs (each key/value max 255 chars)

Response: 201 Created

FieldTypeDescription
order_idstring (UUID)Unique order identifier
project_idstring (UUID)Project identifier associated with the order
created_atintegerCreation Unix timestamp (UTC)
sourcestringSource indicating where the order originated
merchant_dataobjectMerchant data key-value pairs (if provided in request)
purchase.referencestringYour order reference
purchase.amountintegerAmount in minor units
purchase.currencystringCurrency code

Base path: /checkout-payment-link/integration/v1

Creates a payment link for an existing order.

POST /checkout-payment-link/integration/v1/payment-links

Request Body:

FieldTypeRequiredDescription
order_idstring (UUID)YesThe associated order ID
namestringYesDescriptive name for the payment link (max 255 chars)
purchase.amountintegerYesAmount in minor currency units (e.g., cents)
experience.languagestringYesUI language, 2-letter ISO 639-1 code (e.g., en, lt)
experience.payment_flowstringNoPayment flow type. Defaults to paysera_checkout.
lifetimeintegerNoLink validity in seconds. Default 259200 (3 days). 0 = never expires.
payment_details.keystringNoPreferred payment method key (e.g., credit_card)
payment_details.purposestringNoPayment purpose description (max 255 chars)
payment_details.country_codestringNoCountry code, ISO 3166-1 alpha-2 (e.g., LT)
payer_information.namestringNoPayer name (max 150 chars)
payer_information.emailstringNoPayer email
metadataobjectNoAdditional key-value metadata

Response: 201 Created

FieldTypeDescription
link_idstring (UUID)Unique payment link ID
order_idstring (UUID)Associated order ID
payment_URLstringPayment URL to redirect the customer to
experience.languagestringSelected language
experience.payment_flowstringPayment flow type
payment_details.keystringPayment method key (if specified)
payment_details.purposestringPayment purpose (if specified)
payment_details.country_codestringCountry code (if specified)
payer_information.namestringPayer name (if specified)
payer_information.emailstringPayer email (if specified)
purchase.amountintegerAmount in minor units
created_atintegerCreation Unix timestamp (UTC)
expired_atintegerExpiration Unix timestamp (UTC)
note

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:

ParameterTypeRequiredDescription
amountintegerNoFilter by transaction amount (minor units)
currencystringNoFilter by currency (ISO 4217)
note

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 }
}
}
]
}
FieldTypeDescription
items[].keystring | nullUnique identifier for the payment method
items[].titlestringDisplay name of the payment method
items[].descriptionstring | nullDetailed description of the payment method
items[].typestringMethod type: card, banklink, wallet, or pis
items[].flowstringFlow: redirect or decoupled
items[].available_countriesarray<string>ISO 3166-1 alpha-2 country codes
items[].available_currenciesobjectMap of currency code → { main: boolean }

Common Response Codes​

CodeDescription
200Success
201Created
400Bad Request - Invalid parameters
401Unauthorized - Invalid or expired token
403Forbidden - Insufficient permissions
404Not Found - Resource doesn't exist
409Conflict - Resource already exists
422Unprocessable Entity - Validation error
429Too Many Requests - Rate limit exceeded
500Internal 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"]
}
}