CardGate migration information

Abstract

The CURO RESTful API is meant to be fully backward compatible with the CardGate version.
There are however a few technical differences to be noted which are described in this document.

Entry points

CardGate version CURO Version
Test API: https://api-test.cardgate.com/rest/v1/ https://secure-staging.curopayments.net/rest/v1/
Live API: https://api.cardgate.com/rest/v1/ https://secure.curopayments.net/rest/v1/

CURO uses a completely separate platform for testing your implementation.
The API and user credentials for this platform are created when you make a request for the API information.
By default the credentials are the same for staging and production.

Originating IP address

NB This options is obsolete!
Callbacks send from the backoffice (my.cardgate.com) already originate from the CURO range.
NB the preferred way is to use the Hash-key in the callback instead of checking a fixed IP(-range)!

Error Codes

MAJOR CURO has a more extensive list of error codes, so the error responses will differ in most cases. Please see the list in our API Doc.

Transaction Id


MAJOR CURO transaction ID's are alpha-numeric where CardGate's are numeric only.

CardGate version CURO Version Remarks
12345678 n 8 T15B12345678 s 12 CURO Transaction ID's are setup as:
TYYM12345678
  • T from "Transaction"
  • YY year number
  • M month as hexadecimal (1-9, A=10, B=11, C=12)
  • 12345678 8 digit unique number
The total length is always 12 characters.

XML formatting

minor Formatting of XML responses in CURO is not indented:

CardGate version CURO Version
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <headers>
        <response_timestamp>2015-11-23T16:05:41.426350</response_timestamp>
        <uuid>17934d6d217e411bb5ef8b1085ec7174</uuid>
    </headers>
    <billing_options type="list">
        <billing_option>
            <name>Bank transfer</name>
            <id>banktransfer</id>
        </billing_option>
        <billing_option>
            <name>Klarna</name>
            <id>klarna</id>
        </billing_option>
        (etc.)
<?xml version="1.0" encoding="utf-8"?>
<response>
<headers>
<response_timestamp>2015-11-23T15:05:01.5205580</response_timestamp>
<uuid>eaca57d2-6b97-47c8-b6f9-66dcdd06020e</uuid>
</headers>
<billing_options type="list">
<billing_option>
<id>banktransfer</id>
<name>Bank transfer</name>
</billing_option>
<billing_option>
<id>clickandbuy</id>
<name>ClickandBuy</name>
</billing_option>
(etc.)

Callback/Landing URL's

minor CURO still accepts the CardGate naming for Control/Callback and Landing page urls, but has some extra URL's and new (more logical) naming of the arguments which you can use.

CardGate version CURO Version Remarks
control_url url_callback
return_url url_success CURO will also use this value for url_failure, url_pending and url_cancel if no specific value has been given
return_url_failed url_failure CURO will also use this value for url_pending and url_cancel if no specific value has been given
n.a. url_pending Landing page for transactions that are still pending
n.a. url_cancel Landing page for cancelled transactions

Payment Options

minor Naming of the payment options you can use on input is fully backward compatible, but there are some differences when you retrieve a list of payment options using /v1/rest/billingoptions.

CardGate version CURO Version Remarks
hostedcreditcard creditcard CURO uses a single entry point for both hosted/non-hosted creditcard. The /v1/rest/hostedcreditcard entry point is still supported
directebanking sofortbanking The CardGate version is still accepted on the API entry points /v1/rest/directebanking/payment
- directdebit New SEPA Direct Debit module
- paysafecard New Pay Safe Card module
- clickandbuy New Click and Buy module

iDEAL Issuers

minor While the old numeric values of CardGate are still supported on input, you are advised to use the new V3 (BIC/SWIFT) format when you request a list of issuers.

CardGate version /rest/v1/ideal/issuers/ CURO Version /rest/v1/ideal/issuers3/
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <headers>
        <response_timestamp>2015-11-23T16:48:35.448000</response_timestamp>
        <uuid>66ca0eea4a94403183fd68ca467594a1</uuid>
    </headers>
    <issuers type="list">
        <issuer>
            <list>Short</list>
            <name>Rabobank</name>
            <id type="integer">21</id>
        </issuer>
        <issuer>
            <list>Short</list>
            <name>ABN Amro</name>
            <id type="integer">31</id>
        </issuer>
        <issuer>
            <list>Short</list>
            <name>ING</name>
            <id type="integer">721</id>
        </issuer>
        <issuer>
            <list>Short</list>
            <name>SNS Bank</name>
            <id type="integer">751</id>
        </issuer>
        <issuer>
            <list>Long</list>
            <name>Van Lanschot Bankiers</name>
            <id type="integer">161</id>
        </issuer>
        <issuer>
            <list>Long</list>
            <name>Triodos Bank</name>
            <id type="integer">511</id>
        </issuer>
        <issuer>
            <list>Long</list>
            <name>ASN Bank</name>
            <id type="integer">761</id>
        </issuer>
        <issuer>
            <list>Long</list>
            <name>RegioBank</name>
            <id type="integer">771</id>
        </issuer>
        <issuer>
            <list>Long</list>
            <name>Knab</name>
            <id type="integer">801</id>
        </issuer>
    </issuers>
</response>
<?xml version="1.0" encoding="utf-8"?>
<response>
<headers>
<response_timestamp>2015-11-23T15:55:14.8511970</response_timestamp>
<uuid>4bba9b0a-4926-41bc-a1ce-e6dc88e560b5</uuid>
</headers>
<issuers>
<issuer>
<id>ABNANL2A</id>
<name>ABN Amro Bank</name>
</issuer>
<issuer>
<id>ASNBNL21</id>
<name>ASN Bank</name>
</issuer>
<issuer>
<id>INGBNL2A</id>
<name>ING</name>
</issuer>
<issuer>
<id>KNABNL2H</id>
<name>Knab</name>
</issuer>
<issuer>
<id>RABONL2U</id>
<name>Rabobank</name>
</issuer>
<issuer>
<id>RBRBNL21</id>
<name>RegioBank</name>
</issuer>
<issuer>
<id>SNSBNL2A</id>
<name>SNS Bank</name>
</issuer>
<issuer>
<id>TRIONL2U</id>
<name>Triodos Bank</name>
</issuer>
<issuer>
<id>FVLBNL22</id>
<name>Van Lanschot Bankiers</name>
</issuer>
</issuers>
</response>

Version Info

Date       Name Ver.  Notes
20-11-2015  LH  0.1   Initial version
26-11-2015  LH  0.2   Fixed some typo's. Add response format.

If you encounter any noteworthy differences not mentioned here, please let us know on support@curopayments.com.