API reference

Pi Checkout

E-commerce checkout and payment processing API.

Base URL

https://checkout-api.payintelli.com

Endpoints

4 documented routes

Overview

The Checkout API provides endpoints to create and manage hosted checkout sessions for e-commerce payment processing.

Base URL: https://checkout-api.payintelli.com
Sandbox / Dev URL: https://checkout-api-dev.payintelli.com
Base Path: /{culture}/api/v1/checkout

Authentication

All requests must include the following headers unless noted otherwise (headers are case-insensitive, e.g. pi-api-key or PI_API_KEY):

HeaderRequiredDescription
pi-api-keyYes (most endpoints)Your merchant API key for authenticating requests
pi-client-idYes (create & status)Your unique client identifier
pi-correlation-idNoOptional identifier for correlating requests on your side

Endpoints

1. Create Checkout

POST

Endpoints

Description

Initiates a new checkout session and returns a URL to redirect the customer to the hosted payment page. Asynchronous lifecycle events will be delivered to the provided notification.webhookUrl.

Status: 201 Created

Redirect the customer to data.checkoutUrl to complete their payment on the hosted page, or embed data.sdkCheckoutUrl within SDK checkout components.

Common validation failures:

  • transaction.amount is less than 1
  • notification.webhookUrl is not HTTPS, is malformed, or points to a local address
  • userDetails.email is not a valid email address
  • userDetails.phone does not match the expected international format
  • pi-client-id is missing or invalid

Endpoint Path

/{culture}/api/v1/checkout/create

Headers

HeaderRequiredDescription
`pi-api-key`RequiredAPI authentication key
`pi-client-id`RequiredMerchant client identifier
`pi-correlation-id`OptionalUnique correlation identifier

Request Body

{
  "transaction": {
    "amount": 10000,
    "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"
  }
}

Request Parameters

ParameterTypeRequiredDescription
`culture`stringRequiredLanguage and region code (e.g. `en`, `fr`, `de`)
`transaction.amount`numberRequiredAmount in minor currency units / cents (e.g. `10000` = $100.00). Must be greater than or equal to 1.
`transaction.currency`stringRequiredISO 4217 currency code (e.g. `USD`). Normalized to uppercase.
`clientOrderDetails.clientOrderId`stringRequiredYour unique identifier for this order (max 50 chars)
`clientOrderDetails.description`stringRequiredHuman-readable description of the purchase
`userDetails.firstName`stringRequiredCustomer first name
`userDetails.lastName`stringRequiredCustomer last name
`userDetails.email`stringRequiredCustomer email address used for payment receipts
`userDetails.clientUserId`stringRequiredYour internal user ID for this customer
`userDetails.phone`stringRequiredCustomer phone number in E.164 international format (e.g. `+441234567890`)
`userDetails.address`stringRequiredStreet address line
`userDetails.city`stringRequiredBilling city
`userDetails.state`stringRequiredBilling state or province
`userDetails.country`stringRequiredISO 3166-1 alpha-2 country code (e.g. `GB`, `US`)
`userDetails.postalCode`stringRequiredBilling postal or ZIP code
`notification.successUrl`stringRequiredCustomer is redirected here after successful payment
`notification.cancelUrl`stringRequiredCustomer is redirected here if they cancel
`notification.webhookUrl`stringRequiredReceives async POST events when checkout status changes. Must be publicly reachable HTTPS.

Response Body

{
  "success": true,
  "message": "Checkout session created successfully",
  "data": {
    "checkoutId": "1528874549724192768",
    "checkoutUrl": "https://checkout-dev.payintelli.com/en/checkoutpage?checkoutId=1528874549724192768&token=sample_checkout_token_12345",
    "sdkCheckoutUrl": "https://checkout-dev.payintelli.com/en/checkout-sdk-page?checkoutId=1528874549724192768&token=sample_checkout_token_12345"
  }
}

Response Parameters

ParameterTypeRequiredDescription
`success`booleanRequiredIndicates whether the checkout session was created successfully (`true` or `false`)
`message`stringRequiredHuman-readable status or result description
`data`objectRequiredContainer payload containing the created session details and payment URLs
`data.checkoutId`stringRequiredUnique identifier generated for this checkout session
`data.checkoutUrl`stringRequiredHosted checkout page URL to redirect the customer to complete payment
`data.sdkCheckoutUrl`stringRequiredEmbedded SDK checkout URL for direct SDK integration

