Process Transaction
curl --request POST \
--url https://service.pcibooking.net/api/paymentGateway \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"cardToken": "<string>",
"OperationType": "<string>",
"Amount": 123,
"Currency": "<string>",
"PaymentGateway": {
"PaymentGateway.Name": "<string>",
"PaymentGateway.Credentials": {}
},
"GatewayReference": "<string>",
"GatewayToken": "<string>",
"myRef": "<string>",
"GenerateToken": true,
"ThreeDS": true,
"Parameters": {},
"PayerDetails": {
"PayerDetails.FirstName": "<string>",
"PayerDetails.LastName": "<string>",
"PayerDetails.Email": "<string>",
"PayerDetails.Phone": "<string>",
"PayerDetails.Address1": "<string>",
"PayerDetails.Address2": "<string>",
"PayerDetails.Address3": "<string>",
"PayerDetails.City": "<string>",
"PayerDetails.StateProvince": "<string>",
"PayerDetails.PostCode": "<string>",
"PayerDetails.CountryCode": "<string>",
"PayerDetails.ClientIPAddress": "<string>"
},
"OrderDesc": "<string>",
"IsDigital": true,
"FallbackUpgs": [
{
"FallbackUpgs[].PaymentGatewayAccountName": "<string>",
"FallbackUpgs[].PaymentGatewayCertName": "<string>"
}
],
"Status": "<string>",
"TransactionID": "<string>",
"AuthorizationCode": "<string>",
"GatewayDescription": "<string>",
"AcquirerDescription": "<string>"
}
'import requests
url = "https://service.pcibooking.net/api/paymentGateway"
payload = {
"cardToken": "<string>",
"OperationType": "<string>",
"Amount": 123,
"Currency": "<string>",
"PaymentGateway": {
"PaymentGateway.Name": "<string>",
"PaymentGateway.Credentials": {}
},
"GatewayReference": "<string>",
"GatewayToken": "<string>",
"myRef": "<string>",
"GenerateToken": True,
"ThreeDS": True,
"Parameters": {},
"PayerDetails": {
"PayerDetails.FirstName": "<string>",
"PayerDetails.LastName": "<string>",
"PayerDetails.Email": "<string>",
"PayerDetails.Phone": "<string>",
"PayerDetails.Address1": "<string>",
"PayerDetails.Address2": "<string>",
"PayerDetails.Address3": "<string>",
"PayerDetails.City": "<string>",
"PayerDetails.StateProvince": "<string>",
"PayerDetails.PostCode": "<string>",
"PayerDetails.CountryCode": "<string>",
"PayerDetails.ClientIPAddress": "<string>"
},
"OrderDesc": "<string>",
"IsDigital": True,
"FallbackUpgs": [
{
"FallbackUpgs[].PaymentGatewayAccountName": "<string>",
"FallbackUpgs[].PaymentGatewayCertName": "<string>"
}
],
"Status": "<string>",
"TransactionID": "<string>",
"AuthorizationCode": "<string>",
"GatewayDescription": "<string>",
"AcquirerDescription": "<string>"
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
cardToken: '<string>',
OperationType: '<string>',
Amount: 123,
Currency: '<string>',
PaymentGateway: {'PaymentGateway.Name': '<string>', 'PaymentGateway.Credentials': {}},
GatewayReference: '<string>',
GatewayToken: '<string>',
myRef: '<string>',
GenerateToken: true,
ThreeDS: true,
Parameters: {},
PayerDetails: {
'PayerDetails.FirstName': '<string>',
'PayerDetails.LastName': '<string>',
'PayerDetails.Email': '<string>',
'PayerDetails.Phone': '<string>',
'PayerDetails.Address1': '<string>',
'PayerDetails.Address2': '<string>',
'PayerDetails.Address3': '<string>',
'PayerDetails.City': '<string>',
'PayerDetails.StateProvince': '<string>',
'PayerDetails.PostCode': '<string>',
'PayerDetails.CountryCode': '<string>',
'PayerDetails.ClientIPAddress': '<string>'
},
OrderDesc: '<string>',
IsDigital: true,
FallbackUpgs: [
{
'FallbackUpgs[].PaymentGatewayAccountName': '<string>',
'FallbackUpgs[].PaymentGatewayCertName': '<string>'
}
],
Status: '<string>',
TransactionID: '<string>',
AuthorizationCode: '<string>',
GatewayDescription: '<string>',
AcquirerDescription: '<string>'
})
};
fetch('https://service.pcibooking.net/api/paymentGateway', 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://service.pcibooking.net/api/paymentGateway",
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([
'cardToken' => '<string>',
'OperationType' => '<string>',
'Amount' => 123,
'Currency' => '<string>',
'PaymentGateway' => [
'PaymentGateway.Name' => '<string>',
'PaymentGateway.Credentials' => [
]
],
'GatewayReference' => '<string>',
'GatewayToken' => '<string>',
'myRef' => '<string>',
'GenerateToken' => true,
'ThreeDS' => true,
'Parameters' => [
],
'PayerDetails' => [
'PayerDetails.FirstName' => '<string>',
'PayerDetails.LastName' => '<string>',
'PayerDetails.Email' => '<string>',
'PayerDetails.Phone' => '<string>',
'PayerDetails.Address1' => '<string>',
'PayerDetails.Address2' => '<string>',
'PayerDetails.Address3' => '<string>',
'PayerDetails.City' => '<string>',
'PayerDetails.StateProvince' => '<string>',
'PayerDetails.PostCode' => '<string>',
'PayerDetails.CountryCode' => '<string>',
'PayerDetails.ClientIPAddress' => '<string>'
],
'OrderDesc' => '<string>',
'IsDigital' => true,
'FallbackUpgs' => [
[
'FallbackUpgs[].PaymentGatewayAccountName' => '<string>',
'FallbackUpgs[].PaymentGatewayCertName' => '<string>'
]
],
'Status' => '<string>',
'TransactionID' => '<string>',
'AuthorizationCode' => '<string>',
'GatewayDescription' => '<string>',
'AcquirerDescription' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"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://service.pcibooking.net/api/paymentGateway"
payload := strings.NewReader("{\n \"cardToken\": \"<string>\",\n \"OperationType\": \"<string>\",\n \"Amount\": 123,\n \"Currency\": \"<string>\",\n \"PaymentGateway\": {\n \"PaymentGateway.Name\": \"<string>\",\n \"PaymentGateway.Credentials\": {}\n },\n \"GatewayReference\": \"<string>\",\n \"GatewayToken\": \"<string>\",\n \"myRef\": \"<string>\",\n \"GenerateToken\": true,\n \"ThreeDS\": true,\n \"Parameters\": {},\n \"PayerDetails\": {\n \"PayerDetails.FirstName\": \"<string>\",\n \"PayerDetails.LastName\": \"<string>\",\n \"PayerDetails.Email\": \"<string>\",\n \"PayerDetails.Phone\": \"<string>\",\n \"PayerDetails.Address1\": \"<string>\",\n \"PayerDetails.Address2\": \"<string>\",\n \"PayerDetails.Address3\": \"<string>\",\n \"PayerDetails.City\": \"<string>\",\n \"PayerDetails.StateProvince\": \"<string>\",\n \"PayerDetails.PostCode\": \"<string>\",\n \"PayerDetails.CountryCode\": \"<string>\",\n \"PayerDetails.ClientIPAddress\": \"<string>\"\n },\n \"OrderDesc\": \"<string>\",\n \"IsDigital\": true,\n \"FallbackUpgs\": [\n {\n \"FallbackUpgs[].PaymentGatewayAccountName\": \"<string>\",\n \"FallbackUpgs[].PaymentGatewayCertName\": \"<string>\"\n }\n ],\n \"Status\": \"<string>\",\n \"TransactionID\": \"<string>\",\n \"AuthorizationCode\": \"<string>\",\n \"GatewayDescription\": \"<string>\",\n \"AcquirerDescription\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
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://service.pcibooking.net/api/paymentGateway")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"cardToken\": \"<string>\",\n \"OperationType\": \"<string>\",\n \"Amount\": 123,\n \"Currency\": \"<string>\",\n \"PaymentGateway\": {\n \"PaymentGateway.Name\": \"<string>\",\n \"PaymentGateway.Credentials\": {}\n },\n \"GatewayReference\": \"<string>\",\n \"GatewayToken\": \"<string>\",\n \"myRef\": \"<string>\",\n \"GenerateToken\": true,\n \"ThreeDS\": true,\n \"Parameters\": {},\n \"PayerDetails\": {\n \"PayerDetails.FirstName\": \"<string>\",\n \"PayerDetails.LastName\": \"<string>\",\n \"PayerDetails.Email\": \"<string>\",\n \"PayerDetails.Phone\": \"<string>\",\n \"PayerDetails.Address1\": \"<string>\",\n \"PayerDetails.Address2\": \"<string>\",\n \"PayerDetails.Address3\": \"<string>\",\n \"PayerDetails.City\": \"<string>\",\n \"PayerDetails.StateProvince\": \"<string>\",\n \"PayerDetails.PostCode\": \"<string>\",\n \"PayerDetails.CountryCode\": \"<string>\",\n \"PayerDetails.ClientIPAddress\": \"<string>\"\n },\n \"OrderDesc\": \"<string>\",\n \"IsDigital\": true,\n \"FallbackUpgs\": [\n {\n \"FallbackUpgs[].PaymentGatewayAccountName\": \"<string>\",\n \"FallbackUpgs[].PaymentGatewayCertName\": \"<string>\"\n }\n ],\n \"Status\": \"<string>\",\n \"TransactionID\": \"<string>\",\n \"AuthorizationCode\": \"<string>\",\n \"GatewayDescription\": \"<string>\",\n \"AcquirerDescription\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://service.pcibooking.net/api/paymentGateway")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"cardToken\": \"<string>\",\n \"OperationType\": \"<string>\",\n \"Amount\": 123,\n \"Currency\": \"<string>\",\n \"PaymentGateway\": {\n \"PaymentGateway.Name\": \"<string>\",\n \"PaymentGateway.Credentials\": {}\n },\n \"GatewayReference\": \"<string>\",\n \"GatewayToken\": \"<string>\",\n \"myRef\": \"<string>\",\n \"GenerateToken\": true,\n \"ThreeDS\": true,\n \"Parameters\": {},\n \"PayerDetails\": {\n \"PayerDetails.FirstName\": \"<string>\",\n \"PayerDetails.LastName\": \"<string>\",\n \"PayerDetails.Email\": \"<string>\",\n \"PayerDetails.Phone\": \"<string>\",\n \"PayerDetails.Address1\": \"<string>\",\n \"PayerDetails.Address2\": \"<string>\",\n \"PayerDetails.Address3\": \"<string>\",\n \"PayerDetails.City\": \"<string>\",\n \"PayerDetails.StateProvince\": \"<string>\",\n \"PayerDetails.PostCode\": \"<string>\",\n \"PayerDetails.CountryCode\": \"<string>\",\n \"PayerDetails.ClientIPAddress\": \"<string>\"\n },\n \"OrderDesc\": \"<string>\",\n \"IsDigital\": true,\n \"FallbackUpgs\": [\n {\n \"FallbackUpgs[].PaymentGatewayAccountName\": \"<string>\",\n \"FallbackUpgs[].PaymentGatewayCertName\": \"<string>\"\n }\n ],\n \"Status\": \"<string>\",\n \"TransactionID\": \"<string>\",\n \"AuthorizationCode\": \"<string>\",\n \"GatewayDescription\": \"<string>\",\n \"AcquirerDescription\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"Status": "Success",
"TransactionID": "txn_abc123",
"AuthorizationCode": "AUTH456",
"GatewayDescription": "Approved",
"AcquirerDescription": "Transaction approved"
}
{
"Status": "Rejected",
"TransactionID": "txn_abc123",
"GatewayDescription": "Insufficient funds",
"AcquirerDescription": "51 - Insufficient Funds"
}
{
"code": -125,
"message": "Bad input data",
"moreInfo": "...",
"errorList": null
}
{
"code": -1003,
"message": "Not authorized to access this resource",
"moreInfo": "Bad or missing authorization data, expected APIKEY",
"errorList": null
}
Payment Gateway
Process Transaction
Process a payment gateway transaction using a stored card token.
POST
/
api
/
paymentGateway
Process Transaction
curl --request POST \
--url https://service.pcibooking.net/api/paymentGateway \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"cardToken": "<string>",
"OperationType": "<string>",
"Amount": 123,
"Currency": "<string>",
"PaymentGateway": {
"PaymentGateway.Name": "<string>",
"PaymentGateway.Credentials": {}
},
"GatewayReference": "<string>",
"GatewayToken": "<string>",
"myRef": "<string>",
"GenerateToken": true,
"ThreeDS": true,
"Parameters": {},
"PayerDetails": {
"PayerDetails.FirstName": "<string>",
"PayerDetails.LastName": "<string>",
"PayerDetails.Email": "<string>",
"PayerDetails.Phone": "<string>",
"PayerDetails.Address1": "<string>",
"PayerDetails.Address2": "<string>",
"PayerDetails.Address3": "<string>",
"PayerDetails.City": "<string>",
"PayerDetails.StateProvince": "<string>",
"PayerDetails.PostCode": "<string>",
"PayerDetails.CountryCode": "<string>",
"PayerDetails.ClientIPAddress": "<string>"
},
"OrderDesc": "<string>",
"IsDigital": true,
"FallbackUpgs": [
{
"FallbackUpgs[].PaymentGatewayAccountName": "<string>",
"FallbackUpgs[].PaymentGatewayCertName": "<string>"
}
],
"Status": "<string>",
"TransactionID": "<string>",
"AuthorizationCode": "<string>",
"GatewayDescription": "<string>",
"AcquirerDescription": "<string>"
}
'import requests
url = "https://service.pcibooking.net/api/paymentGateway"
payload = {
"cardToken": "<string>",
"OperationType": "<string>",
"Amount": 123,
"Currency": "<string>",
"PaymentGateway": {
"PaymentGateway.Name": "<string>",
"PaymentGateway.Credentials": {}
},
"GatewayReference": "<string>",
"GatewayToken": "<string>",
"myRef": "<string>",
"GenerateToken": True,
"ThreeDS": True,
"Parameters": {},
"PayerDetails": {
"PayerDetails.FirstName": "<string>",
"PayerDetails.LastName": "<string>",
"PayerDetails.Email": "<string>",
"PayerDetails.Phone": "<string>",
"PayerDetails.Address1": "<string>",
"PayerDetails.Address2": "<string>",
"PayerDetails.Address3": "<string>",
"PayerDetails.City": "<string>",
"PayerDetails.StateProvince": "<string>",
"PayerDetails.PostCode": "<string>",
"PayerDetails.CountryCode": "<string>",
"PayerDetails.ClientIPAddress": "<string>"
},
"OrderDesc": "<string>",
"IsDigital": True,
"FallbackUpgs": [
{
"FallbackUpgs[].PaymentGatewayAccountName": "<string>",
"FallbackUpgs[].PaymentGatewayCertName": "<string>"
}
],
"Status": "<string>",
"TransactionID": "<string>",
"AuthorizationCode": "<string>",
"GatewayDescription": "<string>",
"AcquirerDescription": "<string>"
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
cardToken: '<string>',
OperationType: '<string>',
Amount: 123,
Currency: '<string>',
PaymentGateway: {'PaymentGateway.Name': '<string>', 'PaymentGateway.Credentials': {}},
GatewayReference: '<string>',
GatewayToken: '<string>',
myRef: '<string>',
GenerateToken: true,
ThreeDS: true,
Parameters: {},
PayerDetails: {
'PayerDetails.FirstName': '<string>',
'PayerDetails.LastName': '<string>',
'PayerDetails.Email': '<string>',
'PayerDetails.Phone': '<string>',
'PayerDetails.Address1': '<string>',
'PayerDetails.Address2': '<string>',
'PayerDetails.Address3': '<string>',
'PayerDetails.City': '<string>',
'PayerDetails.StateProvince': '<string>',
'PayerDetails.PostCode': '<string>',
'PayerDetails.CountryCode': '<string>',
'PayerDetails.ClientIPAddress': '<string>'
},
OrderDesc: '<string>',
IsDigital: true,
FallbackUpgs: [
{
'FallbackUpgs[].PaymentGatewayAccountName': '<string>',
'FallbackUpgs[].PaymentGatewayCertName': '<string>'
}
],
Status: '<string>',
TransactionID: '<string>',
AuthorizationCode: '<string>',
GatewayDescription: '<string>',
AcquirerDescription: '<string>'
})
};
fetch('https://service.pcibooking.net/api/paymentGateway', 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://service.pcibooking.net/api/paymentGateway",
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([
'cardToken' => '<string>',
'OperationType' => '<string>',
'Amount' => 123,
'Currency' => '<string>',
'PaymentGateway' => [
'PaymentGateway.Name' => '<string>',
'PaymentGateway.Credentials' => [
]
],
'GatewayReference' => '<string>',
'GatewayToken' => '<string>',
'myRef' => '<string>',
'GenerateToken' => true,
'ThreeDS' => true,
'Parameters' => [
],
'PayerDetails' => [
'PayerDetails.FirstName' => '<string>',
'PayerDetails.LastName' => '<string>',
'PayerDetails.Email' => '<string>',
'PayerDetails.Phone' => '<string>',
'PayerDetails.Address1' => '<string>',
'PayerDetails.Address2' => '<string>',
'PayerDetails.Address3' => '<string>',
'PayerDetails.City' => '<string>',
'PayerDetails.StateProvince' => '<string>',
'PayerDetails.PostCode' => '<string>',
'PayerDetails.CountryCode' => '<string>',
'PayerDetails.ClientIPAddress' => '<string>'
],
'OrderDesc' => '<string>',
'IsDigital' => true,
'FallbackUpgs' => [
[
'FallbackUpgs[].PaymentGatewayAccountName' => '<string>',
'FallbackUpgs[].PaymentGatewayCertName' => '<string>'
]
],
'Status' => '<string>',
'TransactionID' => '<string>',
'AuthorizationCode' => '<string>',
'GatewayDescription' => '<string>',
'AcquirerDescription' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"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://service.pcibooking.net/api/paymentGateway"
payload := strings.NewReader("{\n \"cardToken\": \"<string>\",\n \"OperationType\": \"<string>\",\n \"Amount\": 123,\n \"Currency\": \"<string>\",\n \"PaymentGateway\": {\n \"PaymentGateway.Name\": \"<string>\",\n \"PaymentGateway.Credentials\": {}\n },\n \"GatewayReference\": \"<string>\",\n \"GatewayToken\": \"<string>\",\n \"myRef\": \"<string>\",\n \"GenerateToken\": true,\n \"ThreeDS\": true,\n \"Parameters\": {},\n \"PayerDetails\": {\n \"PayerDetails.FirstName\": \"<string>\",\n \"PayerDetails.LastName\": \"<string>\",\n \"PayerDetails.Email\": \"<string>\",\n \"PayerDetails.Phone\": \"<string>\",\n \"PayerDetails.Address1\": \"<string>\",\n \"PayerDetails.Address2\": \"<string>\",\n \"PayerDetails.Address3\": \"<string>\",\n \"PayerDetails.City\": \"<string>\",\n \"PayerDetails.StateProvince\": \"<string>\",\n \"PayerDetails.PostCode\": \"<string>\",\n \"PayerDetails.CountryCode\": \"<string>\",\n \"PayerDetails.ClientIPAddress\": \"<string>\"\n },\n \"OrderDesc\": \"<string>\",\n \"IsDigital\": true,\n \"FallbackUpgs\": [\n {\n \"FallbackUpgs[].PaymentGatewayAccountName\": \"<string>\",\n \"FallbackUpgs[].PaymentGatewayCertName\": \"<string>\"\n }\n ],\n \"Status\": \"<string>\",\n \"TransactionID\": \"<string>\",\n \"AuthorizationCode\": \"<string>\",\n \"GatewayDescription\": \"<string>\",\n \"AcquirerDescription\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
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://service.pcibooking.net/api/paymentGateway")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"cardToken\": \"<string>\",\n \"OperationType\": \"<string>\",\n \"Amount\": 123,\n \"Currency\": \"<string>\",\n \"PaymentGateway\": {\n \"PaymentGateway.Name\": \"<string>\",\n \"PaymentGateway.Credentials\": {}\n },\n \"GatewayReference\": \"<string>\",\n \"GatewayToken\": \"<string>\",\n \"myRef\": \"<string>\",\n \"GenerateToken\": true,\n \"ThreeDS\": true,\n \"Parameters\": {},\n \"PayerDetails\": {\n \"PayerDetails.FirstName\": \"<string>\",\n \"PayerDetails.LastName\": \"<string>\",\n \"PayerDetails.Email\": \"<string>\",\n \"PayerDetails.Phone\": \"<string>\",\n \"PayerDetails.Address1\": \"<string>\",\n \"PayerDetails.Address2\": \"<string>\",\n \"PayerDetails.Address3\": \"<string>\",\n \"PayerDetails.City\": \"<string>\",\n \"PayerDetails.StateProvince\": \"<string>\",\n \"PayerDetails.PostCode\": \"<string>\",\n \"PayerDetails.CountryCode\": \"<string>\",\n \"PayerDetails.ClientIPAddress\": \"<string>\"\n },\n \"OrderDesc\": \"<string>\",\n \"IsDigital\": true,\n \"FallbackUpgs\": [\n {\n \"FallbackUpgs[].PaymentGatewayAccountName\": \"<string>\",\n \"FallbackUpgs[].PaymentGatewayCertName\": \"<string>\"\n }\n ],\n \"Status\": \"<string>\",\n \"TransactionID\": \"<string>\",\n \"AuthorizationCode\": \"<string>\",\n \"GatewayDescription\": \"<string>\",\n \"AcquirerDescription\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://service.pcibooking.net/api/paymentGateway")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"cardToken\": \"<string>\",\n \"OperationType\": \"<string>\",\n \"Amount\": 123,\n \"Currency\": \"<string>\",\n \"PaymentGateway\": {\n \"PaymentGateway.Name\": \"<string>\",\n \"PaymentGateway.Credentials\": {}\n },\n \"GatewayReference\": \"<string>\",\n \"GatewayToken\": \"<string>\",\n \"myRef\": \"<string>\",\n \"GenerateToken\": true,\n \"ThreeDS\": true,\n \"Parameters\": {},\n \"PayerDetails\": {\n \"PayerDetails.FirstName\": \"<string>\",\n \"PayerDetails.LastName\": \"<string>\",\n \"PayerDetails.Email\": \"<string>\",\n \"PayerDetails.Phone\": \"<string>\",\n \"PayerDetails.Address1\": \"<string>\",\n \"PayerDetails.Address2\": \"<string>\",\n \"PayerDetails.Address3\": \"<string>\",\n \"PayerDetails.City\": \"<string>\",\n \"PayerDetails.StateProvince\": \"<string>\",\n \"PayerDetails.PostCode\": \"<string>\",\n \"PayerDetails.CountryCode\": \"<string>\",\n \"PayerDetails.ClientIPAddress\": \"<string>\"\n },\n \"OrderDesc\": \"<string>\",\n \"IsDigital\": true,\n \"FallbackUpgs\": [\n {\n \"FallbackUpgs[].PaymentGatewayAccountName\": \"<string>\",\n \"FallbackUpgs[].PaymentGatewayCertName\": \"<string>\"\n }\n ],\n \"Status\": \"<string>\",\n \"TransactionID\": \"<string>\",\n \"AuthorizationCode\": \"<string>\",\n \"GatewayDescription\": \"<string>\",\n \"AcquirerDescription\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"Status": "Success",
"TransactionID": "txn_abc123",
"AuthorizationCode": "AUTH456",
"GatewayDescription": "Approved",
"AcquirerDescription": "Transaction approved"
}
{
"Status": "Rejected",
"TransactionID": "txn_abc123",
"GatewayDescription": "Insufficient funds",
"AcquirerDescription": "51 - Insufficient Funds"
}
{
"code": -125,
"message": "Bad input data",
"moreInfo": "...",
"errorList": null
}
{
"code": -1003,
"message": "Not authorized to access this resource",
"moreInfo": "Bad or missing authorization data, expected APIKEY",
"errorList": null
}
Processing Charges Guide
Process payments using stored tokens
Some payment gateways have additional requirements. Review the gateway-specific guidance before sending your first transaction.
Error Responses
| Code | HTTP Status | Condition |
|---|---|---|
-1003 | 401 | API key is missing or invalid. |
-1003 | 401 | The token does not belong to the authenticated user. |
-125 | 400 | Request body could not be parsed as JSON. |
-125 | 400 | Missing cardToken when the operation requires card data and no GatewayToken is provided. |
-125 | 400 | Invalid or malformed cardToken URI. |
-125 | 400 | Missing Amount for operations other than Void and Tokenize. |
-125 | 400 | Missing GatewayReference when OperationType is Refund. |
-125 | 400 | The credentialsId was provided but the credentials were not found or could not be parsed. |
-125 | 400 | The PaymentGateway JSON section could not be parsed. |
-125 | 400 | The payment gateway does not support network tokens, but a network token brand was provided. |
-125 | 400 | Client certificate name was provided but the certificate could not be retrieved. |
-150 | 500 | Failed to retrieve the bank card data from the vault. |
Parameter Constraints
- OperationType: Must be one of
Charge,PreAuth,Capture,Void,Refund,Tokenize. - Amount: Required for all operations except
VoidandTokenize. - GatewayReference: Required for
Refundoperations. - cardToken: Required when the operation needs card data and no
GatewayTokenis provided. Must be a valid PCI Booking token URI containing a 32-character hex token. - credentialsId or PaymentGateway object: One must be provided. If using
credentialsId, the credentials must already be stored.
Parameters
Headers
Your API key prefixed with
APIKEY. Example: APIKEY your-api-key. See the Authentication guide.Query String
The ID of credentials stored in PCI Booking. When provided, omit the
PaymentGateway object from the request body.The name of a client certificate to use for gateway authentication, if required by the gateway.
Request Body
The PCI Booking card token URI, received during tokenization.
The operation to perform. One of:
Charge, PreAuth, Capture, Void, Refund, Tokenize.The transaction amount. Required for all operations except
Void and Tokenize.ISO 4217 currency code (e.g.
USD, EUR). Required for all operations except Void and Tokenize.The payment gateway name and credentials. Not required if
credentialsId is provided.Show Properties
Show Properties
The payment gateway name (e.g.
Stripe, Adyen, Worldpay). See supported gateways.Gateway-specific credential key-value pairs. See gateway guidance for required credentials per gateway.
The transaction ID of a prior operation. Required for
Capture (reference the PreAuth), Refund (reference the Charge or Capture), and Void (reference the operation to void).A token previously generated by the payment gateway. When provided, PCI Booking uses this gateway token instead of the card token for the transaction.
Your own reference for this transaction. Some gateways have specific format requirements. See gateway guidance.
For
Charge and PreAuth operations, additionally generates a token from the payment gateway. The gateway token is returned in the response.Whether to use 3D Secure authentication for this transaction.
Gateway-specific parameters as key-value pairs. These are passed through to the payment gateway. See gateway guidance for supported parameters per gateway.
Payer and Order Details
Details about the customer being charged. Some gateways require specific payer fields.
Show Properties
Show Properties
Customer’s first name.
Customer’s last name.
Customer’s email address.
Customer’s phone number.
Billing address line 1.
Billing address line 2.
Billing address line 3.
Billing city.
Billing state or province.
Billing postal code.
ISO 3166-1 alpha-2 country code (e.g.
US, GB).Customer’s IP address. Required by some gateways for fraud screening.
Order description. Used by specific payment gateways. See gateway guidance for details.
Indicates digital goods. Used by specific gateways (e.g. WorldPay).
Fallback Routing
A list of fallback payment gateway accounts. If the primary gateway fails, PCI Booking tries each fallback in order.
Request Example
ACharge operation for $150.00 USD, using inline gateway credentials:
- curl
- Node.js
- Python
curl -X POST "https://service.pcibooking.net/api/paymentGateway" \
-H "Authorization: APIKEY your-api-key" \
-H "Content-Type: application/json" \
-d '{
"cardToken": "https://service.pcibooking.net/api/payments/paycard/tok_abc123",
"OperationType": "Charge",
"Amount": 150.00,
"Currency": "USD",
"PaymentGateway": {
"Name": "Stripe",
"Credentials": {
"SecretKey": "sk_test_abc123"
}
},
"myRef": "order-98765",
"PayerDetails": {
"FirstName": "Jane",
"LastName": "Smith",
"Email": "jane.smith@example.com"
}
}'
const response = await fetch("https://service.pcibooking.net/api/paymentGateway", {
method: "POST",
headers: {
"Authorization": "APIKEY your-api-key",
"Content-Type": "application/json"
},
body: JSON.stringify({
cardToken: "https://service.pcibooking.net/api/payments/paycard/tok_abc123",
OperationType: "Charge",
Amount: 150.00,
Currency: "USD",
PaymentGateway: {
Name: "Stripe",
Credentials: {
SecretKey: "sk_test_abc123"
}
},
myRef: "order-98765",
PayerDetails: {
FirstName: "Jane",
LastName: "Smith",
Email: "jane.smith@example.com"
}
})
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
"https://service.pcibooking.net/api/paymentGateway",
headers={
"Authorization": "APIKEY your-api-key",
"Content-Type": "application/json"
},
json={
"cardToken": "https://service.pcibooking.net/api/payments/paycard/tok_abc123",
"OperationType": "Charge",
"Amount": 150.00,
"Currency": "USD",
"PaymentGateway": {
"Name": "Stripe",
"Credentials": {
"SecretKey": "sk_test_abc123"
}
},
"myRef": "order-98765",
"PayerDetails": {
"FirstName": "Jane",
"LastName": "Smith",
"Email": "jane.smith@example.com"
}
}
)
print(response.json())
credentialsId query parameter and omit the PaymentGateway object:
- curl
- Node.js
- Python
curl -X POST "https://service.pcibooking.net/api/paymentGateway?credentialsId=my-stripe-prod" \
-H "Authorization: APIKEY your-api-key" \
-H "Content-Type: application/json" \
-d '{
"cardToken": "https://service.pcibooking.net/api/payments/paycard/tok_abc123",
"OperationType": "Charge",
"Amount": 150.00,
"Currency": "USD",
"myRef": "order-98765"
}'
const response = await fetch(
"https://service.pcibooking.net/api/paymentGateway?credentialsId=my-stripe-prod",
{
method: "POST",
headers: {
"Authorization": "APIKEY your-api-key",
"Content-Type": "application/json"
},
body: JSON.stringify({
cardToken: "https://service.pcibooking.net/api/payments/paycard/tok_abc123",
OperationType: "Charge",
Amount: 150.00,
Currency: "USD",
myRef: "order-98765"
})
}
);
const data = await response.json();
console.log(data);
import requests
response = requests.post(
"https://service.pcibooking.net/api/paymentGateway",
params={"credentialsId": "my-stripe-prod"},
headers={
"Authorization": "APIKEY your-api-key",
"Content-Type": "application/json"
},
json={
"cardToken": "https://service.pcibooking.net/api/payments/paycard/tok_abc123",
"OperationType": "Charge",
"Amount": 150.00,
"Currency": "USD",
"myRef": "order-98765"
}
)
print(response.json())
Response
The response contains the gateway’s transaction result.Response Fields
The outcome of the operation. See the status table below.
PCI Booking’s internal transaction identifier.
The authorization code returned by the payment gateway. Only present on successful authorizations and charges.
The gateway’s own transaction reference. Use this value for subsequent Capture, Void, or Refund operations on the same transaction.
Human-readable message from the payment gateway describing the result.
Raw response description from the acquirer/processor.
Operation Statuses
| Status | Description |
|---|---|
Accepted | The payment gateway accepted the request. |
Success | The operation completed successfully. |
Rejected | The gateway rejected the operation. See GatewayDescription and AcquirerDescription for details. |
TemporaryFailure | The operation failed but can be retried. |
FatalFailure | The operation failed permanently. |
Consider adding business logic based on the CVV retention policy status after a transaction.
{
"Status": "Success",
"TransactionID": "txn_abc123",
"AuthorizationCode": "AUTH456",
"GatewayDescription": "Approved",
"AcquirerDescription": "Transaction approved"
}
{
"Status": "Rejected",
"TransactionID": "txn_abc123",
"GatewayDescription": "Insufficient funds",
"AcquirerDescription": "51 - Insufficient Funds"
}
{
"code": -125,
"message": "Bad input data",
"moreInfo": "...",
"errorList": null
}
{
"code": -1003,
"message": "Not authorized to access this resource",
"moreInfo": "Bad or missing authorization data, expected APIKEY",
"errorList": null
}
⌘I

