Base URL
https://checkout-api.payintelli.com
Endpoints
8 documented routes
The Checkout API provides endpoints to create and manage checkout sessions for payment processing.
Base Path: /{culture}/api/v1/checkout
All requests must include the following headers unless noted otherwise:
| Header | Required | Description |
|---|---|---|
pi-api-key | Yes (most endpoints) | Your API key for authenticating requests |
pi-client-id | Yes (create & status) | Your client identifier |
pi-correlation-id | No | Optional identifier for correlating requests on your side |
Endpoints
Description
Initiates a new checkout session and returns a URL to redirect the customer to the hosted payment page.
Status: 201 Created
Redirect the customer to the checkoutUrl to complete their payment.
Common validation failures:
transaction.amount is less than 0.01notification.webhookUrl is not HTTPS, is malformed, or points to a local addressuserDetails.email is not a valid email addressuserDetails.phone does not match the expected international formatpi-client-id is missing, non-numeric, or invalidEndpoint Path
/{culture}/api/v1/checkout/createHeaders
| Header | Required | Description |
|---|---|---|
| `pi-api-key` | Required | Your API key for authenticating requests |
| `pi-client-id` | Required | Your client identifier |
| `pi-correlation-id` | Optional | Optional identifier for correlating requests on your side |
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| `transaction.amount` | number | Required | Must be greater than or equal to `1` |
| `transaction.currency` | string | Required | ISO 4217 currency code (e.g. `USD`). Normalized to uppercase. |
| `clientOrderDetails.clientOrderId` | string | Required | Your unique identifier for the order |
| `clientOrderDetails.description` | string | Required | A short description of the purchase |
| `userDetails.firstName` | string | Required | The customer's first name |
| `userDetails.lastName` | string | Required | The customer's last name |
| `userDetails.email` | string | Required | Must be a valid email address |
| `userDetails.clientUserId` | string | Required | Your unique identifier for the user |
| `userDetails.phone` | string | Required | International format (e.g. `+441234567890`) |
| `userDetails.address` | string | Required | The customer's primary billing address |
| `userDetails.city` | string | Required | The city for the billing address |
| `userDetails.state` | string | Required | The state or province for the billing address |
| `userDetails.country` | string | Required | ISO 3166-1 alpha-2 country code (e.g. `GB`) |
| `userDetails.postalCode` | string | Required | The postal code for the billing address |
| `notification.successUrl` | string | Required | HTTPS URL to redirect the customer after successful payment |
| `notification.cancelUrl` | string | Required | HTTPS URL to redirect the customer if they cancel |
| `notification.webhookUrl` | string | Required | HTTPS URL to receive payment event notifications. Must not point to a local or private address. |
Request Body
{
"transaction": {
"amount": 100.00,
"currency": "USD"
},
"clientOrderDetails": {
"clientOrderId": "ORDER-123",
"description": "Purchase of widgets"
},
"userDetails": {
"firstName": "Jane",
"lastName": "Doe",
"email": "jane.doe@example.com",
"clientUserId": "user-789",
"phone": "+441234567890",
"address": "12 Example Street",
"city": "London",
"state": "Greater London",
"country": "GB",
"postalCode": "SW1A 1AA"
},
"notification": {
"successUrl": "https://merchant.example.com/success",
"cancelUrl": "https://merchant.example.com/cancel",
"webhookUrl": "https://merchant.example.com/webhook"
}
}Response Body
{
"checkoutId": "1234567890123456789",
"checkoutUrl": "https://checkout.example.com/en/checkoutpage?checkoutId=1234567890123456789&token=..."
}Endpoints
Description
Retrieves the current status of a checkout session.
Status: 200 OK
Common lookup issues:
checkoutId is not a valid numeric identifierpi-client-id is missing or does not match the session's ownerEndpoint Path
/{culture}/api/v1/checkout/status/{checkoutId}Headers
| Header | Required | Description |
|---|---|---|
| `pi-api-key` | Required | Your API key for authenticating requests |
| `pi-client-id` | Required | Your client identifier |
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| `checkoutId` | string | Optional | The ID returned when the checkout was created |
Response Body
{
"checkoutId": "1234567890123456789",
"status": "PENDING",
"transaction": {
"amount": 100.00,
"currency": "USD"
}
}Endpoints
Description
Retrieves the full details of a checkout session, including user and order information.
Status: 200 OK
Common lookup issues:
checkoutId is syntactically valid but does not existpi-client-id is provided but does not match the session's ownerEndpoint Path
/{culture}/api/v1/checkout/details/{checkoutId}Headers
| Header | Required | Description |
|---|---|---|
| `pi-api-key` | Optional | Your API key for authenticating requests |
| `pi-client-id` | Optional | Your client identifier |
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| `checkoutId` | string | Optional | The ID returned when the checkout was created |
Response Body
{
"checkoutId": "1234567890123456789",
"status": "PENDING",
"transaction": {
"amount": 100.00,
"currency": "USD"
},
"clientOrderDetails": {
"clientOrderId": "ORDER-123",
"description": "Purchase of widgets"
},
"userDetails": {
"firstName": "Jane",
"lastName": "Doe",
"email": "jane.doe@example.com",
"clientUserId": "user-789",
"phone": "+441234567890",
"address": "12 Example Street",
"city": "London",
"state": "Greater London",
"country": "GB",
"postalCode": "SW1A 1AA"
},
"additionalData": {
"correlationId": "corr-abc-123"
}
}status and details endpoints are read-only.create call, use the returned checkoutUrl to redirect the customer to the hosted payment page.When a checkout is created, the request must include notification.webhookUrl.
This URL is the destination for checkout lifecycle notifications.
CreateCheckoutRequest.notification fields:
successUrl: redirect URL for successful checkout completioncancelUrl: redirect URL for cancelled checkoutwebhookUrl: destination for webhook notificationsWebhook integration
Description
The webhook URL must:
localhost, .local, .internal, .lan, or private IP rangesWebhook integration
Description
Webhook notifications are delivered asynchronously after checkout status changes.
Your endpoint should accept JSON POST requests and return a 2xx response to acknowledge successful delivery.
Webhook integration
Description
A webhook payload may contain fields similar to the following:
Typical payload fields:
eventType: the checkout lifecycle eventcheckoutId: unique checkout session identifierclientOrderId: merchant-supplied order identifiertransactionId: payment transaction identifierstatus: final status of the checkouttimestamp: event time in ISO 8601 UTC formatWebhook integration
Description
2xx HTTP response.Webhook integration
Description
2xx responses, delivery retries may be attempted.