Verify payment
curl --request POST \
--url https://dev.api-gateway.archefusion.com/v1/payments/{paymentId}/verify \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"transactionId": 123456789
}
'import requests
url = "https://dev.api-gateway.archefusion.com/v1/payments/{paymentId}/verify"
payload = { "transactionId": 123456789 }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({transactionId: 123456789})
};
fetch('https://dev.api-gateway.archefusion.com/v1/payments/{paymentId}/verify', 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://dev.api-gateway.archefusion.com/v1/payments/{paymentId}/verify",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'transactionId' => 123456789
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://dev.api-gateway.archefusion.com/v1/payments/{paymentId}/verify"
payload := strings.NewReader("{\n \"transactionId\": 123456789\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://dev.api-gateway.archefusion.com/v1/payments/{paymentId}/verify")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"transactionId\": 123456789\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://dev.api-gateway.archefusion.com/v1/payments/{paymentId}/verify")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"transactionId\": 123456789\n}"
response = http.request(request)
puts response.read_body{
"status": true,
"statusCode": 200,
"message": "Payment already succeeded",
"data": {
"id": "9ead7f67-7392-454c-ba15-e112a318a96c",
"type": "payment.succeeded",
"createdAt": "2026-06-25T09:07:29.318Z",
"merchantNumber": "ARC-2026-000006",
"data": {
"paymentId": "14b9dfda-c366-4386-988e-8ce3719d27c9",
"merchantOrderId": "order-1782121386",
"status": "SUCCESS",
"executionStatus": "succeeded",
"currency": "NGN",
"amount": 1000,
"gatewayReference": "14b9dfda-c366-4386-988e-8ce3719d27c9"
}
}
}{
"success": false,
"statusCode": 401,
"message": "Invalid API key",
"data": null
}{
"success": false,
"statusCode": 404,
"message": "Payment not found",
"data": null
}Payments
Verify payment
This endpoint verifies the status of a payment.
POST
/
v1
/
payments
/
{paymentId}
/
verify
Verify payment
curl --request POST \
--url https://dev.api-gateway.archefusion.com/v1/payments/{paymentId}/verify \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"transactionId": 123456789
}
'import requests
url = "https://dev.api-gateway.archefusion.com/v1/payments/{paymentId}/verify"
payload = { "transactionId": 123456789 }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({transactionId: 123456789})
};
fetch('https://dev.api-gateway.archefusion.com/v1/payments/{paymentId}/verify', 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://dev.api-gateway.archefusion.com/v1/payments/{paymentId}/verify",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'transactionId' => 123456789
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://dev.api-gateway.archefusion.com/v1/payments/{paymentId}/verify"
payload := strings.NewReader("{\n \"transactionId\": 123456789\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://dev.api-gateway.archefusion.com/v1/payments/{paymentId}/verify")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"transactionId\": 123456789\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://dev.api-gateway.archefusion.com/v1/payments/{paymentId}/verify")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"transactionId\": 123456789\n}"
response = http.request(request)
puts response.read_body{
"status": true,
"statusCode": 200,
"message": "Payment already succeeded",
"data": {
"id": "9ead7f67-7392-454c-ba15-e112a318a96c",
"type": "payment.succeeded",
"createdAt": "2026-06-25T09:07:29.318Z",
"merchantNumber": "ARC-2026-000006",
"data": {
"paymentId": "14b9dfda-c366-4386-988e-8ce3719d27c9",
"merchantOrderId": "order-1782121386",
"status": "SUCCESS",
"executionStatus": "succeeded",
"currency": "NGN",
"amount": 1000,
"gatewayReference": "14b9dfda-c366-4386-988e-8ce3719d27c9"
}
}
}{
"success": false,
"statusCode": 401,
"message": "Invalid API key",
"data": null
}{
"success": false,
"statusCode": 404,
"message": "Payment not found",
"data": null
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
This represents the payment ID. You can retrieve it from the paymentId field in the initiate payment response, or from the redirect URL after the customer completes payment.
Body
application/json
This represents the transaction ID. It is an optional field and it is mainly used by gateways that return a provider transaction ID.
Example:
123456789
Was this page helpful?
⌘I

