How to obtain transaction status after checkoutID expires


The checkoutID that you create in Step 1 of Copy and Pay is basically a session ID on our system. The CheckoutId remains valid till the time the final response to a transaction is delivered once to your system. Then the ID automatically expires.

Our system keeps a track of the final response being delivered to your system. Once the final transaction response has been delivered then the CheckoutID cannot be used again.

Thereafter if you need to pull the transaction response from our system you would need to make the following call as shown below. This call requires you to have the "id" value from the transaction response you received above using Get Payment Status.

The final response delivered to your system looks like this:

payload: {"id":"8a82944a5028ad6xxxxxxxx1ed285180","registrationId":"8a829449xxxxxxxx01503771eaf4533b","paymentType":"DB","paymentBrand":"VISA","amount":"2000.00","currency":"ZAR","descriptor":"9347.7571.8562 PP01 Nedbank","result":{"code":"000.100.110","description":"Request successfully processed in 'Merchant in Integrator Test Mode'"},"card":{"last4Digits":"*","holder":"Johnny Bravo","expiryMonth":"12","expiryYear":""},"risk":{"score":""},"timestamp":"2015-10-05 10:00:24+**","ndc":"4B7BFA7xxxxxx4627B49ECA42.sbg-vm-tx02"}


The sample code to pull a transaction response from the system using the "id" value looks like this:


function getPaymentStatus($txid) {
$url = "" . $txid .
"?authentication.userId=ff808081392eb9b201392f0b6d0200a3" .
"&authentication.password=wCJFfx6F" .
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
if(curl_errno($ch)) {
return curl_error($ch);
return json_decode($response, true);
$status = getPaymentStatus("8a829449xxxxxxxxxx4f08f22a99xxxx");



Should you have any questions, feel free to email us at

Have more questions? Submit a request


Powered by Zendesk