Expire checkout
curl --request POST \
--url https://api.sandbox.pawapay.io/v2/checkouts/{checkoutId}/expire \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sandbox.pawapay.io/v2/checkouts/{checkoutId}/expire"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sandbox.pawapay.io/v2/checkouts/{checkoutId}/expire', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sandbox.pawapay.io/v2/checkouts/{checkoutId}/expire",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.sandbox.pawapay.io/v2/checkouts/{checkoutId}/expire"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.sandbox.pawapay.io/v2/checkouts/{checkoutId}/expire")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.pawapay.io/v2/checkouts/{checkoutId}/expire")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"checkoutId": "afb57b93-7849-49aa-babb-4c3ccbfe3d79",
"status": "EXPIRED",
"expiredAt": "2026-03-27T10:45:00Z",
"reason": "MANUAL_EXPIRY",
"expiredBy": "API"
}{
"status": "REJECTED",
"failureReason": {
"failureCode": "AUTHENTICATION_ERROR",
"failureMessage": "The API token in the request is invalid."
}
}{
"status": "REJECTED",
"failureReason": {
"failureCode": "AUTHORISATION_ERROR",
"failureMessage": "The API token in the request is not authorised for this endpoint."
}
}{
"status": "REJECTED",
"failureReason": {
"failureCode": "NOT_FOUND",
"failureMessage": "Checkout with ID afb57b93-7849-49aa-babb-4c3ccbfe3d79 not found."
}
}{
"failureReason": {
"failureCode": "UNKNOWN_ERROR",
"failureMessage": "Unable to process request due to an unknown problem."
}
}Checkouts
Expire checkout
POST
/
v2
/
checkouts
/
{checkoutId}
/
expire
Expire checkout
curl --request POST \
--url https://api.sandbox.pawapay.io/v2/checkouts/{checkoutId}/expire \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sandbox.pawapay.io/v2/checkouts/{checkoutId}/expire"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sandbox.pawapay.io/v2/checkouts/{checkoutId}/expire', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sandbox.pawapay.io/v2/checkouts/{checkoutId}/expire",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.sandbox.pawapay.io/v2/checkouts/{checkoutId}/expire"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.sandbox.pawapay.io/v2/checkouts/{checkoutId}/expire")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.pawapay.io/v2/checkouts/{checkoutId}/expire")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"checkoutId": "afb57b93-7849-49aa-babb-4c3ccbfe3d79",
"status": "EXPIRED",
"expiredAt": "2026-03-27T10:45:00Z",
"reason": "MANUAL_EXPIRY",
"expiredBy": "API"
}{
"status": "REJECTED",
"failureReason": {
"failureCode": "AUTHENTICATION_ERROR",
"failureMessage": "The API token in the request is invalid."
}
}{
"status": "REJECTED",
"failureReason": {
"failureCode": "AUTHORISATION_ERROR",
"failureMessage": "The API token in the request is not authorised for this endpoint."
}
}{
"status": "REJECTED",
"failureReason": {
"failureCode": "NOT_FOUND",
"failureMessage": "Checkout with ID afb57b93-7849-49aa-babb-4c3ccbfe3d79 not found."
}
}{
"failureReason": {
"failureCode": "UNKNOWN_ERROR",
"failureMessage": "Unable to process request due to an unknown problem."
}
}Expires a checkout that should no longer be used.
- A successful response returns the checkout in its current state together with
expiredAt. - When the expiration is applied, the checkout status will be
EXPIRED. - After expiry, the customer can no longer make new payment attempts on that checkout.
- If the checkout does not exist, the endpoint returns
NOT_FOUND.
Authorizations
See Authentication.
Path Parameters
The id of the checkout that you are performing this operation on.
Required string length:
36Response
Request has been processed by PawaPay.
The unique ID for this payment in PawaPay as specified by you during initiation.
Required string length:
36Example:
"f4401bd2-1568-4140-bf2d-eb77d2b2b639"
Possible checkout lifecycle statuses. This is distinct from the initiation status (CheckoutCreationStatus) returned when the checkout is created.
WAITING_PAYMENT- The checkout and its hosted payment page have been created and are waiting for the customer to pay.PROCESSING- A payment attempt is in progress and the checkout is still being processed.COMPLETED- The checkout has completed successfully. This is a final status.FAILED- The checkout has failed. InspectdepositordepositsHistoryfor the latest attempt result when available. This is a final status.EXPIRED- The checkout has expired and can no longer be used. This is a final status.CANCELLED- The customer cancelled the payment on the hosted payment page. This is a final status.
Available options:
WAITING_PAYMENT, PROCESSING, COMPLETED, FAILED, EXPIRED, CANCELLED Timestamp when the checkout was expired.
Example:
"2026-03-27T10:45:00Z"
Reason reported for the expiration.
Example:
"MANUAL_EXPIRY"
Actor that expired the checkout.
Example:
"API"
Was this page helpful?