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.
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.
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)!
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.
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.
|
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.) |
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
|
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
|
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> |
If you encounter any noteworthy differences not mentioned here, please let us know on support@curopayments.com.