2. Get Checkout Status

GET

Endpoints

Description

Retrieves the current status of an ongoing or completed checkout session.

Status: 200 OK


Endpoint Path

/{culture}/api/v1/checkout/status/{checkoutId}

Headers

HeaderRequiredDescription
`pi-api-key`RequiredAPI authentication key
`pi-client-id`RequiredMerchant client identifier

Request Parameters

ParameterTypeRequiredDescription
`culture`stringRequiredLanguage and region code (e.g. `en`)
`checkoutId`stringRequiredThe unique ID returned when checkout was created

Response Body

{
  "checkoutId": "1234567890123456789",
  "status": "PENDING",
  "transaction": {
    "amount": 100.00,
    "currency": "USD"
  }
}

Response Parameters

ParameterTypeRequiredDescription
`checkoutId`stringRequiredThe unique identifier of the checkout session
`status`stringRequiredCurrent state of the checkout session (`PENDING`, `SUCCESS`, `CANCELLED`, `FAILED`)
`transaction`objectRequiredPayment transaction summary
`transaction.amount`numberRequiredTotal transaction amount
`transaction.currency`stringRequiredISO 4217 currency code

3. Get Checkout Details

GET

Endpoints

Description

Retrieves the full details of a checkout session, including customer profile, order items, and delivery status.

Status: 200 OK


Endpoint Path

/{culture}/api/v1/checkout/details/{checkoutId}

Headers

HeaderRequiredDescription
`pi-api-key`RequiredAPI authentication key
`pi-client-id`OptionalMerchant client identifier

Request Parameters

ParameterTypeRequiredDescription
`culture`stringRequiredLanguage and region code (e.g. `en`)
`checkoutId`stringRequiredThe 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"
  }
}

Response Parameters

ParameterTypeRequiredDescription
`checkoutId`stringRequiredThe unique ID returned when the checkout was created
`status`stringRequiredCheckout session status (`PENDING`, `SUCCESS`, `CANCELLED`, `FAILED`)
`transaction`objectRequiredPayment transaction details
`transaction.amount`numberRequiredTotal transaction amount
`transaction.currency`stringRequiredISO 4217 currency code
`clientOrderDetails`objectRequiredMerchant order information
`clientOrderDetails.clientOrderId`stringRequiredUnique order identifier supplied by the merchant
`clientOrderDetails.description`stringRequiredHuman-readable order description
`userDetails`objectRequiredCustomer contact and billing information
`userDetails.firstName`stringRequiredCustomer first name
`userDetails.lastName`stringRequiredCustomer last name
`userDetails.email`stringRequiredCustomer email address
`userDetails.clientUserId`stringRequiredMerchant internal customer identifier
`userDetails.phone`stringRequiredCustomer phone number in E.164 format
`userDetails.address`stringRequiredCustomer billing address line
`userDetails.city`stringRequiredCustomer billing city
`userDetails.state`stringRequiredCustomer billing state or province
`userDetails.country`stringRequiredISO 3166-1 alpha-2 country code
`userDetails.postalCode`stringRequiredCustomer billing postal code
`additionalData`objectOptionalOptional metadata or correlation identifiers
`additionalData.correlationId`stringOptionalCorrelation identifier passed in request headers

4. Webhook Lifecycle Events

POST

Endpoints

Description

Asynchronous notifications delivered to your configured notification.webhookUrl whenever a checkout session status changes.

Your server must acknowledge receipt with a 2xx HTTP status code (e.g. 200 OK):

Endpoint Path

/your-webhook-endpoint

Request Body

{
  "eventType": "checkout_success",
  "checkoutId": 1234567890123456789,
  "clientOrderId": "ORDER-123",
  "transactionId": 9876543210,
  "status": "success",
  "timestamp": "2026-06-12T12:34:56Z"
}

Request Parameters

ParameterTypeRequiredDescription
`eventType`stringOptionalEvent type identifier (e.g. `checkout_success`, `checkout_cancelled`, `checkout_failed`)
`checkoutId`numberOptionalUnique checkout session identifier
`clientOrderId`stringOptionalMerchant order ID specified during checkout creation
`transactionId`numberOptionalUnique payment transaction identifier
`status`stringOptionalPayment status (`success`, `cancelled`, `failed`)
`timestamp`stringOptionalISO 8601 UTC timestamp of the event

Response Body

{
  "status": "received"
}