Get Payment Status | Payments API
curl --request GET \
--url https://api.atoa.me/api/payments/v1/payment-status/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.atoa.me/api/payments/v1/payment-status/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.atoa.me/api/payments/v1/payment-status/{id}', 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.atoa.me/api/payments/v1/payment-status/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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.atoa.me/api/payments/v1/payment-status/{id}"
req, _ := http.NewRequest("GET", 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.get("https://api.atoa.me/api/payments/v1/payment-status/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.atoa.me/api/payments/v1/payment-status/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"userUuid": "65abed89-7e7f-44e1-8855-0ca696f9a75b",
"paymentRequestId": "75abed89-7e7f-44e1-8855-0ca696f9a75b",
"customerId": "string",
"merchantId": "eed6202f-4dfd-42fc-9bc6-48323556b59d ",
"merchantName": "John",
"applicationUserId": "99abed89-7e7f-44e1-8855-0ca696f9a75b",
"callback": "string",
"avatar": "string",
"orderId": "e21d31cc3",
"signatureHash": "string",
"redirectUrlParams": {},
"redirectUrl": "https://paywithatoa.co.uk",
"status": "COMPLETED",
"paidAmount": "100",
"currency": "GBP",
"taxAmount": "2",
"serviceAmount": "16",
"tipAmount": "5",
"storeDetails": {
"id": "d77e02d5-4e93-46cf-a8be-50da650df562",
"address": "London",
"locationName": "Location 1"
},
"transactionDetails": [
{
"paymentIdempotencyId": "ATOA1692417435050",
"consumerId": "eed6202f-4dfd-42fc-9bc6-48323556b59d ",
"consumerName": "Doe",
"institutionId": "modelo-sandbox",
"tracingId": "e21d31cc354d44559d3c7b92ca07060a",
"statusDetails": {
"status": "COMPLETED",
"statusUpdateDate": "2023-08-19T03:31:49.073Z",
"isoStatus": {
"code": "ACSC",
"name": "AcceptedSettlementCompleted"
}
},
"paidAmount": "100",
"totalRefundAmount": "4",
"currency": "GBP",
"bankName": "Barclays",
"bankAccountNo": "756",
"createdAt": "2023-08-19T03:57:20.871Z",
"updatedAt": "2023-08-19T03:57:20.871Z",
"taxAmount": "2",
"serviceAmount": "16",
"tipAmount": "5",
"notes": "string",
"metadata": {
"bookingId": "BK-42427",
"orderReference": "ORD-1"
},
"errorDescription": "Insufficient funds",
"paymentDevice": {},
"splitBill": false,
"refundDetails": [
{
"id": "ATOA1745651316374",
"amount": 4,
"currency": "GBP",
"status": "COMPLETED",
"createdAt": "2025-04-26T01:38:36.460Z",
"updatedAt": "2025-04-26T01:38:40.337Z",
"refundNotes": "notes",
"refundType": "PARTIAL",
"refundId": "123e4567-e89b-12d3-a456-426614174000"
}
]
}
]
}
{
"paymentRequestId": "9baa68d8-362a-4127-994d-2ea622ef35ee",
"customerId": "550e8400-e29b-41d4-a716-446655440000",
"merchantId": "eed6202f-4dfd-42fc-9bc6-48323556b59d",
"merchantName": "My Shop",
"applicationUserId": "99abed89-7e7f-44e1-8855-0ca696f9a75b",
"callback": "string",
"avatar": "string",
"orderId": "ORDER-001",
"signatureHash": "string",
"redirectUrlParams": {},
"status": "AUTHORIZED",
"paidAmount": 10.50,
"currency": "GBP",
"taxAmount": 0,
"serviceAmount": 0,
"tipAmount": 0,
"storeDetails": {
"id": "d77e02d5-4e93-46cf-a8be-50da650df562",
"address": "London",
"locationName": "London Store"
},
"transactionDetails": [
{
"paymentIdempotencyId": "ATOA1692417435050",
"consumerId": "consumer_123",
"consumerName": "John Doe",
"tracingId": "e21d31cc354d44559d3c7b92ca07060a",
"statusDetails": {
"status": "AUTHORIZED",
"statusUpdateDate": "2025-06-15T10:30:05.000Z",
"isoStatus": {
"code": "PDNG",
"name": "Pending"
}
},
"paidAmount": 10.50,
"totalRefundAmount": 0,
"currency": "GBP",
"createdAt": "2025-06-15T10:30:00.000Z",
"updatedAt": "2025-06-15T10:30:05.000Z",
"notes": "Payment for order #001",
"metadata": {
"bookingId": "BK-42427",
"orderReference": "ORD-1"
},
"splitBill": false,
"refundDetails": [],
"cardPaymentDetails": {
"cardType": "VISA",
"transactionSubType": "CARD",
"displayText": "Visa **** 4242",
"captureType": "MANUAL_CAPTURE",
"metadata": {
"authorized": true,
"authorizedAt": "2025-06-15T10:30:05.000Z",
"captured": false,
"isMitPayment": true
},
"paymentMethodId": "card_abc123def456"
}
}
]
}
{
"name": "UNAUTHORIZED",
"message": "Unauthorized",
"status": 401,
"errors": "[]"
}
Payments
Get Payment Status | Payments API
Retrieve payment status via the Atoa Payments API, request parameters, response schema and code samples in cURL, Python, JavaScript, PHP, Go and Java.
GET
/
api
/
payments
/
v1
/
payment-status
/
{id}
Get Payment Status | Payments API
curl --request GET \
--url https://api.atoa.me/api/payments/v1/payment-status/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.atoa.me/api/payments/v1/payment-status/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.atoa.me/api/payments/v1/payment-status/{id}', 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.atoa.me/api/payments/v1/payment-status/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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.atoa.me/api/payments/v1/payment-status/{id}"
req, _ := http.NewRequest("GET", 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.get("https://api.atoa.me/api/payments/v1/payment-status/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.atoa.me/api/payments/v1/payment-status/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"userUuid": "65abed89-7e7f-44e1-8855-0ca696f9a75b",
"paymentRequestId": "75abed89-7e7f-44e1-8855-0ca696f9a75b",
"customerId": "string",
"merchantId": "eed6202f-4dfd-42fc-9bc6-48323556b59d ",
"merchantName": "John",
"applicationUserId": "99abed89-7e7f-44e1-8855-0ca696f9a75b",
"callback": "string",
"avatar": "string",
"orderId": "e21d31cc3",
"signatureHash": "string",
"redirectUrlParams": {},
"redirectUrl": "https://paywithatoa.co.uk",
"status": "COMPLETED",
"paidAmount": "100",
"currency": "GBP",
"taxAmount": "2",
"serviceAmount": "16",
"tipAmount": "5",
"storeDetails": {
"id": "d77e02d5-4e93-46cf-a8be-50da650df562",
"address": "London",
"locationName": "Location 1"
},
"transactionDetails": [
{
"paymentIdempotencyId": "ATOA1692417435050",
"consumerId": "eed6202f-4dfd-42fc-9bc6-48323556b59d ",
"consumerName": "Doe",
"institutionId": "modelo-sandbox",
"tracingId": "e21d31cc354d44559d3c7b92ca07060a",
"statusDetails": {
"status": "COMPLETED",
"statusUpdateDate": "2023-08-19T03:31:49.073Z",
"isoStatus": {
"code": "ACSC",
"name": "AcceptedSettlementCompleted"
}
},
"paidAmount": "100",
"totalRefundAmount": "4",
"currency": "GBP",
"bankName": "Barclays",
"bankAccountNo": "756",
"createdAt": "2023-08-19T03:57:20.871Z",
"updatedAt": "2023-08-19T03:57:20.871Z",
"taxAmount": "2",
"serviceAmount": "16",
"tipAmount": "5",
"notes": "string",
"metadata": {
"bookingId": "BK-42427",
"orderReference": "ORD-1"
},
"errorDescription": "Insufficient funds",
"paymentDevice": {},
"splitBill": false,
"refundDetails": [
{
"id": "ATOA1745651316374",
"amount": 4,
"currency": "GBP",
"status": "COMPLETED",
"createdAt": "2025-04-26T01:38:36.460Z",
"updatedAt": "2025-04-26T01:38:40.337Z",
"refundNotes": "notes",
"refundType": "PARTIAL",
"refundId": "123e4567-e89b-12d3-a456-426614174000"
}
]
}
]
}
{
"paymentRequestId": "9baa68d8-362a-4127-994d-2ea622ef35ee",
"customerId": "550e8400-e29b-41d4-a716-446655440000",
"merchantId": "eed6202f-4dfd-42fc-9bc6-48323556b59d",
"merchantName": "My Shop",
"applicationUserId": "99abed89-7e7f-44e1-8855-0ca696f9a75b",
"callback": "string",
"avatar": "string",
"orderId": "ORDER-001",
"signatureHash": "string",
"redirectUrlParams": {},
"status": "AUTHORIZED",
"paidAmount": 10.50,
"currency": "GBP",
"taxAmount": 0,
"serviceAmount": 0,
"tipAmount": 0,
"storeDetails": {
"id": "d77e02d5-4e93-46cf-a8be-50da650df562",
"address": "London",
"locationName": "London Store"
},
"transactionDetails": [
{
"paymentIdempotencyId": "ATOA1692417435050",
"consumerId": "consumer_123",
"consumerName": "John Doe",
"tracingId": "e21d31cc354d44559d3c7b92ca07060a",
"statusDetails": {
"status": "AUTHORIZED",
"statusUpdateDate": "2025-06-15T10:30:05.000Z",
"isoStatus": {
"code": "PDNG",
"name": "Pending"
}
},
"paidAmount": 10.50,
"totalRefundAmount": 0,
"currency": "GBP",
"createdAt": "2025-06-15T10:30:00.000Z",
"updatedAt": "2025-06-15T10:30:05.000Z",
"notes": "Payment for order #001",
"metadata": {
"bookingId": "BK-42427",
"orderReference": "ORD-1"
},
"splitBill": false,
"refundDetails": [],
"cardPaymentDetails": {
"cardType": "VISA",
"transactionSubType": "CARD",
"displayText": "Visa **** 4242",
"captureType": "MANUAL_CAPTURE",
"metadata": {
"authorized": true,
"authorizedAt": "2025-06-15T10:30:05.000Z",
"captured": false,
"isMitPayment": true
},
"paymentMethodId": "card_abc123def456"
}
}
]
}
{
"name": "UNAUTHORIZED",
"message": "Unauthorized",
"status": 401,
"errors": "[]"
}
If the status is PENDING, you should Poll for success at regular intervals. It should take 2-3 minutes at maximum for payment to be completed (dependent on the bank used).For a more effective approach, consider implementing an exponential back-off strategy.
So this API can be used to check the status of an individual payment transaction through polling, in case your integration hasn’t been setup for webhook usage.
Request Body Schema
Response
NOTE: If the customer hasn’t initiated any payment, calling this API will
result in a ‘200 OK’ with message: Payment not initiated.
Card Payments: For card transactions, this endpoint returns additional
cardPaymentDetails in each transaction detail. Within cardPaymentDetails, metadata.isMitPayment: true indicates a merchant-initiated card-on-file payment. The overall payment status may be AUTHORIZED (for MANUAL_CAPTURE payments not yet captured) or CANCELLED (for cancelled authorizations), in addition to the standard statuses — these values only appear for card-on-file payments.string
required
The PaymentRequestId is required for this step, which you’ll receive it from
the process-payment API when generating a payment request.
string
default:"production"
pass env=sandbox in case of sandbox env.
string
Unique identifier assigned to the user who initiated the payment
string
Unique identifier for this specific payment request
string
Unique identifier for the customer making the payment
string
Unique identifier for the merchant
string
Business name of the merchant
string
Unique Identifier for the customer who made the payment
string
URL that will be called after payment completion
string
URL of the merchant’s store profile image
string
Cryptographic hash used to verify payment authenticity
object
Additional parameters passed in the redirect URL after payment
string
Current status of the payment:
COMPLETED, PENDING, FAILED, AUTHORIZED, or CANCELLED. The AUTHORIZED and CANCELLED statuses only apply to card-on-file payments with MANUAL_CAPTURE or CAPTURE_BEFORE_EXPIRY capture type.number
Total amount paid by the customer
string
Currency code for the transaction (e.g. GBP)
number
Amount of tax charged on the transaction
number
Service fees charged on the transaction
number
Tip amount added by the customer
string
Custom note provided during Payment Request Creation.
object
array
Show child attributes
Show child attributes
string
Unique reference ID provided by ATOA eg. ATOA1692417435050
string
Unique identifier for the customer
string
Name of the customer as registered with their bank
string
Identifier for the customer’s banking institution
string
Internal tracking ID for the transaction
object
number
Amount paid in this specific transaction
string
Currency code for this transaction
string
Name of the customer’s bank
string
Masked bank account number of the customer
string
Timestamp when the transaction was initiated
string
Timestamp of the last transaction update
number
Total amount refunded for this transaction
number
Tax amount for this specific transaction
number
Service fees for this specific transaction
number
Tip amount for this specific transaction
string
Additional notes or comments on the transaction
object
Only present when metadata was supplied on the payment. See Process Payment for the field limits.
string
Detailed description of any errors that occurred
object
Details about the device used for payment
boolean
Indicates if this was part of a split bill payment
array
Show child attributes
Show child attributes
string
Unique identifier for this refund transaction
number
Amount refunded in this transaction
string
Current status of the refund
string
Timestamp when the refund was initiated
string
Timestamp of the last refund status update
string
Reason or notes provided for the refund
string
Indicates whether refund is FULL or PARTIAL
string
Currency code for the refund amount
string
Unique UUID assigned to this refund
object
Card-specific details. Only present for card transactions. The
metadata.isMitPayment field indicates whether this was a merchant-initiated card-on-file payment.Show child attributes
Show child attributes
string
Card brand (e.g.,
VISA, MASTERCARD)string
Payment sub-type:
CARD, GOOGLE_PAY, or APPLE_PAYstring
Masked card display text (e.g., “Visa **** 4242”)
string
AUTO_CAPTURE, MANUAL_CAPTURE, or CAPTURE_BEFORE_EXPIRYobject
Card payment metadata.
isMitPayment: true indicates this is a card-on-file (merchant-initiated) payment. Also includes authorization/capture timestamps.string
The saved card/payment method ID used for this transaction
{
"userUuid": "65abed89-7e7f-44e1-8855-0ca696f9a75b",
"paymentRequestId": "75abed89-7e7f-44e1-8855-0ca696f9a75b",
"customerId": "string",
"merchantId": "eed6202f-4dfd-42fc-9bc6-48323556b59d ",
"merchantName": "John",
"applicationUserId": "99abed89-7e7f-44e1-8855-0ca696f9a75b",
"callback": "string",
"avatar": "string",
"orderId": "e21d31cc3",
"signatureHash": "string",
"redirectUrlParams": {},
"redirectUrl": "https://paywithatoa.co.uk",
"status": "COMPLETED",
"paidAmount": "100",
"currency": "GBP",
"taxAmount": "2",
"serviceAmount": "16",
"tipAmount": "5",
"storeDetails": {
"id": "d77e02d5-4e93-46cf-a8be-50da650df562",
"address": "London",
"locationName": "Location 1"
},
"transactionDetails": [
{
"paymentIdempotencyId": "ATOA1692417435050",
"consumerId": "eed6202f-4dfd-42fc-9bc6-48323556b59d ",
"consumerName": "Doe",
"institutionId": "modelo-sandbox",
"tracingId": "e21d31cc354d44559d3c7b92ca07060a",
"statusDetails": {
"status": "COMPLETED",
"statusUpdateDate": "2023-08-19T03:31:49.073Z",
"isoStatus": {
"code": "ACSC",
"name": "AcceptedSettlementCompleted"
}
},
"paidAmount": "100",
"totalRefundAmount": "4",
"currency": "GBP",
"bankName": "Barclays",
"bankAccountNo": "756",
"createdAt": "2023-08-19T03:57:20.871Z",
"updatedAt": "2023-08-19T03:57:20.871Z",
"taxAmount": "2",
"serviceAmount": "16",
"tipAmount": "5",
"notes": "string",
"metadata": {
"bookingId": "BK-42427",
"orderReference": "ORD-1"
},
"errorDescription": "Insufficient funds",
"paymentDevice": {},
"splitBill": false,
"refundDetails": [
{
"id": "ATOA1745651316374",
"amount": 4,
"currency": "GBP",
"status": "COMPLETED",
"createdAt": "2025-04-26T01:38:36.460Z",
"updatedAt": "2025-04-26T01:38:40.337Z",
"refundNotes": "notes",
"refundType": "PARTIAL",
"refundId": "123e4567-e89b-12d3-a456-426614174000"
}
]
}
]
}
{
"paymentRequestId": "9baa68d8-362a-4127-994d-2ea622ef35ee",
"customerId": "550e8400-e29b-41d4-a716-446655440000",
"merchantId": "eed6202f-4dfd-42fc-9bc6-48323556b59d",
"merchantName": "My Shop",
"applicationUserId": "99abed89-7e7f-44e1-8855-0ca696f9a75b",
"callback": "string",
"avatar": "string",
"orderId": "ORDER-001",
"signatureHash": "string",
"redirectUrlParams": {},
"status": "AUTHORIZED",
"paidAmount": 10.50,
"currency": "GBP",
"taxAmount": 0,
"serviceAmount": 0,
"tipAmount": 0,
"storeDetails": {
"id": "d77e02d5-4e93-46cf-a8be-50da650df562",
"address": "London",
"locationName": "London Store"
},
"transactionDetails": [
{
"paymentIdempotencyId": "ATOA1692417435050",
"consumerId": "consumer_123",
"consumerName": "John Doe",
"tracingId": "e21d31cc354d44559d3c7b92ca07060a",
"statusDetails": {
"status": "AUTHORIZED",
"statusUpdateDate": "2025-06-15T10:30:05.000Z",
"isoStatus": {
"code": "PDNG",
"name": "Pending"
}
},
"paidAmount": 10.50,
"totalRefundAmount": 0,
"currency": "GBP",
"createdAt": "2025-06-15T10:30:00.000Z",
"updatedAt": "2025-06-15T10:30:05.000Z",
"notes": "Payment for order #001",
"metadata": {
"bookingId": "BK-42427",
"orderReference": "ORD-1"
},
"splitBill": false,
"refundDetails": [],
"cardPaymentDetails": {
"cardType": "VISA",
"transactionSubType": "CARD",
"displayText": "Visa **** 4242",
"captureType": "MANUAL_CAPTURE",
"metadata": {
"authorized": true,
"authorizedAt": "2025-06-15T10:30:05.000Z",
"captured": false,
"isMitPayment": true
},
"paymentMethodId": "card_abc123def456"
}
}
]
}
{
"name": "UNAUTHORIZED",
"message": "Unauthorized",
"status": 401,
"errors": "[]"
}
⌘I