Introduction
This documentation is a concise reference manual containing instructions about how to effectively use and integrate with 2000charge API.
Supported Payment Options
Payment Option | Supported Country (ISO Code) | Processing Currency |
---|---|---|
Banco do Brasil | BR | $ USD |
Bancontact (MisterCash) | BE | € Euro |
BLIK | PL | zł Polish Zloty |
Boleto | BR | $ USD |
Bradesco | BR | $ USD |
DirectPayEU | AR, AT, BE, HR, CY, CZ, DK, EE, FI, FR, DE, GI, GR, HU, IS, IE, IT, LV, LT, LU, MK, MT, NL, NO, PL, PT, RO, RS, SK, SI, ES, SE, CH, TN, TR, GB | € Euro |
DPMax | AT, BE, DK, EE, FI, FR, DE, IS, IE, IT, LV, LT, NL, NO, PL, PT, ES, SE | € Euro |
Efecty | CO | € Euro |
EPS | AT | € Euro |
GiroPay | DE | € Euro |
IDEAL | NL | € Euro |
Itau | BR | € Euro |
Multicaja | CL | € Euro |
MyBank | IT, ES, GR | € Euro |
Oxxo | MX | € Euro |
PagoEfectivo | PE | € Euro |
Pago Facil | AR | € Euro |
paysafecard | AU, AT, BE, BG, CA, HR, HU, CY, CZ, DK, FI, FR, DE, GB*, GI, GR, IE, IT, LI, LV, LT, LU, MT, MX, NL, NO, PE, PL, PT, RO, SK, SI, ES, SE, CH, TR, UY | € Euro |
PIX | BR | R$ Brazil Real |
POLI | AU, NZ | AUD $, NZD $ |
Przelewy24 | PL | zł Polish Zloty |
QIWI | RU | ₽ RUB |
Rapipago | AR | € Euro |
SafetyPay | AT, CO, CR, DE, ES, MX, NI, NL, PA, PE | € Euro |
Santander | BR | € Euro |
SEPA | AT, BE, BG, HR, CY, CZ, DK, EE, FI, FR, DE, GI, GR, HU, IS, IE, IT, LV, LI, LT, LU, MC, MT, NL, NO, PL, PT, RO, SK, SI, SM, ES, SE, CH, GB* | € Euro |
Servipag | CL | € Euro |
SOFORT Überweisung | AT, BE, DE, NL, ES | € Euro |
TrustPay | CZ, SK | € Euro |
Via Baloto | CO | € Euro |
Webpay | CL | € Euro |
- For United Kingdom use ISO code which is GB.
Supported Currencies
Transactions can be submitted in the processing currency listed above for each payment option, or any of the currencies listed below. If not submitted in the processing currency, the submitted amount will be converted at the time of the transaction.
Currency | Code | Symbol |
---|---|---|
Australia Dollar | AUD | $ |
Brazil | BRL | R$ |
Chinese Yuan Renminbi | CNY | ¥ |
Croatia Kuna | HRK | kn |
Euro | EUR | € |
Gibraltar Pound | GIP | £ |
Hungary Forint | HUF | Ft |
Iceland Krona | ISK | kr |
Lithuanian Litas | LTL | Lt |
New Zaeland Dollar | NZD | $ |
Norway Krone | NOK | kr |
Poland Zloty | PLN | zł |
Romania New Leu | RON | lei |
Sweden Krona | SEK | kr |
United Kingdom Pound | GBP | £ |
US Dollar | USD | $ |
Authentication
Authentication to the API occurs via HTTP Basic Auth. Provide your API key as the basic auth username. You do not need to provide a password.
The API defines Public and Secret keys.
Test and live keys are supported for an easy switch from test to live mode. The test key works in the exact same way as the live key, but doesn’t do live transactions.
Keys are defined per website. You can manage your keys in your Merchant Tool.
Error Types | Description |
---|---|
invalid_parameter_error | Invalid request errors arise when your request has invalid parameters. |
api_error | API errors cover any other type of problem (e.g. a temporary problem with servers) and should turn up only very infrequently. |
payment_error | All errors related to invalid payment data, velocity control, fraud prevention, … |
Pagination
curl https://api.2000charge.com/api/transactions/?limit=<LIMIT>&offset=<OFFSET> \
-u <WEBSITE_SECRET_KEY>:
The above command returns JSON structured like this:
{
"transactions": [
{
"id": "trn_345812d991",
"mode": "Test",
"status": "Created",
"customer": {
"id": "cus_a8e955b73cbd45348",
"mode": "Test",
"firstName": "Jonathan",
"lastName": "Scott",
"email": "ligula.consectetuer.rhoncus@Fusce.com",
"country": "DE",
"created": "2016-02-25T08:51:37.823Z"
},
"payment": {
"id": "pay_b1f063633853412eb",
"mode": "Test",
"customerId": "cus_a8e955b73cbd45348",
"paymentOption": "sepa",
"holder": "Jonathan Scott",
"created": "2016-02-25T08:51:37.743Z"
},
"amount": 2499,
"currency": "EUR",
"merchantPassThruData": "7716902",
"created": "2016-02-25T08:51:37.823Z"
},
{
"id": "trn_ed77df2dcf",
"mode": "Test",
"status": "Created",
"customer": {
"id": "cus_4b08ee7682cb4afd8",
"mode": "Test",
"firstName": "ralf",
"lastName": "Wright",
"email": "eu@Namnullamagna.com",
"country": "DE",
"created": "2016-02-25T08:51:37.103Z"
},
"payment": {
"id": "pay_37636b775d474cd4a",
"mode": "Test",
"customerId": "cus_4b08ee7682cb4afd8",
"paymentOption": "sepa",
"holder": "ralf Wright",
"created": "2016-02-25T08:51:37.073Z"
},
"amount": 2900,
"currency": "EUR",
"merchantPassThruData": "7718021",
"created": "2016-02-25T08:51:37.103Z"
}
],
"pagination": {
"offset": 10,
"limit": 2,
"count": 2504
}
}
Some responses can have large collections of data. We support pagination using offset and limit parameters.
By default, when you search for something, we will return all the matching records. However, you can use a parameter called limit
to tell the API how many records you want to return all at once.
GET https://api.2000charge.com/api/transactions?limit=5
To get all the records you need to use another parameter along with limit called offset
. This parameter tells the API where to start returning records from the entire set of results. If you don’t include this parameter, the default is to start at record number 0 and then return the number of records specified with the ‘limit’ parameter.
GET https://api.2000charge.com/api/transactions?limit=5&offset=10
In API response, you will receive information about the count
, offset
and count
(for total record count).
Example:
"pagination": {
"offset": 10,
"limit": 5,
"count": 2504
}
Webhooks
Sample data in JSON
{
"id": "evt_5139d34fa67e4651ae2b5f",
"type": "transaction.approved",
"resourceName": "Transaction",
"resource": {
"id": "trn_23fc4cf",
"mode": "Test",
"status": "Pending",
"customer": {
"id": "cus_711e8c0f4f7b4893a",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"created": "2015-04-07T12:09:58.423Z"
},
"payment": {
"id": "pay_20443651fcdf40228",
"mode": "Test",
"paymentOption": "sepa",
"customerId": "cus_711e8c0f4f7b4893a",
"iban": "DEST1000200030004000500",
"bic": "INGDDEFFXXX",
"holder": "John Doe",
"created": "2015-04-07T12:09:58.42Z"
},
"amount": 578,
"currency": "EUR",
"created": "2015-04-07T12:09:58.527Z"
},
"created": "2015-04-07T13:54:05.8961484Z"
}
With webhooks, we give you the possibility to react automatically to certain events which happen within our system. A webhook is basically a URL where we send an HTTP POST request to, every time one of the events attached to that webhook is triggered.
Event Code | Description |
---|---|
customer.created | The customer object has been created in the system. |
transaction.pending | The transaction has been created in the system and is awaiting an action. |
transaction.aborted | A status indicating that a transaction has been canceled by the consumer during confirmation on his e-banking account page. |
transaction.approved | A transaction that has been accepted by an acquirer. |
transaction.funded | A transaction that has been accepted by an acquirer and has passed the System defined settlement guidelines |
transaction.declined | A status indicating that a transaction has been rejected prior to receiving an approved status. |
transaction.chargeback | A status received from the acquirer indicating a reversal of funds that was initiated by the consumer for a transaction. |
transaction.isf | A status indicating that there were insufficient funds in the consumer’s account to settle a transaction. |
transaction.invalid | A generic status received from the acquirer indicating that funds were unable to be transferred |
transfer.pending | A transfer has been created in the system and is awaiting an action. |
transfer.approved | A transfer has been approved by the bank. |
transfer.voided | A transfer has been nullified by the system prior to being approved. |
transfer.declined | A transfer has been declined prior to receiving an approved status. |
void.succeeded | A status indicating that the transaction was nullified by the system prior to being approved. |
void.declined | Void of the transaction is declined. |
refund.pending | Refund of the transaction is processed by the System, but not yet refunded. |
refund.succeeded | A status indicating that funds were reversed for a transaction, and the amount or a portion of this amount was returned back to the consumer. |
refund.declined | Refund of the transaction is declined. |
preauth.approved | Preauthorization has been approved, the amount can be captured. |
preauth.voided | Preauthorization has been voided, the amount cannot be captured. |
preauth.declined | Preauthorization has been declined, the amount cannot be captured. |
plan.created | A status indicating that the plan has been created. |
plan.deactivated | A status indicating that the plan has been deactivated. |
plan.updated | A status indicating that the plan has been updated. |
subscription.created | A status indicating that the subscription has been created. |
subscription.canceled | A status indicating that the subscription has been canceled. |
subscription.expired | A status indicating that the subscription has been expired. |
To confirm transaction status, you can use Retrieve a transaction API call.
Test mode
The live and test environments each have a different API key pair. Both Live and Test APIs use the same API endpoint and both environments work in the same way, with some exceptions: in Test mode statuses of the transactions are automatically changed to Funded after a short delay, and blacklist/velocity controls are ignored.
For payment options with redirections, in Test mode customer will be redirected to simulator page that can be used to simulate real bank hosted pages.
Which IBAN and BIC numbers to use when testing SEPA?
For SEPA we provide test IBAN/BIC numbers, so you can simulate different return responses. Also, these test IBAN codes skip IBAN validation. They are valid for Test mode only!
Test IBAN codes
IBAN code | Transaction return response |
---|---|
DEST1000200030004000500 | transaction is valid |
DEST1001XXX00XINVALID | transaction is invalid |
DEST2002XXX00XISF | Insuficient Funds - ISF |
DEST3003XXX00XCHGBACK | chargeback |
Transaction
Attributes ↓
Parameter | Type | Description | Requirement |
---|---|---|---|
customer | Customer object | Customer object | Optional, either Customer or customerId is required |
customerId | string | Customer identifier | Optional, either Customer or customerId is required |
payment | Payment object | Payment object | Optional, either Payment or token is required |
token | string | Payment token | Optional, either Payment or token is required |
amount | integer | The used amount (calculated in cents) | Required |
currency | string | ISO 4217 formatted currency code | Required |
merchantPassThruData | string | Merchant’s identification | Optional *Originating URL is required to be passed if you are an IPSP or service provider |
merchantTransactionId | string | The unique identifier for a payment provided by the merchant | Optional |
description | string | Description | Optional |
ipAddress | string | Customer’s IP address | Required |
returnUrl | string | URL that customer is redirected to after successful payment | Required for payment options with redirection |
cancelUrl | string | URL that customer is redirected to on aborted payment | Required for payment options with redirection |
Descriptors
curl https://api.2000charge.com/api/payments -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"payment": {
"holder": "John Doe",
"paymentOption": "sepa",
"iban": "DEST1000200030004000500"
},
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "DE"
},
"amount": 220,
"currency": "EUR",
"ipaddress": "123.01.1",
"customDescriptor": "Test descriptor which will be sent by Merchant",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
Once transaction has been made, a consumer’s bank account will show the descriptors. Some of our descriptors are turned off by default and you might have to contact our support, so they can assist you with adding more descriptors.
We offer the following descriptors:
Parameter | Type | Description | Default |
---|---|---|---|
TransactionId | string | Transaction ID | Yes |
WebsiteURL | string | Merchant’s Website Url | No |
Company Name | string | Merchant’s Company Name | No |
ProductDescription | string | Merchant’s Product Description | No |
TransactionCreated | date | Date of the transaction | No |
TransactionAmount | integer | Original Amount of the transaction | No |
TransactionCurrency | string | Currency of the transaction | No |
We also offer the possibility of sending custom descriptors in the transaction request.
Parameter | Type | Description | Default |
---|---|---|---|
customDescriptor | string | Custom Descriptor sent by Merchant | No |
Creating a Transaction ↓
Every single payment request in the API will generate a Transaction. Each Transaction is uniquely identified by Transaction ID. To obtain details about a Transaction you need to make a separate GET request.
Using Payment Object
When creating a transaction, you can either send full payment object body each time transaction is made, or you can create payment object once and then reuse it when creating new transactions. Unlike token (can be used only once), payment object can be reused multiple times.
Creating Payment Object
curl https://api.2000charge.com/api/payments -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"holder": "John Doe",
"paymentOption":"sepa",
"iban":"AT85XXXXX0817"
}'
The above command returns JSON structured like this:
{
"id": "pay_4c03abe649914b1a9",
"mode": "Test",
"paymentOption": "sepa",
"holder": "Jothn Smitht",
"iban": "AT85XXXXX0817",
"bic": "SPAEAT2SXXX",
"created": "2016-09-09T03:40:32.7497062Z"
}
To create paymentObject, using Secret API key you must submit required payment object parameters. Required paremeters for payment object vary depending on payment option used.
In response, paymentObject id
will be sent.
Creating transaction using Payment Object
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"currency": "EUR",
"amount": 500,
"ipaddress": "123.01.1",
"paymentid":"pay_56ba8feffe2142dfb",
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "DE"
}
}
The above command returns JSON structured like this:
{
"id": "trn_d12209838b",
"mode": "Test",
"status": "Pending",
"customer": {
"id": "cus_de0636cef44540a4a",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "DE",
"created": "2016-03-17T05:17:58.0438821Z"
},
"payment": {
"id": "pay_917a86ff369e4f8a9",
"mode": "Test",
"paymentOption": "sepa",
"holder": "John Doe",
"iban": "DE85XXXXX0817",
"bic": "SPAEAT2SXXX",
"created": "2016-03-17T05:17:58.0108663Z"
},
"amount": 500,
"currency": "EUR",
"created": "2016-03-17T05:17:58.0388728Z"
}
Once payment object has been created, you can create a transaction using generated "paymentid"
. So, you don’t need to send, for example, in case of SEPA, holder
, paymentOption
or iban
parameters.
Banco do Brasil
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "BR",
"birthDate": "02/15/1968"
},
"payment": {
"paymentOption": "bancodobrasil",
"holder": "John Doe",
"documentId": "1111111111111111"
},
"amount": 100,
"currency": "USD",
"ipaddress": "123.01.1",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "BR",
"birthDate": "02/15/1968"
},
"payment": {
"paymentOption": "bancodobrasil",
"holder": "John Doe",
"documentId": "1111111111111111"
},
"amount": 100,
"currency": "USD",
"ipaddress": "123.01.1",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}
The above command returns JSON structured like this:
{
"id": "trn_1a5f5e0c97",
"mode": "Test",
"status": "Pending",
"customer": {
"id": "cus_bf682a6c051145a09",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "BR",
"birthDate": "02/15/1968",
"created": "2016-03-25T13:51:04.8497785Z"
},
"payment": {
"id": "pay_ffd25121f84e4d249",
"mode": "Test",
"paymentOption": "bancodobrasil",
"holder": "John Doe",
"created": "2016-03-25T13:51:04.7717784Z",
"documentId": "1111111111111111"
},
"amount": 100,
"currency": "USD",
"merchantPassThruData": "Order #1234958",
"created": "2016-03-25T13:51:04.8497785Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"ipaddress": "123.01.1",
"redirectUrl": "http://mybankingsite.com/hRedirection.aspx?transaction_id=trn_1a5f5e0c97"
}
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthDate | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | bancodobrasil |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
documentId | string | Customer’s Document Id | Optional |
Bancontact (MisterCash)
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "BE"
},
"payment": {
"paymentOption": "bancontact",
"holder": "John Doe",
},
"amount": 100,
"currency": "EUR",
"ipaddress": "123.01.1",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}
$customer = new \2000charge\Model\Customer();
$customer->setEmail("john@doe.com");
$customer->setcountry("BE");
$customer->setFirstName("John");
$customer->setLastName("Doe");
$payment = new \2000charge\Model\Payment();
$payment->setpaymentOption("boncontact");
$payment->setHolder("John Doe");
$redirect = new \2000charge\Model\RedirectUrls();
$redirect->setReturnUrl("http://2000charge.com/message/success.html");
$redirect->setCancelUrl("http://2000charge.com/message/failure.html");
$transaction = new \2000charge\Model\Transaction();
$transaction->setCustomer($customer);
$transaction->setPayment($payment);
$transaction->setRedirectUrls($redirect);
$transaction->setAmount(100);
$transaction->setCurrency("EUR");
$transaction->setIpAddress($ipAddress);
$res = Transaction :: post($transaction);
2000charge.ApiUrl = _apiUrl;
var customer = new Customer();
customer.Email = "john@doe.com";
customer.FirstName = "John";
customer.LastName = "Doe";
customer.country = "BE";
var payment = new Payment();
payment.paymentOption = "bancontact";
payment.Holder = customer.FirstName + " " + customer.LastName;
var redirect = new RedirectUrls();
redirect.ReturnUrl = "http://2000charge.com/message/success.html"
redirect.CancelUrl = "http://2000charge.com/message/failure.html"
var transaction = new Transaction();
transaction.Customer = customer;
transaction.Payment = payment;
transaction.RedirectUrls = redirect;
transaction.Amount = 250;
transaction.Currency = "EUR";
transaction.Description = "Test transaction";
customer = ApRubySdk::Customer.new(
'firstName' => 'John',
'lastName' => 'Doe',
'email' => 'john@doe.com',
'country' => 'BE'
)
payment = ApRubySdk::Payment.new(
'paymentOption' => 'bancontact',
'holder' => 'John Doe'
)
redirectUrls = ApRubySdk::RedirectUrls.new(
'returnUrl' => 'http://2000charge.com/message/success.html',
'cancelUrl' => 'http://2000charge.com/message/failure.html'
)
@transaction = ApRubySdk::Transaction.create(
'customer' => customer,
'payment' => payment,
'amount' => 500,
'currency' => 'EUR',
'redirectUrls' => redirectUrls
)
customer = Customer(
id='cus_bd838e3611d34d598',
firstName='John',
lastName='Doe',
email='john@doe.com',
country='BE'
)
payment = Payment(
paymentOption='bancontact',
holder='John Doe'
)
redirectUrls = RedirectUrls(
returnUrl='http://2000charge.com/message/success.html',
cancelUrl='http://2000charge.com/message/failure.html'
)
return Transaction.create({
'customer': customer,
'payment': payment,
'amount': 500,
'currency': 'EUR',
'iPAddress': '123.01.1',
'redirectUrls': redirectUrls
})
The above command returns JSON structured like this:
{
"id": "trn_1a5f5e0c97",
"mode": "Test",
"status": "Pending",
"customer": {
"id": "cus_bf682a6c051145a09",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "BE",
"created": "2016-03-25T13:51:04.8497785Z"
},
"payment": {
"id": "pay_ffd25121f84e4d249",
"mode": "Test",
"paymentOption": "bancontact",
"holder": "John Doe",
"created": "2016-03-25T13:51:04.7717784Z"
},
"amount": 1700,
"currency": "EUR",
"merchantPassThruData": "Order #1234958",
"created": "2016-03-25T13:51:04.8497785Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/message/success.html",
"cancelUrl": "http://2000charge.com/message/message/failure.html"
},
"ipaddress": "123.01.1",
"redirectUrl": "http://mybankingsite.com/hRedirection.aspx?transaction_id=trn_1a5f5e0c97"
}
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthDate | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | bancontact |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
BLIK
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "PL"
},
"payment": {
"paymentOption": "blik",
"holder": "John Doe",
},
"amount": 100,
"currency": "EUR",
"ipaddress": "123.01.1",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}
$customer = new \2000charge\Model\Customer();
$customer->setEmail("john@doe.com");
$customer->setcountry("PL");
$customer->setFirstName("John");
$customer->setLastName("Doe");
$payment = new \2000charge\Model\Payment();
$payment->setpaymentOption("blik");
$payment->setHolder("John Doe");
$redirect = new \2000charge\Model\RedirectUrls();
$redirect->setReturnUrl("http://2000charge.com/message/success.html");
$redirect->setCancelUrl("http://2000charge.com/message/failure.html");
$transaction = new \2000charge\Model\Transaction();
$transaction->setCustomer($customer);
$transaction->setPayment($payment);
$transaction->setRedirectUrls($redirect);
$transaction->setAmount(100);
$transaction->setCurrency("EUR");
$transaction->setIpAddress($ipAddress);
$res = Transaction :: post($transaction);
2000charge.ApiUrl = _apiUrl;
var customer = new Customer();
customer.Email = "john@doe.com";
customer.FirstName = "John";
customer.LastName = "Doe";
customer.country = "PL";
var payment = new Payment();
payment.paymentOption = "blik";
payment.Holder = customer.FirstName + " " + customer.LastName;
var redirect = new RedirectUrls();
redirect.ReturnUrl = "http://2000charge.com/message/success.html"
redirect.CancelUrl = "http://2000charge.com/message/failure.html"
var transaction = new Transaction();
transaction.Customer = customer;
transaction.Payment = payment;
transaction.RedirectUrls = redirect;
transaction.Amount = 250;
transaction.Currency = "EUR";
transaction.Description = "Test transaction";
customer = ApRubySdk::Customer.new(
'firstName' => 'John',
'lastName' => 'Doe',
'email' => 'john@doe.com',
'country' => 'PL'
)
payment = ApRubySdk::Payment.new(
'paymentOption' => 'blik',
'holder' => 'John Doe'
)
redirectUrls = ApRubySdk::RedirectUrls.new(
'returnUrl' => 'http://2000charge.com/message/success.html',
'cancelUrl' => 'http://2000charge.com/message/failure.html'
)
@transaction = ApRubySdk::Transaction.create(
'customer' => customer,
'payment' => payment,
'amount' => 500,
'currency' => 'EUR',
'redirectUrls' => redirectUrls
)
customer = Customer(
id='cus_bd838e3611d34d598',
firstName='John',
lastName='Doe',
email='john@doe.com',
country='PL'
)
payment = Payment(
paymentOption='blik',
holder='John Doe'
)
redirectUrls = RedirectUrls(
returnUrl='http://2000charge.com/message/success.html',
cancelUrl='http://2000charge.com/message/failure.html'
)
return Transaction.create({
'customer': customer,
'payment': payment,
'amount': 500,
'currency': 'EUR',
'iPAddress': '123.01.1',
'redirectUrls': redirectUrls
})
The above command returns JSON structured like this:
{
"id": "trn_1a5f5e0c97",
"mode": "Test",
"status": "Pending",
"customer": {
"id": "cus_bf682a6c051145a09",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "PL",
"created": "2016-03-25T13:51:04.8497785Z"
},
"payment": {
"id": "pay_ffd25121f84e4d249",
"mode": "Test",
"paymentOption": "blik",
"holder": "John Doe",
"created": "2016-03-25T13:51:04.7717784Z"
},
"amount": 1700,
"currency": "EUR",
"merchantPassThruData": "Order #1234958",
"created": "2016-03-25T13:51:04.8497785Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"ipaddress": "123.01.1",
"redirectUrl": "http://mybankingsite.com/hRedirection.aspx?transaction_id=trn_1a5f5e0c97"
}
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthDate | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | blik |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
Boleto
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "BR",
"birthDate": "02/15/1968"
},
"payment": {
"paymentOption": "boleto",
"holder": "John Doe",
"DocumentId": "924.521.873-24"
},
"amount": 220,
"currency": "USD",
"ipaddress": "123.01.1",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}
$customer = new \2000charge\Model\Customer();
$customer->setFirstName("John");
$customer->setLastName("Doe");
$customer->setEmail("john@doe.com");
$customer->setCountry("BR");
$customer->setBirthDate("02/05/1974");
$payment = new \2000charge\Model\Payment();
$payment->setpaymentOption("boleto");
$payment->setHolder("John Doe");
$payment->setDocumentId("924.521.873-24");
$transaction = new \2000charge\Model\Transaction();
$transaction->setCustomer($customer);
$transaction->setPayment($payment);
$transaction->setAmount(220);
$transaction->setCurrency("USD");
$transaction->setIpAddress($ipAddress);
$res = Transaction :: post($transaction);
The above command returns JSON structured like this:
{
"id": "trn_7352b6c4b11111",
"mode": "Test",
"status": "Pending",
"customer": {
"id": "cus_bbac2ef5e5114a3b8",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "BR",
"birthDate": "02/15/1968",
"created": "2018-03-21T14:03:02.8520463Z"
},
"payment": {
"id": "pay_f233fd613b734f9c9",
"mode": "Test",
"paymentOption": "boleto",
"holder": "John Doe",
"created": "2018-03-21T14:03:02.8207959Z",
"ipAddress": "123.01.1"
},
"amount": 220,
"currency": "USD",
"created": "2018-03-21T14:03:02.8364268Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"redirectUrl": "http://mybankingsite.com/hRedirection.aspx?transaction_id=trn_7352b6c4b11111",
"ipAddress": "123.01.1"
}
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthday | date | Customer’s birthday - MM/DD/YYYY | Mandatory |
phone | string | Customer’s phone Number | Optional |
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | boleto |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
DocumentId | string | Customer’s Document Id | Mandatory |
Bradesco
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "BR",
"phone": "+5500147258369"
},
"currency": "EUR",
"amount": 313,
"ipaddress": "72.201.94.150",
"payment": {
"holder": "John Doe",
"paymentOption": "Bradesco",
"DocumentId": "XXX.XXX.XXX"
},
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}
The above command returns JSON structured like this:
{
"id": "trn_a9cf2fb609434e",
"mode": "Live",
"status": "Pending",
"customer": {
"id": "cus_a6b47e15f17a4c0b9",
"mode": "Live",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "BR",
"phone": "+5500147258369",
"created": "2020-11-20T13:35:06.3542905Z"
},
"payment": {
"id": "pay_6b7036d90e3a449da",
"mode": "Live",
"paymentOption": "Bradesco",
"holder": "John Doe",
"created": "2020-11-20T13:35:06.2605426Z",
"ipAddress": "72.201.94.150"
},
"amount": 313.0,
"currency": "EUR",
"created": "2020-11-20T13:35:06.3386658Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"redirectUrl": "https://www.paygol.com/api/pay-direct/XXX-XXX-XXX",
"ipAddress": "72.201.94.150"
}
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | Bradesco |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
DocumentId | string | Customer’s Document Id | Mandatory |
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthday | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
DirectPayEU
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "DE"
},
"payment": {
"paymentOption": "directpayeu",
"holder": "John Doe"
},
"amount": 100,
"currency": "EUR",
"ipaddress": "123.01.1",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "DE"
},
"payment": {
"paymentOption": "directpayeu",
"holder": "John Doe"
},
"amount": 100,
"currency": "EUR",
"ipaddress": "123.01.1",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}
The above command returns JSON structured like this:
{
"id": "trn_a8f111115834f",
"mode": "Test",
"status": "Pending",
"customer": {
"id": "cus_117f802222d98b",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "DE",
"created": "2017-01-18T10:04:01.6071148Z"
},
"payment": {
"id": "pay_1e51111224ffeb",
"mode": "Test",
"paymentOption": "directpayeu",
"holder": "John Doe",
"created": "2017-01-18T10:04:01.5831133Z",
"ipAddress": "123.01.1"
},
"amount": 100,
"currency": "EUR",
"created": "2018-01-18T10:04:01.6041154Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"redirectUrl": "https://2000charge.com/directpay/index/132111111111111111fd23e0d9515",
"ipAddress": "123.01.1"
}
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthDate | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | directpayeu |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
documentId | string | Customer’s Document Id | Optional |
DPMax
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer":{
"firstName":"John",
"lastName":"Doe",
"email":"john@doe.com",
"country":"DE"
},
"payment":{
"paymentOption":"DirectPayMax",
"holder":"John Doe",
"iban": "DE19500105171654629345"
},
"amount": 100,
"currency":"EUR",
"ipAddress":"123.01.1",
"redirectUrls":{
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}
$customer = new \2000charge\Model\Customer();
$customer->setEmail("john@doe.com");
$customer->setcountry("DE");
$customer->setFirstName("John");
$customer->setLastName("Doe");
$payment = new \2000charge\Model\Payment();
$payment->setpaymentOption("DirectPayMax");
$payment->setHolder("John Doe");
$payment->iban("DE76500105171459832919");
$redirect = new \2000charge\Model\RedirectUrls();
$redirect->setReturnUrl("http://2000charge.com/message/success.html");
$redirect->setCancelUrl("http://2000charge.com/message/failure.html");
$transaction = new \2000charge\Model\Transaction();
$transaction->setCustomer($customer);
$transaction->setPayment($payment);
$transaction->setRedirectUrls($redirect);
$transaction->setAmount(100);
$transaction->setCurrency("EUR");
$transaction->setIpAddress($ipAddress);
$res = Transaction :: post($transaction);
2000charge.ApiUrl = _apiUrl;
var customer = new Customer();
customer.Email = "john@doe.com";
customer.FirstName = "John";
customer.LastName = "Doe";
customer.country = "DE";
var payment = new Payment();
payment.paymentOption = "DirectPayMax";
payment.Holder = customer.FirstName + " " + customer.LastName;
payment.iban = "DE76500105171459832919";
var redirect = new RedirectUrls();
redirect.ReturnUrl = "http://2000charge.com/message/success.html"
redirect.CancelUrl = "http://2000charge.com/message/failure.html"
var transaction = new Transaction();
transaction.Customer = customer;
transaction.Payment = payment;
transaction.RedirectUrls = redirect;
transaction.Amount = 250;
transaction.Currency = "EUR";
transaction.Description = "Test transaction";
customer = ApRubySdk::Customer.new(
'firstName' => 'John',
'lastName' => 'Doe',
'email' => 'john@doe.com',
'country' => 'DE'
)
payment = ApRubySdk::Payment.new(
'paymentOption' => 'DirectPayMax',
'holder' => 'John Doe',
'iban' => 'DE76500105171459832919'
)
redirectUrls = ApRubySdk::RedirectUrls.new(
'returnUrl' => 'http://2000charge.com/message/success.html',
'cancelUrl' => 'http://2000charge.com/message/failure.html'
)
@transaction = ApRubySdk::Transaction.create(
'customer' => customer,
'payment' => payment,
'amount' => 100,
'currency' => 'EUR',
'redirectUrls' => redirectUrls
)
customer = Customer(
firstName='John',
lastName='Doe',
email='john@doe.com',
country='DE'
)
payment = Payment(
paymentOption='DirectPayMax',
holder='John Doe',
iban='DE76500105171459832919'
)
redirectUrls = RedirectUrls(
returnUrl='http://2000charge.com/message/success.html',
cancelUrl='http://2000charge.com/message/failure.html'
)
return Transaction.create({
'customer': customer,
'payment': payment,
'amount': 100,
'currency': 'EUR',
'iPAddress': '123.01.1',
'redirectUrls': redirectUrls
})
The above command returns JSON structured like this:
{
"id": "trn_4295124a85ea46",
"mode": "Live",
"status": "AwaitingAuthorization",
"customer": {
"id": "cus_ba0df2c1723347979",
"mode": "Live",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "DE",
"created": "2022-04-12T09:26:22.4547812Z"
},
"payment": {
"id": "pay_35c9eb043a034301a",
"mode": "Live",
"paymentOption": "DirectPayMax",
"holder": "John Doe",
"iban": "DE19XXXXX9345",
"created": "2022-04-12T09:26:22.4234722Z",
"ipAddress": "123.01.1"
},
"amount": 100.0,
"currency": "EUR",
"created": "2022-04-12T09:26:22.4547812Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"redirectUrl": "http://authorization-url.com",
"authorizationFlow": "Redirect",
"ipAddress": "123.01.1"
}
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | DirectPayMax |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
iban | string | Customers IBAN | IBAN or BIC should be provided |
psuId | string | Payment Service User Id | Required for some institutions |
bic | string | Customers BIC | IBAN or BIC should be provided |
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthday | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
Efecty
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "CO"
},
"currency": "EUR",
"amount": 1299,
"ipaddress": "72.201.94.150",
"payment": {
"holder": "John Doe",
"paymentOption": "Efecty",
"DocumentId": "XXX.XXX.XXX"
},
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}
The above command returns JSON structured like this:
{
"id": "trn_a9cf2fb609434e",
"mode": "Live",
"status": "Pending",
"customer": {
"id": "cus_a6b47e15f17a4c0b9",
"mode": "Live",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "CO",
"created": "2020-11-20T13:35:06.3542905Z"
},
"payment": {
"id": "pay_6b7036d90e3a449da",
"mode": "Live",
"paymentOption": "Efecty",
"holder": "John Doe",
"created": "2020-11-20T13:35:06.2605426Z",
"ipAddress": "72.201.94.150"
},
"amount": 135.0,
"currency": "EUR",
"created": "2020-11-20T13:35:06.3386658Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"redirectUrl": "https://www.paygol.com/api/pay-direct/XXX-XXX-XXX",
"ipAddress": "72.201.94.150"
}
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | Efecty |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
DocumentId | string | Customer’s Document Id | Mandatory |
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthday | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
EPS
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "AT"
},
"payment": {
"paymentOption": "eps",
"bic": "TESTDETT421",
"holder": "John Doe"
},
"amount": 100,
"currency": "EUR",
"ipaddress": "123.01.1",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/message/success.html",
"cancelUrl": "http://2000charge.com/message/message/failure.html"
}
}
$customer = new \2000charge\Model\Customer();
$customer->setFirstName("John");
$customer->setLastName("Doe");
$customer->setEmail("john@doe.com");
$customer->setcountry("AT");
$payment = new \2000charge\Model\Payment();
$payment->setpaymentOption("eps");
$payment->setHolder("John Doe");
$payment->setBIC("TESTDETT421");
$redirect = new \2000charge\Model\RedirectUrls();
$redirect->setCancelUrl("http://2000charge.com/message/message/failure.html");
$redirect->setReturnUrl("http://2000charge.com/message/message/success.html");
$transaction = new \2000charge\Model\Transaction();
$transaction->setCustomer($customer);
$transaction->setPayment($payment);
$transaction->setRedirectUrls($redirect);
$transaction->setAmount(100);
$transaction->setCurrency("EUR");
$transaction->setIpAddress($ipAddress);
$res = \2000charge\Transaction :: post($transaction);
2000charge.ApiUrl = _apiUrl;
var customer = new Customer();
customer.FirstName = "John";
customer.LastName = "Doe";
customer.Email = "john@doe.com";
customer.country = "AT";
var payment = new Payment();
payment.paymentOption = "eps";
payment.Holder = customer.FirstName + " " + customer.LastName;
payment.bic = "TESTDETT421";
var redirect = new RedirectUrls();
redirect.CancelUrl = "http://2000charge.com/message/failure.html"
var transaction = new Transaction();
transaction.Customer = customer;
transaction.Payment = payment;
transaction.RedirectUrls = redirect;
transaction.Amount = 100;
transaction.Currency = "EUR";
customer = ApRubySdk::Customer.new(
'firstName' => 'John',
'lastName' => 'Doe',
'email' => 'john@doe.com',
'country' => 'AT'
)
payment = ApRubySdk::Payment.new(
'paymentOption' => 'eps',
'holder' => 'John Doe',
'bic' => 'TESTDETT421'
)
redirectUrls = ApRubySdk::RedirectUrls.new(
'returnUrl' => 'http://2000charge.com/message/success.html',
'cancelUrl' => 'http://2000charge.com/message/failure.html'
)
@transaction = ApRubySdk::Transaction.create(
'customer' => customer,
'payment' => payment,
'amount' => 500,
'currency' => 'EUR',
'redirectUrls' => redirectUrls
)
customer = Customer(
firstName='John',
lastName='Doe',
email='john@doe.com',
country='AT'
)
payment = Payment(
paymentOption='eps',
holder='John Doe',
bic='TESTDETT421'
)
redirectUrls = RedirectUrls(
returnUrl='http://2000charge.com/message/success.html',
cancelUrl='http://2000charge.com/message/failure.html'
)
return Transaction.create({
'customer': customer,
'payment': payment,
'amount': 500,
'currency': 'EUR',
'iPAddress': '123.01.1',
'redirectUrls': redirectUrls
})
The above command returns JSON structured like this:
{
"id": "trn_2bbcd34688",
"mode": "Test",
"status": "Pending",
"customer": {
"id": "cus_b9c6a32127724ecea",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "AT",
"created": "2016-03-25T14:04:41.7643102Z"
},
"payment": {
"id": "pay_f633ab65f86b4dac8",
"mode": "Test",
"paymentOption": "eps",
"holder": "John Doe",
"bic": "TESTDETT421",
"created": "2016-03-25T14:04:41.6863101Z"
},
"amount": 23,
"currency": "EUR",
"merchantPassThruData": "order_242444",
"created": "2016-03-25T14:04:41.7643102Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"ipaddress": "123.01.1",
"redirectUrl": "http://checkout.nts.com/direction.aspx?transaction_id=trn_2688"
}
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthDate | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | eps |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
BIC | string | Customer’s BIC | Mandatory |
Giropay
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "DE"
},
"payment": {
"paymentOption": "giropay",
"bic": "TESTDETT421",
"holder": "John Doe"
},
"amount": 100,
"currency": "EUR",
"ipaddress": "123.01.1",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}
$customer = new \2000charge\Model\Customer();
$customer->setFirstName("John");
$customer->setLastName("Doe");
$customer->setEmail("john@doe.com");
$customer->setcountry("DE");
$payment = new \2000charge\Model\Payment();
$payment->setpaymentOption("Giropay");
$payment->setHolder("John Doe");
$payment->setBIC("TESTDETT421");
$redirect = new \2000charge\Model\RedirectUrls();
$redirect->setCancelUrl("http://2000charge.com/message/message/failure.html");
$redirect->setReturnUrl("http://2000charge.com/message/message/success.html");
$transaction = new \2000charge\Model\Transaction();
$transaction->setCustomer($customer);
$transaction->setPayment($payment);
$transaction->setRedirectUrls($redirect);
$transaction->setAmount(100);
$transaction->setCurrency("EUR");
$transaction->setIpAddress($ipAddress);
$res = \2000charge\Transaction :: post($transaction);
2000charge.ApiUrl = _apiUrl;
var customer = new Customer();
customer.FirstName = "John";
customer.LastName = "Doe";
customer.Email = "john@doe.com";
customer.country = "DE";
var payment = new Payment();
payment.paymentOption = "giropay";
payment.Holder = customer.FirstName + " " + customer.LastName;
payment.bic = "TESTDETT421";
var redirect = new RedirectUrls();
redirect.CancelUrl = "http://2000charge.com/message/message/failure.html"
var transaction = new Transaction();
transaction.Customer = customer;
transaction.Payment = payment;
transaction.RedirectUrls = redirect;
transaction.Amount = 100;
transaction.Currency = "EUR";
customer = ApRubySdk::Customer.new(
'firstName' => 'John',
'lastName' => 'Doe',
'email' => 'john@doe.com',
'country' => 'DE'
)
payment = ApRubySdk::Payment.new(
'paymentOption' => 'giropay',
'holder' => 'John Doe',
'bic' => 'TESTDETT421'
)
redirectUrls = ApRubySdk::RedirectUrls.new(
'returnUrl' => 'http://2000charge.com/message/message/success.html',
'cancelUrl' => 'http://2000charge.com/message/message/failure.html'
)
@transaction = ApRubySdk::Transaction.create(
'customer' => customer,
'payment' => payment,
'amount' => 500,
'currency' => 'EUR',
'redirectUrls' => redirectUrls
)
customer = Customer(
firstName='John',
lastName='Doe',
email='john@doe.com',
country='DE'
)
payment = Payment(
paymentOption='giropay',
holder='John Doe',
bic='TESTDETT421'
)
redirectUrls = RedirectUrls(
returnUrl='http://2000charge.com/message/success.html',
cancelUrl='http://2000charge.com/message/failure.html'
)
return Transaction.create({
'customer': customer,
'payment': payment,
'amount': 500,
'currency': 'EUR',
'iPAddress': '123.01.1',
'redirectUrls': redirectUrls
})
The above command returns JSON structured like this:
{
"id": "trn_2bbcd34688",
"mode": "Test",
"status": "Pending",
"customer": {
"id": "cus_b9c6a32127724ecea",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "DE",
"created": "2016-03-25T14:04:41.7643102Z"
},
"payment": {
"id": "pay_f633ab65f86b4dac8",
"mode": "Test",
"paymentOption": "giropay",
"holder": "John Doe",
"bic": "TESTDETT421",
"created": "2016-03-25T14:04:41.6863101Z"
},
"amount": 23,
"currency": "EUR",
"merchantPassThruData": "order_242444",
"created": "2016-03-25T14:04:41.7643102Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/message/success.html",
"cancelUrl": "http://2000charge.com/message/message/failure.html"
},
"ipaddress": "123.01.1",
"redirectUrl": "http://checkout.nts.com/direction.aspx?transaction_id=trn_2688"
}
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthDate | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | giropay |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
BIC | string | Customer’s BIC | Mandatory |
iDEAL
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "NL"
},
"payment": {
"paymentOption": "iDEAL",
"holder": "John Doe"
},
"amount": 11,
"description": "Some description", // required
"merchantTransactionId": "12345678", // required
"currency": "EUR",
"ipaddress": "123.02.02",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}
$customer = new \2000charge\Model\Customer();
$customer->setEmail("john@doe.com");
$customer->setcountry("BE");
$customer->setFirstName("John");
$customer->setLastName("Doe");
$payment = new \2000charge\Model\Payment();
$payment->setpaymentOption("ideal");
$payment->setHolder("John Doe");
$redirect = new \2000charge\Model\RedirectUrls();
$redirect->setReturnUrl("http://2000charge.com/message/success.html");
$redirect->setCancelUrl("http://2000charge.com/message/failure.html");
$transaction = new \2000charge\Model\Transaction();
$transaction->setCustomer($customer);
$transaction->setPayment($payment);
$transaction->setRedirectUrls($redirect);
$transaction->setAmount(100);
$transaction->setDescription("Some description");
$transaction->setMerchantTransactionId("12345678");
$transaction->setCurrency("EUR");
$transaction->setIpAddress($ipAddress);
$res = Transaction :: post($transaction);
2000charge.ApiUrl = _apiUrl;
var customer = new Customer();
customer.Email = "john@doe.com";
customer.FirstName = "John";
customer.LastName = "Doe";
customer.country = "NL";
var payment = new Payment();
payment.paymentOption = "ideal";
payment.Holder = customer.FirstName + " " + customer.LastName;
var redirect = new RedirectUrls();
redirect.ReturnUrl = "http://2000charge.com/message/success.html"
redirect.CancelUrl = "http://2000charge.com/message/failure.html"
var transaction = new Transaction();
transaction.Customer = customer;
transaction.Payment = payment;
transaction.RedirectUrls = redirect;
transaction.Amount = 250;
transaction.Description = "Some description";
transaction.MerchantTransactionId = "12345678";
transaction.Currency = "EUR";
transaction.Description = "Test transaction";
customer = ApRubySdk::Customer.new(
'firstName' => 'John',
'lastName' => 'Doe',
'email' => 'john@doe.com',
'country' => 'NL'
)
payment = ApRubySdk::Payment.new(
'paymentOption' => 'ideal',
'holder' => 'John Doe'
)
redirectUrls = ApRubySdk::RedirectUrls.new(
'returnUrl' => 'http://2000charge.com/message/success.html',
'cancelUrl' => 'http://2000charge.com/message/failure.html'
)
@transaction = ApRubySdk::Transaction.create(
'customer' => customer,
'payment' => payment,
'amount' => 500,
'description' => 'Some description',
'merchantTransactionId' => '12345678',
'currency' => 'EUR',
'redirectUrls' => redirectUrls
)
customer = Customer(
id='cus_bd838e3611d34d598',
firstName='John',
lastName='Doe',
email='john@doe.com',
country='NL'
)
payment = Payment(
paymentOption='ideal',
holder='John Doe'
)
redirectUrls = RedirectUrls(
returnUrl='http://2000charge.com/message/success.html',
cancelUrl='http://2000charge.com/message/failure.html'
)
return Transaction.create({
'customer': customer,
'payment': payment,
'amount': 500,
'description': 'Some description',
'merchantTransactionId': '12345678',
'currency': 'EUR',
'iPAddress': '123.01.1',
'redirectUrls': redirectUrls
})
The above command returns JSON structured like this:
{
"id": "trn_afecfa2bb05d43",
"mode": "Live",
"status": "Pending",
"customer": {
"id": "cus_dd01be8ba9554de09",
"mode": "Live",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "NL",
"created": "2022-05-12T09:14:25.4679409Z"
},
"payment": {
"id": "pay_365485d22e59414b8",
"mode": "Live",
"paymentOption": "iDEAL",
"holder": "John Doe",
"created": "2022-05-12T09:14:25.4055419Z",
"ipAddress": "123.02.02"
},
"amount": 11.0,
"currency": "EUR",
"merchantTransactionId": "12345678",
"description": "Some description",
"created": "2022-05-12T09:14:25.4679409Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"ipaddress": "123.01.1",
"redirectUrl": "http://mybankingsite.com/hRedirection.aspx?transaction_id=trn_afecfa2bb05d43"
}
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthDate | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | ideal |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
ATTRIBUTES
Parameter | Type | Description | Requirement |
---|---|---|---|
description | string | Description | Mandatory |
merchantTransactionId | string | The unique identifier for a payment provided by the merchant | Mandatory |
Itau
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "BR",
"phone": "+5500147258369"
},
"currency": "EUR",
"amount": 313,
"ipaddress": "72.201.94.150",
"payment": {
"holder": "John Doe",
"paymentOption": "itau",
"DocumentId": "XXX.XXX.XXX"
},
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}
The above command returns JSON structured like this:
{
"id": "trn_a9cf2fb609434e",
"mode": "Live",
"status": "Pending",
"customer": {
"id": "cus_a6b47e15f17a4c0b9",
"mode": "Live",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "BR",
"created": "2020-11-20T13:35:06.3542905Z",
"phone": "+5500147258369"
},
"payment": {
"id": "pay_6b7036d90e3a449da",
"mode": "Live",
"paymentOption": "itau",
"holder": "John Doe",
"created": "2020-11-20T13:35:06.2605426Z",
"ipAddress": "72.201.94.150"
},
"amount": 313.0,
"currency": "EUR",
"created": "2020-11-20T13:35:06.3386658Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"redirectUrl": "https://www.paygol.com/api/pay-direct/XXX-XXX-XXX",
"ipAddress": "72.201.94.150"
}
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | itau |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
DocumentId | string | Customer’s Document Id | Mandatory |
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthday | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
Multicaja
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "CL"
},
"currency": "EUR",
"amount": 313,
"ipaddress": "72.201.94.150",
"payment": {
"holder": "John Doe",
"paymentOption": "multicaja",
"DocumentId": "XXX.XXX.XXX"
},
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}
The above command returns JSON structured like this:
{
"id": "trn_a9cf2fb609434e",
"mode": "Live",
"status": "Pending",
"customer": {
"id": "cus_a6b47e15f17a4c0b9",
"mode": "Live",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "CL",
"created": "2020-11-20T13:35:06.3542905Z"
},
"payment": {
"id": "pay_6b7036d90e3a449da",
"mode": "Live",
"paymentOption": "multicaja",
"holder": "John Doe",
"created": "2020-11-20T13:35:06.2605426Z",
"ipAddress": "72.201.94.150"
},
"amount": 313.0,
"currency": "EUR",
"created": "2020-11-20T13:35:06.3386658Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"redirectUrl": "https://www.paygol.com/api/pay-direct/XXX-XXX-XXX",
"ipAddress": "72.201.94.150"
}
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | multicaja |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
DocumentId | string | Customer’s Document Id | Mandatory |
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthday | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
MyBank
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "IT"
},
"payment": {
"paymentOption": "mybank",
"holder": "John Doe",
},
"amount": 100,
"currency": "EUR",
"ipaddress": "123.01.1",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}
{
"id": "trn_2bbcd34628",
"mode": "Test",
"status": "Pending",
"customer": {
"id": "cus_b9c6a32127724ffea",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "IT",
"created": "2016-03-25T14:04:41.7643102Z"
},
"payment": {
"id": "pay_f633ab65f86b4dac8",
"mode": "Test",
"paymentOption": "MyBank",
"holder": "John Doe",
"created": "2016-03-25T14:04:41.6863101Z"
},
"amount": 100,
"currency": "EUR",
"created": "2016-03-25T14:04:41.7643102Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"ipaddress": "123.01.1",
"redirectUrl": "http://checkout.nts.com/direction.aspx?transaction_id=trn_2688"
}
{
"id": "trn_2bbcd34628",
"mode": "Test",
"status": "Pending",
"customer": {
"id": "cus_b9c6a32127724ffea",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "IT",
"created": "2016-03-25T14:04:41.7643102Z"
},
"payment": {
"id": "pay_f633ab65f86b4dac8",
"mode": "Test",
"paymentOption": "MyBank",
"holder": "John Doe",
"created": "2016-03-25T14:04:41.6863101Z"
},
"amount": 100,
"currency": "EUR",
"created": "2016-03-25T14:04:41.7643102Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"ipaddress": "123.01.1",
"redirectUrl": "http://checkout.nts.com/direction.aspx?transaction_id=trn_2688"
}
{
"id": "trn_2bbcd34628",
"mode": "Test",
"status": "Pending",
"customer": {
"id": "cus_b9c6a32127724ffea",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "IT",
"created": "2016-03-25T14:04:41.7643102Z"
},
"payment": {
"id": "pay_f633ab65f86b4dac8",
"mode": "Test",
"paymentOption": "MyBank",
"holder": "John Doe",
"created": "2016-03-25T14:04:41.6863101Z"
},
"amount": 100,
"currency": "EUR",
"created": "2016-03-25T14:04:41.7643102Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"ipaddress": "123.01.1",
"redirectUrl": "http://checkout.nts.com/direction.aspx?transaction_id=trn_2688"
}
{
"id": "trn_2bbcd34628",
"mode": "Test",
"status": "Pending",
"customer": {
"id": "cus_b9c6a32127724ffea",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "IT",
"created": "2016-03-25T14:04:41.7643102Z"
},
"payment": {
"id": "pay_f633ab65f86b4dac8",
"mode": "Test",
"paymentOption": "MyBank",
"holder": "John Doe",
"created": "2016-03-25T14:04:41.6863101Z"
},
"amount": 100,
"currency": "EUR",
"created": "2016-03-25T14:04:41.7643102Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"ipaddress": "123.01.1",
"redirectUrl": "http://checkout.nts.com/direction.aspx?transaction_id=trn_2688"
}
The above command returns JSON structured like this:
{
"id": "trn_2bbcd34628",
"mode": "Test",
"status": "Pending",
"customer": {
"id": "cus_b9c6a32127724ffea",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "IT",
"created": "2016-03-25T14:04:41.7643102Z"
},
"payment": {
"id": "pay_f633ab65f86b4dac8",
"mode": "Test",
"paymentOption": "MyBank",
"holder": "John Doe",
"created": "2016-03-25T14:04:41.6863101Z"
},
"amount": 100,
"currency": "EUR",
"created": "2016-03-25T14:04:41.7643102Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"ipaddress": "123.01.1",
"redirectUrl": "http://checkout.nts.com/direction.aspx?transaction_id=trn_2688"
}
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthDate | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | mybank |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
Oxxo
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "John@Doe.com",
"country": "MX"
},
"payment": {
"paymentOption": "oxxo",
"holder": "John Doe",
"DocumentId": "XXX.XXXX.XXX"
},
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"amount": 135,
"currency": "EUR",
"ipaddress": "72.201.94.150"
}
The above command returns JSON structured like this:
{
"id": "trn_a9cf2fb609434e",
"mode": "Live",
"status": "Pending",
"customer": {
"id": "cus_a6b47e15f17a4c0b9",
"mode": "Live",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "MX",
"created": "2020-11-20T13:35:06.3542905Z"
},
"payment": {
"id": "pay_6b7036d90e3a449da",
"mode": "Live",
"paymentOption": "oxxo",
"holder": "John Doe",
"created": "2020-11-20T13:35:06.2605426Z",
"ipAddress": "72.201.94.150"
},
"amount": 135.0,
"currency": "EUR",
"created": "2020-11-20T13:35:06.3386658Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"redirectUrl": "https://www.paygol.com/api/pay-direct/XXX-XXX-XXX",
"ipAddress": "72.201.94.150"
}
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | oxxo |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
DocumentId | string | Customer’s Document Id | Mandatory |
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthday | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
PagoEfectivo
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "PE",
"phone": "+5500147258369"
},
"currency": "EUR",
"amount": 313,
"ipaddress": "72.201.94.150",
"payment": {
"holder": "John Doe",
"paymentOption": "PagoEfectivo",
"DocumentId": "XXX.XXX.XXX"
},
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}
The above command returns JSON structured like this:
{
"id": "trn_a9cf2fb609434e",
"mode": "Live",
"status": "Pending",
"customer": {
"id": "cus_a6b47e15f17a4c0b9",
"mode": "Live",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "PE",
"phone": "+5500147258369",
"created": "2020-11-20T13:35:06.3542905Z"
},
"payment": {
"id": "pay_6b7036d90e3a449da",
"mode": "Live",
"paymentOption": "PagoEfectivo",
"holder": "John Doe",
"created": "2020-11-20T13:35:06.2605426Z",
"ipAddress": "72.201.94.150"
},
"amount": 313.0,
"currency": "EUR",
"created": "2020-11-20T13:35:06.3386658Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"redirectUrl": "https://www.paygol.com/api/pay-direct/XXX-XXX-XXX",
"ipAddress": "72.201.94.150"
}
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | multicaja |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
DocumentId | string | Customer’s Document Id | Mandatory |
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthday | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
Pago Facil
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "AR"
},
"currency": "EUR",
"amount": 1299,
"ipaddress": "72.201.94.150",
"payment": {
"holder": "John Doe",
"paymentOption": "pagofacil",
"DocumentId": "XXX.XXX.XXX"
},
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}
The above command returns JSON structured like this:
{
"id": "trn_7707655ea34b4a",
"mode": "Live",
"status": "Pending",
"customer": {
"id": "cus_7aaad98e5b214ee68",
"mode": "Live",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "AR",
"created": "2020-11-23T13:15:58.6751618Z"
},
"payment": {
"id": "pay_4f59691e7cc348e59",
"mode": "Live",
"paymentOption": "pagofacil",
"holder": "John Doe",
"created": "2020-11-23T13:15:58.6439125Z",
"ipAddress": "72.201.94.150"
},
"amount": 1299,
"currency": "EUR",
"created": "2020-11-23T13:15:58.6595367Z",
"redirectUrls": {
"returnUrl": "https://apcatcher.zero21.eu/api/catch/201",
"cancelUrl": "https://apcatcher.zero21.eu/api/catch/400"
},
"redirectUrl": "https://www.paygol.com/api/pay-direct/XXX-XXX-XXX",
"ipAddress": "72.201.94.150"
}
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | pagofacil |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
DocumentId | string | Customer’s Document Id | Mandatory |
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthday | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
PaySafe Card
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "DE"
},
"payment": {
"paymentOption": "paysafe",
"holder": "John Doe"
},
"amount": 100,
"currency": "EUR",
"ipaddress": "123.01.1",
"redirectUrls": {
"ReturnUrl":"http://2000charge.com/message/success.html",
"CancelUrl":"http://2000charge.com/message/failure.html"
}
}
The above command returns JSON structured like this:
{
"id": "trn_2bbcd34628",
"mode": "Test",
"status": "Pending",
"customer": {
"id": "cus_b9c6a32127724ffea",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "DE",
"created": "2016-03-25T14:04:41.7643102Z"
},
"payment": {
"id": "pay_f633ab65f86b4dac8",
"mode": "Test",
"paymentOption": "paysafe",
"holder": "John Doe",
"created": "2016-03-25T14:04:41.6863101Z"
},
"amount": 100,
"currency": "EUR",
"created": "2016-03-25T14:04:41.7643102Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"ipaddress": "123.01.1",
"redirectUrl": "http://checkout.nts.com/direction.aspx?transaction_id=trn_2688"
}
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthDate | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | paysafe |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
Pix
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>
: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "Roberto",
"lastName": "Doe",
"email": "Roberto@Doe.com",
"country": "BR"
},
"payment": {
"paymentOption": "pix",
"holder": "RobertoDoe",
"documentId": "014.423.868-35"
},
"amount": 100,
"currency": "BRL",
"description": "Purchase details",
"merchantTransactionId": "12345678",
"ipaddress": "123.01.1",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}
$customer = new \2000charge\Model\Customer();
$customer->setFirstName("Roberto");
$customer->setLastName("Doe");
$customer->setEmail("Roberto@Doe.com");
$customer->setcountry("BR");
$payment = new \2000charge\Model\Payment();
$payment->setpaymentOption("pix");
$payment->setHolder("Roberto Doe");
$payment->setDocumentId("014.423.868-35");
$transaction = new \2000charge\Model\Transaction();
$transaction->setCustomer($customer);
$transaction->setPayment($payment);
$transaction->setAmount(100);
$transaction->setCurrency("BRL");
$transaction->setDescription("Purchase details");
$transaction->setMerchantTransactionId("12345678");
$transaction->setIpAddress($ipAddress);
$res = Transaction :: post($transaction);
2000charge.ApiUrl = _apiUrl;
var customer = new Customer();
customer.FirstName = "Roberto";
customer.LastName = "Doe";
customer.Email = "Roberto@Doe.com";
customer.country = "BR";
var payment = new Payment();
payment.paymentOption = "pix";
payment.Holder = customer.FirstName + " " + customer.LastName;
payment.DocumentId = "014.423.868-35";
var transaction = new Transaction();
transaction.Customer = customer;
transaction.Payment = payment;
transaction.Amount = 100;
transaction.Currency = "BRL";
transaction.MerchantTransactionId = "12345678";
transaction.Description = "Purchase details";
customer = ApRubySdk::Customer.new(
'firstName' => 'Roberto',
'lastName' => 'Doe',
'email' => 'robero@doe.com',
'country' => 'BR'
)
payment = ApRubySdk::Payment.new(
'paymentOption' => 'pix',
'holder' => 'Roberto Doe',
'documentId' => '014.423.868-35'
)
redirectUrls = ApRubySdk::RedirectUrls.new(
'returnUrl' => 'http://2000charge.com/message/success.html',
'cancelUrl' => 'http://2000charge.com/message/failure.html'
)
@transaction = ApRubySdk::Transaction.create(
'customer' => customer,
'payment' => payment,
'amount' => 4500,
'currency' => 'EUR',
'merchantTransactionId' => '12345678',
'description' => 'Purchase details',
'redirectUrls' => redirectUrls
)
customer = Customer(
firstName='Roberto',
lastName='Doe',
email='roberto@doe.com',
country='BR'
)
payment = Payment(
paymentOption='pix',
holder='Roberto Doe',
documentId='014.423.868-35'
)
redirectUrls = RedirectUrls(
returnUrl='http://2000charge.com/message/success.html',
cancelUrl='http://2000charge.com/message/failure.html'
)
return Transaction.create({
'customer': customer,
'payment': payment,
'amount': 4500,
'currency': 'EUR',
'merchantTransactionId': '12345678',
'description': 'Purchase details',
'iPAddress': '123.01.1',
'redirectUrls': redirectUrls
})
The above command returns JSON structured like this:
{
"id": "trn_43baf0cf75",
"mode": "Test",
"status": "Pending",
"customer": {
"id": "cus_cacc9d89ee674e44b",
"mode": "Test",
"firstName": "Roberto",
"lastName": "Doe",
"email": "roberto@doe.com",
"country": "BR",
"created": "2024-03-25T14:00:38.0421808Z"
},
"payment": {
"id": "pay_abcaa1351f5c45fe8",
"mode": "Test",
"paymentOption": "pix",
"holder": "Roberto Doe",
"created": "2024-03-25T14:00:37.9641807Z",
"documentId": "014.423.868-35"
},
"amount": 100,
"currency": "BRL",
"merchantTransactionId": "12345678",
"created": "2024-03-25T14:00:38.0421808Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"ipaddress": "123.01.1",
"redirectUrl": "http://mybankingsite.com/hRedirection.aspx?transaction_id=trn_1a5f5e0c97"
}
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | pix |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
DocumentId | string | Customer’s Document Id | Mandatory |
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
country | string | Customer’s country - ISO1 country Code | Mandatory |
POLi
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "AU"
},
"payment": {
"paymentOption": "poli",
"holder": "John Doe",
},
"amount": 100,
"currency": "EUR",
"ipaddress": "123.01.1",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}
$customer = new \2000charge\Model\Customer();
$customer->setEmail("john@doe.com");
$customer->setcountry("AU");
$customer->setFirstName("John");
$customer->setLastName("Doe");
$payment = new \2000charge\Model\Payment();
$payment->setpaymentOption("poli");
$payment->setHolder("John Doe");
$redirect = new \2000charge\Model\RedirectUrls();
$redirect->setReturnUrl("http://2000charge.com/message/success.html");
$redirect->setCancelUrl("http://2000charge.com/message/failure.html");
$transaction = new \2000charge\Model\Transaction();
$transaction->setCustomer($customer);
$transaction->setPayment($payment);
$transaction->setRedirectUrls($redirect);
$transaction->setAmount(100);
$transaction->setCurrency("EUR");
$transaction->setIpAddress($ipAddress);
$res = Transaction :: post($transaction);
2000charge.ApiUrl = _apiUrl;
var customer = new Customer();
customer.Email = "john@doe.com";
customer.FirstName = "John";
customer.LastName = "Doe";
customer.country = "AU";
var payment = new Payment();
payment.paymentOption = "poli";
payment.Holder = customer.FirstName + " " + customer.LastName;
var redirect = new RedirectUrls();
redirect.ReturnUrl = "http://2000charge.com/message/success.html"
redirect.CancelUrl = "http://2000charge.com/message/failure.html"
var transaction = new Transaction();
transaction.Customer = customer;
transaction.Payment = payment;
transaction.RedirectUrls = redirect;
transaction.Amount = 250;
transaction.Currency = "EUR";
transaction.Description = "Test transaction";
The above command returns JSON structured like this:
customer = ApRubySdk::Customer.new(
'firstName' => 'John',
'lastName' => 'Doe',
'email' => 'john@doe.com',
'country' => 'AU'
)
payment = ApRubySdk::Payment.new(
'paymentOption' => 'poli',
'holder' => 'John Doe'
)
redirectUrls = ApRubySdk::RedirectUrls.new(
'returnUrl' => 'http://2000charge.com/message/success.html',
'cancelUrl' => 'http://2000charge.com/message/failure.html'
)
@transaction = ApRubySdk::Transaction.create(
'customer' => customer,
'payment' => payment,
'amount' => 500,
'currency' => 'EUR',
'redirectUrls' => redirectUrls
)
customer = Customer(
id='cus_bd838e3611d34d598',
firstName='John',
lastName='Doe',
email='john@doe.com',
country='AU'
)
payment = Payment(
paymentOption='poli',
holder='John Doe'
)
redirectUrls = RedirectUrls(
returnUrl='http://2000charge.com/message/success.html',
cancelUrl='http://2000charge.com/message/failure.html'
)
return Transaction.create({
'customer': customer,
'payment': payment,
'amount': 500,
'currency': 'EUR',
'iPAddress': '123.01.1',
'redirectUrls': redirectUrls
})
{
"id": "trn_1a5f5e0c97",
"mode": "Test",
"status": "Pending",
"customer": {
"id": "cus_bf682a6c051145a09",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "AU",
"created": "2016-03-25T13:51:04.8497785Z"
},
"payment": {
"id": "pay_ffd25121f84e4d249",
"mode": "Test",
"paymentOption": "poli",
"holder": "John Doe",
"created": "2016-03-25T13:51:04.7717784Z"
},
"amount": 1700,
"currency": "EUR",
"merchantPassThruData": "Order #1234958",
"created": "2016-03-25T13:51:04.8497785Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"ipaddress": "123.01.1",
"redirectUrl": "http://mybankingsite.com/hRedirection.aspx?transaction_id=trn_1a5f5e0c97"
}
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthDate | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | poli |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
Przelewy24
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "PL"
},
"payment": {
"paymentOption": "przelewy24",
"holder": "John Doe",
},
"amount": 100,
"currency": "EUR",
"ipaddress": "123.01.1",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}
$customer = new \2000charge\Model\Customer();
$customer->setEmail("john@doe.com");
$customer->setcountry("PL");
$customer->setFirstName("John");
$customer->setLastName("Doe");
$payment = new \2000charge\Model\Payment();
$payment->setpaymentOption("przelewy24");
$payment->setHolder("John Doe");
$redirect = new \2000charge\Model\RedirectUrls();
$redirect->setReturnUrl("http://2000charge.com/message/success.html");
$redirect->setCancelUrl("http://2000charge.com/message/failure.html");
$transaction = new \2000charge\Model\Transaction();
$transaction->setCustomer($customer);
$transaction->setPayment($payment);
$transaction->setRedirectUrls($redirect);
$transaction->setAmount(100);
$transaction->setCurrency("EUR");
$transaction->setIpAddress($ipAddress);
$res = Transaction :: post($transaction);
2000charge.ApiUrl = _apiUrl;
var customer = new Customer();
customer.Email = "john@doe.com";
customer.FirstName = "John";
customer.LastName = "Doe";
customer.country = "PL";
var payment = new Payment();
payment.paymentOption = "przelewy24";
payment.Holder = customer.FirstName + " " + customer.LastName;
var redirect = new RedirectUrls();
redirect.ReturnUrl = "http://2000charge.com/message/success.html"
redirect.CancelUrl = "http://2000charge.com/message/failure.html"
var transaction = new Transaction();
transaction.Customer = customer;
transaction.Payment = payment;
transaction.RedirectUrls = redirect;
transaction.Amount = 250;
transaction.Currency = "EUR";
transaction.Description = "Test transaction";
customer = ApRubySdk::Customer.new(
'firstName' => 'John',
'lastName' => 'Doe',
'email' => 'john@doe.com',
'country' => 'PL'
)
payment = ApRubySdk::Payment.new(
'paymentOption' => 'przelewy24',
'holder' => 'John Doe'
)
redirectUrls = ApRubySdk::RedirectUrls.new(
'returnUrl' => 'http://2000charge.com/message/success.html',
'cancelUrl' => 'http://2000charge.com/message/failure.html'
)
@transaction = ApRubySdk::Transaction.create(
'customer' => customer,
'payment' => payment,
'amount' => 500,
'currency' => 'EUR',
'redirectUrls' => redirectUrls
)
customer = Customer(
id='cus_bd838e3611d34d598',
firstName='John',
lastName='Doe',
email='john@doe.com',
country='PL'
)
payment = Payment(
paymentOption='przelewy24',
holder='John Doe'
)
redirectUrls = RedirectUrls(
returnUrl='http://2000charge.com/message/success.html',
cancelUrl='http://2000charge.com/message/failure.html'
)
return Transaction.create({
'customer': customer,
'payment': payment,
'amount': 500,
'currency': 'EUR',
'iPAddress': '123.01.1',
'redirectUrls': redirectUrls
})
The above command returns JSON structured like this:
{
"id": "trn_1a5f5e0c97",
"mode": "Test",
"status": "Pending",
"customer": {
"id": "cus_bf682a6c051145a09",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "PL",
"created": "2016-03-25T13:51:04.8497785Z"
},
"payment": {
"id": "pay_ffd25121f84e4d249",
"mode": "Test",
"paymentOption": "przelewy24",
"holder": "John Doe",
"created": "2016-03-25T13:51:04.7717784Z"
},
"amount": 1700,
"currency": "EUR",
"merchantPassThruData": "Order #1234958",
"created": "2016-03-25T13:51:04.8497785Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"ipaddress": "123.01.1",
"redirectUrl": "http://mybankingsite.com/hRedirection.aspx?transaction_id=trn_1a5f5e0c97"
}
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthDate | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | przelewy24 |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
QIWI
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "RU",
"phone":"+7855555555555"
},
"payment": {
"paymentOption": "qiwi",
"holder": "John Doe"
},
"amount": 15000,
"currency": "RUB",
"ipaddress": "123.01.1",
"redirectUrls": {
"ReturnUrl":"http://2000charge.com/message/success.html",
"CancelUrl":"http://2000charge.com/message/failure.html"
}
}
The above command returns JSON structured like this:
{
"id": "trn_2bbcd34648",
"mode": "Test",
"status": "Pending",
"customer": {
"id": "cus_b9c6a32127724ffea",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "RU",
"phone":"+7855555555555",
"created": "2016-03-25T14:04:41.7643102Z"
},
"payment": {
"id": "pay_f633ab65f86b4dac8",
"mode": "Test",
"paymentOption": "qiwi",
"holder": "John Doe",
"created": "2016-03-25T14:04:41.6863101Z"
},
"amount": 15000,
"currency": "RUB",
"created": "2016-03-25T14:04:41.7643102Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"ipaddress": "123.01.1",
"redirectUrl": "http://checkout.nts.com/direction.aspx?transaction_id=trn_2688"
}
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
country | string | Customer’s country - ISO1 country Code | Mandatory |
phone | string | Customer’s phone Number | Mandatory |
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | qiwi |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
Rapipago
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "AR"
},
"currency": "EUR",
"amount": 1299,
"ipaddress": "72.201.94.150",
"payment": {
"holder": "John Doe",
"paymentOption": "Rapipago",
"DocumentId": "XXX.XXX.XXX"
},
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}
The above command returns JSON structured like this:
{
"id": "trn_948d2876f1d746",
"mode": "Live",
"status": "Pending",
"customer": {
"id": "cus_e086bd1ea4b247348",
"mode": "Live",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "AR",
"created": "2020-11-23T13:09:46.2216104Z"
},
"payment": {
"id": "pay_cf5c9e98c7b641979",
"mode": "Live",
"paymentOption": "rapipago",
"holder": "John Doe",
"created": "2020-11-23T13:09:46.2059846Z",
"ipAddress": "72.201.94.150"
},
"amount": 1299,
"currency": "EUR",
"created": "2020-11-23T13:09:46.2216104Z",
"redirectUrls": {
"returnUrl": "https://apcatcher.zero21.eu/api/catch/201",
"cancelUrl": "https://apcatcher.zero21.eu/api/catch/400"
},
"redirectUrl": "https://www.paygol.com/api/pay-direct/XXX-XXX-XXX",
"ipAddress": "72.201.94.150"
}
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | rapipago |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
DocumentId | string | Customer’s Document Id | Mandatory |
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthday | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
SafetyPay
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "NL"
},
"payment": {
"paymentOption": "safetypay",
"holder": "John Doe",
},
"amount": 100,
"currency": "EUR",
"ipaddress": "123.01.1",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}
$customer = new \2000charge\Model\Customer();
$customer->setEmail("john@doe.com");
$customer->setcountry("NL");
$customer->setFirstName("John");
$customer->setLastName("Doe");
$payment = new \2000charge\Model\Payment();
$payment->setpaymentOption("safetypay");
$payment->setHolder("John Doe");
$redirect = new \2000charge\Model\RedirectUrls();
$redirect->setReturnUrl("http://2000charge.com/message/success.html");
$redirect->setCancelUrl("http://2000charge.com/message/failure.html");
$transaction = new \2000charge\Model\Transaction();
$transaction->setCustomer($customer);
$transaction->setPayment($payment);
$transaction->setRedirectUrls($redirect);
$transaction->setAmount(100);
$transaction->setCurrency("EUR");
$transaction->setIpAddress($ipAddress);
$res = Transaction :: post($transaction);
2000charge.ApiUrl = _apiUrl;
var customer = new Customer();
customer.Email = "john@doe.com";
customer.FirstName = "John";
customer.LastName = "Doe";
customer.country = "NL";
var payment = new Payment();
payment.paymentOption = "safetypay";
payment.Holder = customer.FirstName + " " + customer.LastName;
var redirect = new RedirectUrls();
redirect.ReturnUrl = "http://2000charge.com/message/success.html"
redirect.CancelUrl = "http://2000charge.com/message/failure.html"
var transaction = new Transaction();
transaction.Customer = customer;
transaction.Payment = payment;
transaction.RedirectUrls = redirect;
transaction.Amount = 250;
transaction.Currency = "EUR";
transaction.Description = "Test transaction";
The above command returns JSON structured like this:
customer = ApRubySdk::Customer.new(
'firstName' => 'John',
'lastName' => 'Doe',
'email' => 'john@doe.com',
'country' => 'NL'
)
payment = ApRubySdk::Payment.new(
'paymentOption' => 'safetypay',
'holder' => 'John Doe'
)
redirectUrls = ApRubySdk::RedirectUrls.new(
'returnUrl' => 'http://2000charge.com/message/success.html',
'cancelUrl' => 'http://2000charge.com/message/failure.html'
)
@transaction = ApRubySdk::Transaction.create(
'customer' => customer,
'payment' => payment,
'amount' => 500,
'currency' => 'EUR',
'redirectUrls' => redirectUrls
)
customer = Customer(
id='cus_bd838e3611d34d598',
firstName='John',
lastName='Doe',
email='john@doe.com',
country='NL'
)
payment = Payment(
paymentOption='safetypay',
holder='John Doe'
)
redirectUrls = RedirectUrls(
returnUrl='http://2000charge.com/message/success.html',
cancelUrl='http://2000charge.com/message/failure.html'
)
return Transaction.create({
'customer': customer,
'payment': payment,
'amount': 500,
'currency': 'EUR',
'iPAddress': '123.01.1',
'redirectUrls': redirectUrls
})
The above command returns JSON structured like this:
{
"id": "trn_1a5f5e0c97",
"mode": "Test",
"status": "Pending",
"customer": {
"id": "cus_bf682a6c051145a09",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "NL",
"created": "2016-03-25T13:51:04.8497785Z"
},
"payment": {
"id": "pay_ffd25121f84e4d249",
"mode": "Test",
"paymentOption": "safetypay",
"holder": "John Doe",
"created": "2016-03-25T13:51:04.7717784Z"
},
"amount": 1700,
"currency": "EUR",
"merchantPassThruData": "Order #1234958",
"created": "2016-03-25T13:51:04.8497785Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"ipaddress": "123.01.1",
"redirectUrl": "http://mybankingsite.com/hRedirection.aspx?transaction_id=trn_1a5f5e0c97"
}
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthDate | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | safetypay |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
Santander
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "BR",
"phone": "+5500147258369"
},
"currency": "EUR",
"amount": 313,
"ipaddress": "72.201.94.150",
"payment": {
"holder": "John Doe",
"paymentOption": "Santander",
"DocumentId": "XXX.XXX.XXX"
},
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}
The above command returns JSON structured like this:
{
"id": "trn_a9cf2fb609434e",
"mode": "Live",
"status": "Pending",
"customer": {
"id": "cus_a6b47e15f17a4c0b9",
"mode": "Live",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "BR",
"phone": "+5500147258369",
"created": "2020-11-20T13:35:06.3542905Z"
},
"payment": {
"id": "pay_6b7036d90e3a449da",
"mode": "Live",
"paymentOption": "Santander",
"holder": "John Doe",
"created": "2020-11-20T13:35:06.2605426Z",
"ipAddress": "72.201.94.150"
},
"amount": 313.0,
"currency": "EUR",
"created": "2020-11-20T13:35:06.3386658Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"redirectUrl": "https://www.paygol.com/api/pay-direct/XXX-XXX-XXX",
"ipAddress": "72.201.94.150"
}
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | Santander |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
DocumentId | string | Customer’s Document Id | Mandatory |
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthday | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
SEPA
You must specify 'SEPA’ as a parameter for 'paymentOption’.
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "DE"
},
"payment": {
"paymentOption": "sepa",
"holder": "John Doe",
"iban": "DEST1000200030004000500"
},
"amount": 100,
"currency": "EUR",
"ipaddress": "123.01.1",
}
$customer = new \2000charge\Model\Customer();
$customer->setEmail("john@doe.com");
$customer->setcountry("DE");
$customer->setFirstName("John");
$customer->setLastName("Doe");
$payment = new \2000charge\Model\Payment();
$payment->setpaymentOption("sepa");
$payment->setHolder("John Doe");
$payment->setIBAN("DEST1000200030004000500");
$transaction = new \2000charge\Model\Transaction();
$transaction->setCustomer($customer);
$transaction->setPayment($payment);
$transaction->setAmount(100);
$transaction->setCurrency("EUR");
$transaction->setIpAddress($ipAddress);
$res = Transaction :: post($transaction);
2000charge.ApiUrl = _apiUrl;
var customer = new Customer();
customer.Email = "john@doe.com";
customer.FirstName = "John";
customer.LastName = "Doe";
customer.country = "DE";
var payment = new Payment();
payment.paymentOption = "sepa";
payment.IBAN = "DEST1000200030004000500";
payment.Holder = customer.FirstName + " " + customer.LastName;
var transaction = new Transaction();
transaction.Customer = customer;
transaction.Payment = payment;
transaction.Amount = 100;
transaction.Currency = "EUR";
customer = ApRubySdk::Customer.new(
'firstName' => 'John',
'lastName' => 'Doe',
'email' => 'john@doe.com',
'country' => 'DE'
)
payment = ApRubySdk::Payment.new(
'paymentOption' => 'sepa',
'holder' => 'John Doe',
'iban' => 'DEST1000200030004000500'
)
@transaction = ApRubySdk::Transaction.create(
'customer' => customer,
'payment' => payment,
'amount' => 500,
'currency' => 'EUR'
)
customer = Customer(
id='cus_bd838e3611d34d598',
firstName='John',
lastName='Doe',
email='john@doe.com',
country='DE'
)
payment = Payment(
paymentOption='sepa',
holder='John Doe',
iban='BE88271080782541'
)
return Transaction.create({
'customer': customer,
'payment': payment,
'amount': 500,
'currency': 'EUR',
'merchantPassThruData': 'test_sepa_123',
'iPAddress': '123.01.1'
})
The above command returns JSON structured like this:
{
"id": "trn_d12209838b",
"mode": "Test",
"status": "Pending",
"customer": {
"id": "cus_de0636cef44540a4a",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "DE",
"created": "2016-03-17T05:17:58.0438821Z"
},
"payment": {
"id": "pay_917a86ff369e4f8a9",
"mode": "Test",
"paymentOption": "sepa",
"holder": "John Doe",
"iban": "DE85XXXXX0817",
"bic": "SPAEAT2SXXX",
"created": "2016-03-17T05:17:58.0108663Z"
},
"amount": 500,
"ipaddress": "123.01.1",
"currency": "EUR",
"created": "2016-03-17T05:17:58.0388728Z"
}
ATTRIBUTES (for recuring payments)
Parameter | Type | Description | Requirement |
---|---|---|---|
isRecurring | string | Set if the transaction is recurring or not. Must be true for recurring payments |
Mandatory for recurring transactions |
initialTransactionId | string | transaction id of the first transaction in a series of recurring transactions | Mandatory for transaction that is part of a series of recurring transactions |
NOTE: If the transaction is sent without isRecuring
and initialTransactionId
parameters, it will be processed as a one-time transaction. For recurring transactions, you must use those parameters.
An initial transaction that is first in a series of recurring transactions must be sent with isRecuring
set to true
. For all subsequent transactions in the recuring series, you must use initialTransactionId
of the first transaction that is part of that series.
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthDate | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | sepa |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
iban | string | customer’s IBAN code | Mandatory |
PHONE VERIFICATION OBJECT
To create the transaction, phoneVerification
object must be sent, together with all other required objects.
For a detailed explanation how creating of the transaction with SMS verification works, find out more in section Phone Verification.
Phone verification is mandatory for SEPA only.
Parameter | Type | Description | Requirement |
---|---|---|---|
token | string | generated token | Mandatory |
pin | string | pin code received by SMS | Mandatory |
Servipag
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "CL"
},
"currency": "EUR",
"amount": 313,
"ipaddress": "72.201.94.150",
"payment": {
"holder": "John Doe",
"paymentOption": "servipag",
"DocumentId": "XXX.XXX.XXX"
},
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}
The above command returns JSON structured like this:
{
"id": "trn_a9cf2fb609434e",
"mode": "Live",
"status": "Pending",
"customer": {
"id": "cus_a6b47e15f17a4c0b9",
"mode": "Live",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "CL",
"created": "2020-11-20T13:35:06.3542905Z"
},
"payment": {
"id": "pay_6b7036d90e3a449da",
"mode": "Live",
"paymentOption": "servipag",
"holder": "John Doe",
"created": "2020-11-20T13:35:06.2605426Z",
"ipAddress": "72.201.94.150"
},
"amount": 313.0,
"currency": "EUR",
"created": "2020-11-20T13:35:06.3386658Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"redirectUrl": "https://www.paygol.com/api/pay-direct/XXX-XXX-XXX",
"ipAddress": "72.201.94.150"
}
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | servipag |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
DocumentId | string | Customer’s Document Id | Mandatory |
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthday | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
SOFORT Überweisung
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "DE"
},
"payment": {
"paymentOption": "sofortuberweisung",
"holder": "John Doe"
},
"amount": 100,
"currency": "EUR",
"ipaddress": "123.01.1",
"redirectUrls": {
"ReturnUrl":"http://2000charge.com/message/success.html",
"CancelUrl":"http://2000charge.com/message/failure.html"
}
}
The above command returns JSON structured like this:
{
"id": "trn_2bbcd34628",
"mode": "Test",
"status": "Pending",
"customer": {
"id": "cus_b9c6a32127724ffea",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "DE",
"created": "2016-03-25T14:04:41.7643102Z"
},
"payment": {
"id": "pay_f633ab65f86b4dac8",
"mode": "Test",
"paymentOption": "sofortuberweisung",
"holder": "John Doe",
"created": "2016-03-25T14:04:41.6863101Z"
},
"amount": 100,
"currency": "EUR",
"created": "2016-03-25T14:04:41.7643102Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"ipaddress": "123.01.1",
"redirectUrl": "http://checkout.nts.com/direction.aspx?transaction_id=trn_2688"
}
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthDate | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | sofortuberweisung |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
TrustPay
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "CZ"
},
"payment": {
"paymentOption": "trustpay",
"holder": "John Doe",
},
"amount": 100,
"currency": "EUR",
"ipaddress": "123.01.1",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}
$customer = new \2000charge\Model\Customer();
$customer->setEmail("john@doe.com");
$customer->setcountry("CZ");
$customer->setFirstName("John");
$customer->setLastName("Doe");
$payment = new \2000charge\Model\Payment();
$payment->setpaymentOption("trustpay");
$payment->setHolder("John Doe");
$redirect = new \2000charge\Model\RedirectUrls();
$redirect->setReturnUrl("http://2000charge.com/message/success.html");
$redirect->setCancelUrl("http://2000charge.com/message/failure.html");
$transaction = new \2000charge\Model\Transaction();
$transaction->setCustomer($customer);
$transaction->setPayment($payment);
$transaction->setRedirectUrls($redirect);
$transaction->setAmount(100);
$transaction->setCurrency("EUR");
$transaction->setIpAddress($ipAddress);
$res = Transaction :: post($transaction);
2000charge.ApiUrl = _apiUrl;
var customer = new Customer();
customer.Email = "john@doe.com";
customer.FirstName = "John";
customer.LastName = "Doe";
customer.country = "CZ";
var payment = new Payment();
payment.paymentOption = "trustpay";
payment.Holder = customer.FirstName + " " + customer.LastName;
var redirect = new RedirectUrls();
redirect.ReturnUrl = "http://2000charge.com/message/success.html"
redirect.CancelUrl = "http://2000charge.com/message/failure.html"
var transaction = new Transaction();
transaction.Customer = customer;
transaction.Payment = payment;
transaction.RedirectUrls = redirect;
transaction.Amount = 250;
transaction.Currency = "EUR";
transaction.Description = "Test transaction";
The above command returns JSON structured like this:
customer = ApRubySdk::Customer.new(
'firstName' => 'John',
'lastName' => 'Doe',
'email' => 'john@doe.com',
'country' => 'CZ'
)
payment = ApRubySdk::Payment.new(
'paymentOption' => 'trustpay',
'holder' => 'John Doe'
)
redirectUrls = ApRubySdk::RedirectUrls.new(
'returnUrl' => 'http://2000charge.com/message/success.html',
'cancelUrl' => 'http://2000charge.com/message/failure.html'
)
@transaction = ApRubySdk::Transaction.create(
'customer' => customer,
'payment' => payment,
'amount' => 500,
'currency' => 'EUR',
'redirectUrls' => redirectUrls
)
customer = Customer(
id='cus_bd838e3611d34d598',
firstName='John',
lastName='Doe',
email='john@doe.com',
country='CZ'
)
payment = Payment(
paymentOption='trustpay',
holder='John Doe'
)
redirectUrls = RedirectUrls(
returnUrl='http://2000charge.com/message/success.html',
cancelUrl='http://2000charge.com/message/failure.html'
)
return Transaction.create({
'customer': customer,
'payment': payment,
'amount': 500,
'currency': 'EUR',
'iPAddress': '123.01.1',
'redirectUrls': redirectUrls
})
The above command returns JSON structured like this:
{
"id": "trn_1a5f5e0c97",
"mode": "Test",
"status": "Pending",
"customer": {
"id": "cus_bf682a6c051145a09",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "CZ",
"created": "2016-03-25T13:51:04.8497785Z"
},
"payment": {
"id": "pay_ffd25121f84e4d249",
"mode": "Test",
"paymentOption": "trustpay",
"holder": "John Doe",
"created": "2016-03-25T13:51:04.7717784Z"
},
"amount": 1700,
"currency": "EUR",
"merchantPassThruData": "Order #1234958",
"created": "2016-03-25T13:51:04.8497785Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"ipaddress": "123.01.1",
"redirectUrl": "http://mybankingsite.com/hRedirection.aspx?transaction_id=trn_1a5f5e0c97"
}
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthDate | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | trustpay |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
Via Baloto
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "jane@doe.com",
"country": "CO"
},
"currency": "EUR",
"amount": 135,
"ipaddress": "72.201.94.150",
"payment": {
"holder": "John Doe",
"paymentOption": "Viabaloto",
"DocumentId": "XXX.XXX.XXX"
}
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}
The above command returns JSON structured like this:
{
"id": "trn_a9cf2fb609434e",
"mode": "Live",
"status": "Pending",
"customer": {
"id": "cus_a6b47e15f17a4c0b9",
"mode": "Live",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "CO",
"created": "2020-11-20T13:35:06.3542905Z"
},
"payment": {
"id": "pay_6b7036d90e3a449da",
"mode": "Live",
"paymentOption": "Viabaloto",
"holder": "John Doe",
"created": "2020-11-20T13:35:06.2605426Z",
"ipAddress": "72.201.94.150"
},
"amount": 135.0,
"currency": "EUR",
"created": "2020-11-20T13:35:06.3386658Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"redirectUrl": "https://www.paygol.com/api/pay-direct/XXX-XXX-XXX",
"ipAddress": "72.201.94.150"
}
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | Viabaloto |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
DocumentId | string | Customer’s Document Id | Mandatory |
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthday | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
Webpay
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "CL"
},
"currency": "EUR",
"amount": 313,
"ipaddress": "72.201.94.150",
"payment": {
"holder": "John Doe",
"paymentOption": "webpay",
"DocumentId": "XXX.XXX.XXX"
},
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}
The above command returns JSON structured like this:
{
"id": "trn_a9cf2fb609434e",
"mode": "Live",
"status": "Pending",
"customer": {
"id": "cus_a6b47e15f17a4c0b9",
"mode": "Live",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "CL",
"created": "2020-11-20T13:35:06.3542905Z"
},
"payment": {
"id": "pay_6b7036d90e3a449da",
"mode": "Live",
"paymentOption": "webpay",
"holder": "John Doe",
"created": "2020-11-20T13:35:06.2605426Z",
"ipAddress": "72.201.94.150"
},
"amount": 313.0,
"currency": "EUR",
"created": "2020-11-20T13:35:06.3386658Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
},
"redirectUrl": "https://www.paygol.com/api/pay-direct/XXX-XXX-XXX",
"ipAddress": "72.201.94.150"
}
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | webpay |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
DocumentId | string | Customer’s Document Id | Mandatory |
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthday | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
Retrieving Transaction ↓
curl https://api.2000charge.com/api/transactions/{Id} \
-u <WEBSITE_SECRET_KEY>:
$res = Transaction :: get("trn_543256467");
2000charge.ApiUrl = _apiUrl;
var id = "trn_543256467";
var result = 2000charge.Get(id).Result;
def index
if params[:transaction_id]
@transaction = ApRubySdk::Transaction.retrieve(params[:transaction_id])
end
end
transaction = Transaction.retrieve(transaction_id)
The above command returns JSON structured like this:
{
"id": "trn_326cf8bab3a742",
"mode": "Live",
"status": "Funded",
"customer": {
"id": "cus_0fe9bf220263461c9",
"mode": "Live",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"created": "2020-10-05T10:25:32.677Z"
},
"paymentId": "pay_b010589bb3f944a48",
"payment": {
"id": "pay_b010589bb3f944a48",
"mode": "Live",
"customerId": "cus_0fe9bf220263461c9",
"paymentOption": "Sofortuberweisung",
"holder": "John Doe",
"created": "2020-10-05T10:25:32.56Z",
"ipAddress": "77.46.149.145"
},
"amount": 100.0000,
"currency": "EUR",
"created": "2020-10-05T10:25:32.67Z",
"redirectUrl": "https://www.sofort.com/payment/go/e9b48f532274ae2626cf8be1339c8f8e01badaf2",
"ipAddress": "77.46.149.145",
"sequenceType": "OOFF"
}
Retrieves the details of a transaction using the identifier of the transaction (transaction id).
ATTRIBUTES
Parameter | Type | Description |
---|---|---|
id | string | Unique identifier of the transaction |
Request example
GET https://api.2000charge.com/api/transactions/trn_326cf8bab3a742
RESPONSE ATTRIBUTES
Parameter | Type | Description |
---|---|---|
id | string | Unique identifier for this transaction |
mode | Enum (Test, Live) | Indication if the transaction was created using Test or Live keys |
status | Enum | Identifies transaction status |
customer | customer object | Customer Object |
paymentId | string | Unique identifier for payment |
payment | payment object | Payment Object |
amount | integer | Transaction amount |
currency | string | Transaction currency |
created | string | UTC creation date |
redirectUrl | string | Redirection URL |
ipAddress | string | Customer IP address |
sequenceType | string | Sequence type |
Retrieve SCT and SDD
curl GET https://api.2000charge.com/api/sepa/transactions/?{offset}&{Limit}&{CreatedFrom}&{CreatedTo}&{UpdatedFrom}&{UpdatedTo}&{transactionStatus} \
-u <WEBSITE_SECRET_KEY>:
$res = Transaction :: get("trn_543256467");
2000charge.ApiUrl = _apiUrl;
var id = "trn_543256467";
var result = 2000charge.Get(id).Result;
def index
if params[:transaction_id]
@transaction = ApRubySdk::Transaction.retrieve(params[:transaction_id])
end
end
transaction = Transaction.retrieve(transaction_id)
The above command returns JSON structured like this:
{
"transactions": [
{
"id": "trn_123a4bc5678",
"status": "Pending",
"customer": {
"firstName": "John",
"lastName": "Doe",
"country": "DE",
"created": "2018-06-12T11:18:58.913Z"
},
"amount": 200,
"currency": "EUR",
"created": "2018-06-17T12:00:18.977Z",
"updated": "2018-06-17T12:00:21.537Z",
"type": "Sale"
},
{
"id": "trn_123a4bc5678",
"status": "Pending",
"customer": {
"firstName": "John",
"lastName": "Doe",
"country": "DE",
"created": "2018-06-12T11:18:58.913Z"
},
"amount": 200,
"currency": "EUR",
"created": "2018-06-16T12:00:22.147Z",
"updated": "2018-06-16T12:00:25.407Z",
"type": "Sale"
},
{
"id": "trn_123a4bc5678",
"status": "Pending",
"customer": {
"firstName": "John",
"lastName": "Doe",
"country": "DE",
"created": "2018-06-12T11:18:58.913Z"
},
"amount": 200,
"currency": "EUR",
"created": "2018-06-15T12:00:21.033Z",
"updated": "2018-06-15T12:00:23.803Z",
"type": "Sale"
},
{
"id": "trn_123a4bc5678",
"status": "Pending",
"customer": {
"firstName": "John",
"lastName": "Doe",
"country": "DE",
"created": "2018-06-12T11:18:58.913Z"
},
"amount": 200,
"currency": "EUR",
"created": "2018-06-14T12:00:26.197Z",
"updated": "2018-06-14T12:00:29.91Z",
"type": "Sale"
}
],
"pagination": {
"offset": 0,
"limit": 20,
"count": 4
}
}
Retrieves the details of SEPA Credit Transfers(SCT) and SEPA Direct Debit Transactions(SDD).
REQUEST ATTRIBUTES
Parameter | Type | Description | Requirement |
---|---|---|---|
Offset | string | Number of pages | Optional |
Limit | string | Upper Limit for transactions in response | Optional |
CreatedFrom | date | Created FROM date and time | Optional |
CreatedTo | date | Created TO date and time | Optional |
UpdatedFrom | date | Updated FROM date and time | Optional |
UpdatedTo | date | Updated TO date and time | Optional |
transactionStatus | string | Transaction status | Optional |
Request example
GET https://api.2000charge.com/api/sepa/transactions/?offset=0&Limit=1000&CreatedFrom=2018-06-01T13:21:42Z&CreatedTo=2018-06-12T15:21:42Z&transactionStatus=Funded
RESPONSE ATTRIBUTES
Parameter | Type | Description |
---|---|---|
id | string | Unique identifier for this transaction |
status | string | Transaction status |
merchantTransactionId | string | Reference ID |
firstName | string | Customer’s First Name |
lastName | string | Customer’s Last Name |
country | string | Customer’s country - ISO1 country Code |
created | date | Transaction created date and time |
updated | date | Transaction updated date and time |
type | string | Transaction type |
declineReason | string | Returned/Declined reason |
count | string | Total number of transaction |
TRANSACTION TYPES
Transaction Type | Data Type | Description |
---|---|---|
Sale | string | Debit transactions |
Transfer | string | Transfer transactions |
Refund | string | Refunded transactions |
Void | string | Voided transactions |
Returned | string | Returned transactions (CB, ISF, Invalid) |
Retrieve Refund
curl https://api.2000charge.com/api/transactions/{transactionId}/refunds/{refundId} \
-u <WEBSITE_SECRET_KEY>:
$res = Refund :: get("trn_d70bcef", "trn_543256467");
var result = 2000charge.Get<Refund>(code, parentCode).Result;
def index
if params[:refund_id] && params[:transaction_id]
@refund = ApRubySdk::Transaction.retrieve_refund(params[:refund_id], params[:transaction_id])
end
end
The above command returns JSON structured like this:
{
"id": "ref_f811756",
"mode": "Test",
"amount": 89.77,
"currency": "EUR",
"originalTransactionId": "trn_00dc520",
"originalTransaction": {
"id": "trn_00dc520",
"mode": "Test",
"status": "Refunded",
"customer": {
"id": "cus_0635336b935f4d14b",
"mode": "Test",
"firstName": "Jane",
"lastName": "Doe",
"email": "jane@doe.com",
"country": "DE",
"created": "2015-06-22T12:07:18.323Z"
},
"payment": {
"id": "pay_55e66facd4874733a",
"mode": "Test",
"customerId": "cus_0635336b935f4d14b",
"paymentOption": "sepa",
"holder": "John Doe",
"created": "2015-06-22T12:07:17.71Z"
},
"amount": 100,
"currency": "USD",
"created": "2015-06-22T12:07:18.32Z"
},
"created": "2015-06-23T12:46:10.917Z",
"status": "Approved"
}
Retrieves the details of an existing refund.
REQUEST
GET https://api.2000charge.com/api/{transactionId}/refunds/{refundId}
Retrieve Void
curl https://api.2000charge.com/api/transactions/{transactionId}/voids/{voidId} \
-u <WEBSITE_SECRET_KEY>:
$res = Void :: get("trn_f09f256", "trn_543256467"); //class, void transaction if, parent transaction id
var result = 2000charge.Get<VoidTransaction>(code, parentCode).Result;
def index
if params[:void_id] && params[:transaction_id]
@void = ApRubySdk::Transaction.retrieve_void(params[:void_id], params[:transaction_id])
end
end
void = Transaction.retrieve_void(void_id, transaction_id)
The above command returns JSON structured like this:
{
"id": "void_0a3f6b2",
"mode": "Test",
"amount": 4000,
"currency": "EUR",
"originalTransactionId": "trn_41f1487",
"originalTransaction": {
"id": "trn_41f1487",
"mode": "Test",
"status": "Voided",
"customer": {
"id": "cus_7f0724f3b1d745d49",
"mode": "Test",
"firstName": "Jane",
"lastName": "Doe",
"email": "jane@doe.com",
"country": "DE",
"created": "2015-06-24T11:46:35.303Z"
},
"payment": {
"id": "pay_13f3beaf091b43308",
"mode": "Test",
"customerId": "cus_7f0724f3b1d745d49",
"paymentOption": "sepa",
"holder": "John Doe",
"created": "2015-06-24T11:46:35.267Z"
},
"amount": 4000,
"currency": "EUR",
"created": "2015-06-24T11:46:35.303Z"
},
"created": "2015-06-24T11:47:30.68Z",
"status": "Approved"
}
Retrieves the details of an existing void.
ATTRIBUTES
Parameter | Type | Description |
---|---|---|
transactionId | string | Original transaction id |
REQUEST
GET https://api.2000charge.com/api/transactions/{transactionId}/voids/{voidId}
List Transactions ↓
-u <WEBSITE_SECRET_KEY>:
curl https://api.2000charge.com/api/transactions/
curl https://api.2000charge.com/api/transactions/?{offset}&{Limit}&{startDate}&{endDate}
$res = Transaction :: getAll();
2000charge.ApiUrl = _apiUrl;
var result = 2000charge.GetAll().Result;
def transactions
@transactions = ApRubySdk::Transaction.all
end
The above command returns JSON structured like this:
{
"transactions": [
{
"id": "trn_2bbcd34688",
"mode": "Test",
"status": "Pending",
"customer": {
"id": "cus_b9c6a32127724ecea",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "DE",
"created": "2016-03-25T14:04:41.763Z"
},
"payment": {
"id": "pay_f633ab65f86b4dac8",
"mode": "Test",
"customerId": "cus_b9c6a32127724ecea",
"paymentOption": "giropay",
"holder": "John Doe",
"created": "2016-03-25T14:04:41.687Z"
},
"amount": 23,
"currency": "EUR",
"merchantPassThruData": "order_242444",
"created": "2016-03-25T14:04:41.763Z",
"redirectUrl": "http://cichents.com/Tn.aspx?transaction_id=trn_2bbcd34688"
},
{
"id": "trn_1a5f5e0c97",
"mode": "Test",
"status": "Pending",
"customer": {
"id": "cus_bf682a6c051145a09",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "BE",
"created": "2016-03-25T13:51:04.85Z"
},
"payment": {
"id": "pay_ffd25121f84e4d249",
"mode": "Test",
"customerId": "cus_bf682a6c051145a09",
"paymentOption": "mistercash",
"holder": "Piet Saar",
"created": "2016-03-25T13:51:04.773Z"
},
"amount": 1700,
"currency": "EUR",
"merchantPassThruData": "ideal",
"created": "2016-03-25T13:51:04.85Z",
"redirectUrl": "http://ce.io/ion.aspx?ion_id=trn_1a5f5e0c97"
}
]
This API call returns a list of transactions created for a particular website.
Request examples
GET https://api.2000charge.com/api/transactions/
GET https://api.2000charge.com/api/transactions/?offset=1&Limit=1000&startDate=2017-08-07T11:14:09.5621581Z&endDate=2018-06-18T11:14:09.5621581Z
REQUEST ATTRIBUTES
Parameter | Type | Description |
---|---|---|
offset | string | Number of pages |
Limit | string | Upper Limit for transactions in response |
startDate | date | Created FROM date and time |
endDate | date | Created TO date and time |
RESPONSE ATTRIBUTES
Parameter | Type | Description |
---|---|---|
id | string | Unique identifier for the transaction |
mode | Enum (Test, Live) | Indication if the transaction was created using Test or Live keys |
status | Enum | Identifies transaction status |
customer | customer object | Customer object |
payment | payment object | Payment Object |
amount | integer | Transaction amount |
currency | string | ISO 4217 formatted currency code |
created | string | UTC creation date |
The above command returns JSON structured like this:
{
"transactions": [
{
"id": "trn_4e8dc68",
"mode": "Test",
"status": "Refunded",
"customer": {
"id": "cus_004259ff7622456fb",
"mode": "Test",
"firstName": "Jane",
"lastName": "Doe",
"email": "jane@doe.com",
"country": "DE",
"created": "2015-06-22T13:35:38.467Z"
},
"payment": {
"id": "pay_1ea32718e5664ae3b",
"mode": "Test",
"customerId": "cus_004259ff7622456fb",
"paymentOption": "sepa",
"holder": "John Doe",
"created": "2015-06-22T13:35:38.423Z"
},
"amount": 100,
"currency": "EUR",
"created": "2015-06-22T13:35:38.467Z"
},
{
"id": "trn_cc7e03d",
"mode": "Test",
"status": "Refunded",
"customer": {
"id": "cus_4130397035104ca38",
"mode": "Test",
"firstName": "Jane",
"lastName": "Doe",
"email": "jane@doe.com",
"country": "DE",
"created": "2015-06-22T13:39:10.547Z"
},
"payment": {
"id": "pay_1c45c65d5be24054a",
"mode": "Test",
"customerId": "cus_4130397035104ca38",
"paymentOption": "sepa",
"holder": "John Doe",
"created": "2015-06-22T13:39:10.493Z"
},
"amount": 100,
"currency": "USD",
"created": "2015-06-22T13:39:10.547Z"
},
{
"id": "trn_5032300",
"mode": "Test",
"status": "Pending",
"customer": {
"id": "cus_8bfb7b0f7f9843458",
"mode": "Test",
"firstName": "Jane",
"lastName": "Doe",
"email": "jane@doe.com",
"country": "DE",
"created": "2015-06-23T07:39:40.57Z"
},
"payment": {
"id": "pay_7f1dcd13f19c4963a",
"mode": "Test",
"customerId": "cus_8bfb7b0f7f9843458",
"paymentOption": "sepa",
"holder": "Jane Doe",
"created": "2015-06-23T07:39:40.517Z"
},
"amount": 100,
"currency": "USD",
"created": "2015-06-23T07:39:40.57Z"
}
]
}
List Voids
curl https://api.2000charge.com/api/transactions/{transactionId}/voids \
-u <WEBSITE_SECRET_KEY>:
$res = Void :: getAll("trn_543256467");
var result = 2000charge.GetAll<VoidTransaction>(parentCode).Result;
def voids
if params[:transaction_id]
@voids = ApRubySdk::Transaction.voids(params[:transaction_id])
end
end
The above command returns JSON structured like this:
{
"voidTransactions": [
{
"id": "void_0a3f6b2",
"mode": "Test",
"amount": 4000,
"currency": "EUR",
"reason": "Fraud",
"originalTransactionId": "trn_41f1487",
"originalTransaction": {
"id": "trn_41f1487",
"mode": "Test",
"status": "Voided",
"customer": {
"id": "cus_7f0724f3b1d745d49",
"mode": "Test",
"firstName": "Jane",
"lastName": "Doe",
"email": "jane@doe.com",
"country": "DE",
"created": "2015-06-24T11:46:35.303Z"
},
"payment": {
"id": "pay_13f3beaf091b43308",
"mode": "Test",
"customerId": "cus_7f0724f3b1d745d49",
"paymentOption": "sepa",
"holder": "Johny Smithy",
"created": "2015-06-24T11:46:35.267Z"
},
"amount": 4000,
"currency": "EUR",
"created": "2015-06-24T11:46:35.303Z"
},
"created": "2015-06-24T11:47:30.68Z",
"status": "Approved"
}
]
}
Retrieves a list of all voids for an existing transaction.
ATTRIBUTES
Parameter | Type | Description |
---|---|---|
transactionId | string | Original transaction id |
REQUEST
GET https://api.2000charge.com/api/transactions/{transactionId}/voids
Phone Verification ↓
SMS verification is a fraud control tool to help prevent fraudulent payments. Customers (consumers) need to enter a PIN number they receive on their mobile to complete the transaction. SMS verification is mandatory on SEPA but can be disabled on a case by case basis.
Please note that no SMS is sent when using a test API key. To proceed past PIN entry field to complete test enter the test PIN number 1234.
To request disabling SMS verification, please contact us.
It is necessary to use internationally-standardized format for all phone numbers, and it includes all the relevant information to route SMS messages globally. For example, in Germany, and many other countries internationally, local dialing requires the addition of a '0’ in front of the subscriber number. However, to use standardized formatting, this '0’ must be removed. A number such as 017 5555 5555 in the Germany would be formatted as +491755555555.
If you choose to integrate our API on your checkout page, we advise splitting the mobile number into two fields, country prefix, and mobile number. Check if the mobile number entered begins with 0. If the customer enters a mobile number that begins with 0, drop the 0. Append country prefix to the mobile number based on customer’s selection.
Here is an example of the best practice for requesting a mobile number from the consumer:
When the customer clicks the country selector, show a list of countries containing the flag, country name, and country prefix. Sorting A-Z is good, but it is recommended to show the most popular countries A-Z first, then a divider, then all other countries A-Z. The initially selected country should be the one that you get the most international traffic from, however, you can use any country you wish. We suggest not using the United States as the initially selected country, as most SEPA customers will not be in the US.
Here is a list of popular countries, however you can edit as desired:
Austria
Belgium
France
Germany
Greece
Ireland
Italy
Netherlands
Spain
Sweden
Switzerland
United Kingdom
United States of America
To help with the integration here are some helpful downloads:
- Zip file of all country flags
- csv file or json file of country codes and their country prefixes.
If you need further assistance, please do no hesitate to contact us.
Check SMS Verification
curl https://api.2000charge.com/api/websites/{publicKey}/paymentoptions/{paymentOption} \
-u <WEBSITE_SECRET_KEY>:
The above command returns JSON structured like this:
{
"id": "web_6547gfhu67yrru43",
"mode": "Test",
"hasSmsVerification": true,
"url": "http://www.mywebshop.com"
}
In response you will get hasSmsVerification
parameter. If value is true
, SMS verification is active on the business case.
Recieve PIN by SMS
curl https://api.2000charge.com/api/phoneverification \
-H "Content-Type:application/json" -X POST -d '
{
"key":"pk_live_cyelxxxxxxxxddddddddBQuFeAGDDNG",
"phone":"+15555555555"
}'
The above command returns JSON structured like this:
{
"mode": "Test",
"key": "pk_live_cyelxxxxxxxxddddddddBQuFeAGDDNG",
"type": "SMS",
"phone": "1555555555555",
"token": "8b340ecdfc63ccccccc1fe59310",
"created": "2016-05-26T00:25:55.6886656Z"
}
Before creating the transaction, API must send PIN code by SMS to customer’s phone. Customer will then receive pin code. You must send public key in the request using the key
parameter.
Token and Pin
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "DE"
},
"payment": {
"paymentOption": "sepa",
"holder": "John Doe",
"iban": "DEST1000200030004000500"
},
"amount": 100,
"currency": "EUR",
"ipaddress": "123.01.1",
"phoneverification":{
"token":"8b340ecdfc63ccccccc1fe59310",
"pin":"6010"
}
}
The above command returns JSON structured like this:
{
"id": "trn_d12209838b",
"mode": "Test",
"status": "Pending",
"customer": {
"id": "cus_de0636cef44540a4a",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "DE",
"created": "2016-03-17T05:17:58.0438821Z"
},
"payment": {
"id": "pay_917a86ff369e4f8a9",
"mode": "Test",
"paymentOption": "sepa",
"holder": "John Doe",
"iban": "DE85XXXXX0817",
"created": "2016-03-17T05:17:58.0108663Z"
},
"amount": 500,
"currency": "EUR",
"created": "2016-03-17T05:17:58.0388728Z",
"phoneverification":{
"token":"8b340ecdfc63ccccccc1fe59310",
"pin":"6010"
}
}
To create the transaction, phoneVerification
object must be sent, together with all other required objects.
ATTRIBUTES
Parameter | Type | Description |
---|---|---|
token | string | generated token |
pin | string | pin code received by SMS (range 1111-9999) |
Refund a Transaction
curl https://api.2000charge.com/api/transactions/{transactionId}/refunds \
-u <WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"reason": "FRAUD"
}'
$obj = new \2000charge\Model\RefundTransaction();
$obj->setReason(ReturnReason::UNSATISFIED_CUSTOMER);
$res = Refund :: post($obj, "trn_543256467");
var refund - new RefundTransaction(){
Reason = "unsatisfied customer"
};
var result = 2000charge.Post<RefundTransaction>(refund, "Parent_code");
def create
refund = ApRubySdk::Transaction.refund(ApRubySdk::RefundReason::FRAUD, params[:transaction_id])
flash[:notice] = refund.to_json
redirect_to new_refund_url
end
refund = Transaction.refund(RefundReason.FRAUD, transaction_id);
The above command returns JSON structured like this:
{
"id": "ref_f811756",
"mode": "Test",
"amount": 89.77,
"currency": "EUR",
"reason": "FRAUD",
"originalTransactionId": "trn_00dc520",
"originalTransaction": {
"id": "trn_00dc520",
"mode": "Test",
"status": "Refunded",
"customer": {
"id": "cus_0635336b935f4d14b",
"mode": "Test",
"firstName": "Jane",
"lastName": "Doe",
"email": "jane@doe.com",
"country": "DE",
"created": "2015-06-22T12:07:18.323Z"
},
"payment": {
"id": "pay_55e66facd4874733a",
"mode": "Test",
"customerId": "cus_0635336b935f4d14b",
"paymentOption": "sepa",
"holder": "John Doe",
"created": "2015-06-22T12:07:17.71Z"
},
"amount": 100,
"currency": "USD",
"created": "2015-06-22T12:07:18.32Z"
},
"created": "2015-06-23T12:46:10.9169922Z",
"status": "Approved"
}
Refunds a transaction that has been created previously.
ATTRIBUTES
Parameter | Type | Description |
---|---|---|
reason | string | Reason for the refund, from predefined list |
REFUND REASONS
Parameter | Description |
---|---|
CHARGEBACK_AVOIDANCE | Chargeback avoidance |
END_USER_ERROR | End user error |
FRAUD | Fraud |
UNSATISFIED_CUSTOMER | Unsatisfied customer |
INVALID_TRANSACTION | Invalid transaction |
MERCHANT_REQUEST | Merchant request |
MANAGEMENT_REQUEST | Management request |
DUPLICATED | Duplicated |
REQUEST
POST https://api.2000charge.com/api/transactions/{transactionId}/refunds
Void a Transaction
curl https://api.2000charge.com/api/transactions/{transactionId}/voids \
-u <WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"reason": "FRAUD"
}'
$obj = new \2000charge\Model\VoidTransaction();
$obj->setReason(ReturnReason::UNSATISFIED_CUSTOMER);
$res = Void :: post($obj, "trn_543256467");
var void - new VoidTransaction(){
Reason = "unsatisfied customer"
};
var result = 2000charge.Post<VoidTransaction>(void, "Parent_code");
def create
void = ApRubySdk::Transaction.void(ApRubySdk::RefundReason::FRAUD, params[:transaction_id])
flash[:notice] = void.to_json
redirect_to new_void_url
end
void = Transaction.void(RefundReason.FRAUD, transaction_id);
The above command returns JSON structured like this:
{
"id": "void_0a3f6b2",
"mode": "Test",
"amount": 4000,
"currency": "EUR",
"reason": "FRAUD",
"originalTransactionId": "trn_41f1487",
"originalTransaction": {
"id": "trn_41f1487",
"mode": "Test",
"status": "Voided",
"amount": 4000,
"currency": "EUR",
"created": "2015-06-24T11:46:35.303Z"
},
"created": "2015-06-24T11:47:30.6806641Z",
"status": "Approved"
}
Void created transaction.
ATTRIBUTES
Parameter | Type | Description |
---|---|---|
reason | string | Reason for void, from predefined list |
REQUEST
POST https://api.2000charge.com/api/transactions/{transactionId}/voids
Transfer
The transfer is a transaction that credits recipient’s account and is initiated by the Merchant.*
Create Transfer
curl https://api.2000charge.com/api/transfers -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"sender": {
"firstName": "Jane",
"lastName": "Doe",
"email": "jane@doe.com",
"country": "DE"
},
"recipient": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "DE",
"payment": {
"holder": "John Doe",
"paymentOption": "sepa",
"iban": "BE88XXXXX2541"
}
},
"currency": "EUR",
"amount": 100,
"ipaddress": "123.01.1"
}
The above command returns JSON structured like this:
{
"id": "tsf_f7614deaf8f6",
"mode": "Test",
"status": "Approved",
"recipient": {
"id": "cus_a8b90e060ec34544b",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "DE",
"payment": {
"id": "pay_781860822f034b1d9",
"mode": "Test",
"paymentOption": "sepa",
"holder": "John Doe",
"iban": "BE88XXXXX2541",
"bic": "GEBABEBBXXX",
"created": "2017-03-27T11:18:16.3857116Z",
"ipAddress": "123.01.1"
},
"created": "2017-03-27T11:18:16.4177116Z"
},
"sender": {
"mode": "Test",
"firstName": "Jane",
"lastName": "Doe",
"email": "jane@doe.com",
"country": "DE",
"created": "0001-01-01T00:00:00Z"
},
"amount": 100,
"currency": "EUR",
"created": "2017-03-27T11:18:16.4157111Z",
"ipAddress": "123.01.1"
}
To create a transfer you must send recipient and sender objects. Recipient’s account will be credited for a set amount, but if you want to debit Sender’s account, you must make separate debit transaction API call.
ATTRIBUTES
SENDER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Sender’s First Name | Mandatory |
lastName | string | Sender’s Last Name | Mandatory |
string | Sender’s Email | Mandatory | |
country | string | Sender’s country - ISO1 country Code | Mandatory |
You must send sender’s object which represents information of the transaction sender. This will not automatically create a debit transaction, you must make that transaction separately.
RECIPIENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Recipient’s First Name | Mandatory |
lastName | string | Recipient’s Last Name | Mandatory |
country | string | Recipient’s country - ISO1 country Code | Mandatory |
payment | Payment object | Payment object | Mandatory |
PAYMENT OBJECT ( to be sent in Recipient object)
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | Payment Option | Mandatory |
holder | string | Recipient’s First and Last Name | Mandatory |
iban | string | Recipient’s IBAN code | Mandatory |
Plans and Subscriptions
A subscription is defined as the association of a customer with a plan. It is used for recurring billing.
Create Plan
curl https://api.2000charge.com/api/plans -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"name": "Gold Unlimited",
"description": "Monthly subscription to Gold Plan - 1 year",
"amount": 1000,
"currency": "EUR",
"IntervalUnit": "Month",
"IntervalCount": 1,
"billingCycles": 12,
"isConversionRateFixed": true,
"ipAddress": "123.01.1",
"trialPeriod": 7
}'
The above command returns JSON structured like this:
{
"id": "pln_7021187813bb",
"mode": "Test",
"name": "Gold Unlimited",
"description": "Monthly subscription to Gold Plan - 1 year",
"amount": 1000,
"currency": "EUR",
"intervalUnit": "Month",
"intervalCount": 1,
"billingCycles": 12,
"trialPeriod": 7,
"isConversionRateFixed": true,
"ipAddress": "123.01.1"
}
A subscription plan contains the pricing information for different products or features. The plan can be reused by assigning different customers and/or payment data.
ATTRIBUTES
Parameter | Type | Description | Requirement |
---|---|---|---|
name | string | User-friendly label for the plan | Mandatory |
description | string | User-friendly description (verbose). | Mandatory |
amount | integer | what the customer will be charged per subscription per interval | Mandatory |
currency | string | Currency in which customer will be charged in | Mandatory |
intervalUnit | integer | the billing period for the plan, which can range from a single day to a year. The intervalUnit options are: day , week , month , or year . |
Mandatory |
intervalCount | integer | Number which defines when the charge will be created, based on the selected period. | Mandatory |
billingCycles | integer | Number of times plan is to be executed and recurring transaction created. | Mandatory |
trialPeriod | integer | Trial period in days before the first transaction is created. | Optional |
isConversionRateFixed | boolean | Option to set if transaction will be charged in original (fixed) exchange rate, or each time transaction is created it will be recalculated using current exchange rate: true or false |
Optional |
ipAddress | string | IP Address | Mandatory |
Deactivate a Plan
curl https://api.2000charge.com/api/plans/pln_7021187813bb -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X DELETE -d '
{
"cancelSubscriptions":false
}'
The above command returns JSON structured like this:
{
"id": "pln_7021187813bb",
"mode": "Test",
"name": "Gold Unlimited",
"description": "Monthly subscription to Gold Plan - 1 year",
"amount": 1000,
"currency": "EUR",
"intervalUnit": "Month",
"intervalCount": 1,
"billingCycles": 12,
"trialPeriod": 7,
"isConversionRateFixed": true,
"status": "Inactive",
"created": "2016-12-01T09:42:25.207Z",
"cancelSubscriptions": false
}
You can deactivate a plan, with an option to either cancel all associated subscriptions or leaving all associated subscription to be active until they expire. Please keep in mind, you need to pass cancelSubscriptions
parameter.
ATTRIBUTES
Parameter | Type | Description | Requirement |
---|---|---|---|
cancelSubscriptions | boolean | Option to either cancel all associated subscriptions or not. Can be true or false |
Mandatory |
Update a Plan
curl https://api.2000charge.com/api/plans/pln_7021187813bb -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X PUT -d '
{
"name": "Gold One Year",
"description": "Monthly subscription to Gold One Year Plan - for one year!"
}'
The above command returns JSON structured like this:
{
"id": "pln_7021187813bb",
"mode": "Test",
"name": "Gold One Year",
"description": "Monthly subscription to Gold One Year Plan - for one year!",
"amount": 1000,
"currency": "EUR",
"intervalUnit": "Month",
"intervalCount": 1,
"isConversionRateFixed": true,
"created": "2016-12-01T12:56:35.09Z",
"cancelSubscriptions": false
}
You can edit existing plan, but you can only edit name and description. If you want to edit, for example, amount, you must create a new plan and subscribe your customers to it.
ATTRIBUTES
Parameter | Type | Description | Requirement |
---|---|---|---|
name | string | User-friendly label for the plan | Optional |
description | string | User-friendly description (verbose) | Optional |
Retrieve a Plan
curl https://api.2000charge.com/api/plans/pln_7021187813bb -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X GET -d
The above command returns JSON structured like this:
{
"id": "pln_7021187813bb",
"mode": "Test",
"name": "Gold One Year",
"description": "Monthly subscription to Gold One Year Plan - for one year!",
"amount": 1000,
"currency": "EUR",
"intervalUnit": "Month",
"intervalCount": 1,
"isConversionRateFixed": true,
"created": "2016-12-01T12:56:35.09Z",
"ipAddress": "123.01.1"
}
You can retrieve plan information in the API request.
Create Subscription
curl https://api.2000charge.com/api/subscriptions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"payment": {
"holder": "John Doe",
"paymentOption": "SEPA",
"iban": "DE8937040xxxxx13000"
},
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "DE"
},
"planId": "pln_41cd17a5fe13",
"ipAddress": "123.01.1",
"quantity": 2,
"phoneverification":{
"token":"1d91d2083c5d4xxxbb424798c2fafdca",
"pin":"9411"
}
}
The above command returns JSON structured like this:
{
"id": "sbs_e71bbe5375af",
"mode": "Test",
"planId": "pln_7021187813bb",
"customerId": "cus_5210f6ee95c445f5a",
"customer": {
"id": "cus_5210f6ee95c445f5a",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "DE",
"created": "2016-12-01T10:40:34.258387Z"
},
"payment": {
"id": "pay_7c3a29e41fba4171a",
"mode": "Test",
"paymentOption": "sepa",
"holder": "John Doe",
"iban": "DEST1000200030004000500",
"bic": "ABNANL2AXXX",
"created": "2016-12-01T10:40:34.2243803Z"
},
"amount": 0,
"isConversionRateFixed": false,
"quantity": 2,
"currentBillingCycle": 0,
"ipAddress": "123.01.1",
"status": "Trial",
"created": "2016-12-01T10:40:34.3693928Z",
"phoneVerification": {
"pin": "1212",
"token": "1d91d2083c5dxxxx24798c2fafdca"
}
}
After creating a plan and collecting customer’s data, next step is to subscribe customers to plans.
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthDate | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | sepa |
Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
iban | string | customer’s IBAN code | Mandatory |
PHONE VERIFICATION OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
token | string | generated token | Mandatory |
pin | string | pin code received by SMS | Mandatory |
Retrieve a Subscription
curl https://api.2000charge.com/api/subscriptions/sbs_b9a2ba8b8285 -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X GET -d '
'
The above command returns JSON structured like this:
{
"id": "sbs_b9a2ba8b8285",
"mode": "Test",
"planId": "pln_e06119d1c5ab",
"plan": {
"id": "pln_e06119d1c5ab",
"mode": "Test",
"name": "Gold Unlimited",
"description": "Monthly subscription to Gold Plan - 1 year",
"amount": 1000,
"currency": "EUR",
"intervalUnit": "Month",
"intervalCount": 1,
"billingCycles": 12,
"trialPeriod": 7,
"isConversionRateFixed": true,
"status": "Active",
"ipAddress": "123.01.1",
"created": "2016-12-01T13:25:53.797Z",
"cancelSubscriptions": false
},
"customerId": "cus_f2043b2a4d7f4da99",
"customer": {
"id": "cus_f2043b2a4d7f4da99",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"created": "2016-12-01T13:26:03.363Z"
},
"paymentId": "pay_aa3xd2cd1aaa49528",
"payment": {
"id": "pay_aa33d2cd1aaa49528",
"mode": "Test",
"holder": "John Doe",
"created": "2016-12-01T13:26:03.34Z"
},
"amount": 2000,
"currency": "EUR",
"isConversionRateFixed": true,
"quantity": 2,
"trialEndDate": "2016-12-08T13:26:03.417Z",
"nextRecurringDate": "2016-12-08T13:26:03.417Z",
"currentBillingCycle": 0,
"ipAddress": "123.01.1",
"status": "Trial",
"created": "2016-12-01T13:26:03.417Z"
}
You can retrieve subscription information in the API request.
Cancel a Subscription
curl https://api.2000charge.com/api/subscriptions/sbs_b9a2ba8b8285 -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X DELETE -d '
{
"CancelationReason":"END_USER_ERROR"
}
The above command returns JSON structured like this:
{
"id": "sbs_a31ba70dcb4e",
"mode": "Live",
"planId": "pln_19f8cab8a077",
"plan": {
"id": "pln_19f8cab8a077",
"mode": "Live",
"name": "Payment Plan Name",
"description": "Payment Plan Description",
"amount": 1,
"currency": "EUR",
"intervalUnit": "Day",
"intervalCount": 1,
"billingCycles": 365,
"trialPeriod": 0,
"isConversionRateFixed": true,
"status": "Active",
"created": "2021-10-05T13:40:09.037Z",
"cancelSubscriptions": false
},
"customerId": "cus_c636c5c2ac974ad29",
"customer": {
"id": "cus_c636c5c2ac974ad29",
"mode": "Live",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"created": "2021-10-22T12:48:43.837Z"
},
"paymentId": "pay_18133c15b8d04b1da",
"payment": {
"id": "pay_18133c15b8d04b1da",
"mode": "Live",
"customerId": "cus_c636c5c2ac974ad29",
"paymentOption": "SEPA",
"holder": "John Doe",
"created": "2021-10-22T12:48:43.83Z",
"mandateID": "bcb592dcb5fc4b",
"mandateDateOfSignature": "10/22/2021"
},
"amount": 6,
"currency": "EUR",
"isConversionRateFixed": true,
"quantity": 6,
"intervalStartDate": "2021-10-22T12:48:43.85Z",
"nextRecurringDate": "2021-10-23T12:48:43.85Z",
"currentBillingCycle": 1,
"ipAddress": "123.01.1",
"status": "Canceled",
"created": "2021-10-22T12:48:43.85Z"
}
You can cancel a existing active subscription via API request.
Hosted Page
You can create the transaction using our hosted page. When the transaction is created, you will receive redirect URL in redirectUrl
, on which your customer should be redirected and where payment option can be selected to complete the payment.
Create Transaction
curl https://api.2000charge.com/api/transactions/hosted -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"Customer":{
"FirstName":"John",
"LastName":"Doe",
"Email":"john@doe.com",
"Country":"NL"
},
"Amount":200,
"Currency":"EUR",
"ipAddress":"123.01.1",
"RedirectUrls":{
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}'
The above command returns JSON structured like this:
{
"id": "trn_6a013b5221a7",
"mode": "Test",
"status": "Created",
"customer": {
"id": "cus_aacd0143efd349dd9",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "NL",
"created": "2017-04-03T14:18:24.1812715Z"
},
"amount": 200,
"currency": "EUR",
"created": "2017-04-03T14:18:24.2332783Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/message/success.html",
"cancelUrl": "http://2000charge.com/message/message/failure.html"
},
"redirectUrl": "https://checkout.2000charge.com/payment?id=8bf6dcxxxxxxxxxxxx8bdbb2",
"ipAddress": "123.01.1"
}
To create the transaction using hosted page option you must send required parameters, which also include price, amount, customer’s email and customer’s country. They can’t be changed later on the hosted page.
We also give you the possibility of using a hosted page with previously set payment option on the initial API request. Please keep in mind, if the payment option is sent in the payment object, it cannot be changed later on the hosted page.
ATTRIBUTES
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Sender’s First Name | Mandatory |
lastName | string | Sender’s Last Name | Mandatory |
string | Sender’s Email | Mandatory | |
country | string | Sender’s country - ISO1 country Code | Mandatory |
Parameter | Type | Description | Requirement |
---|---|---|---|
amount | integer | The used amount (calculated in cents) | Mandatory |
currency | string | ISO 4217 formatted currency code | Mandatory |
ipAddress | string | Customer’s IP address | Mandatory |
merchantPassThruData | string | Merchant’s Identification | Optional *Originating URL is required to be sent if you are an IPSP or service provider |
returnUrl | string | url that customer is redirected to after successful payment | Mandatory |
cancelUrl | string | url that customer is redirected to on aborted payment | Mandatory |
paymentOption | string | Payment Option | Optional |
Create Subscription
curl https://api.2000charge.com/api/subscriptions/hosted -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"planId":"pln_41cd17a123",
"quantity":1,
"customer":{
"firstName":"John",
"lastName":"Doe",
"email":"john@doe.com",
"country":"DE",
"city":"City12",
"zip":"1007",
"address":"address line 1",
"address2":"address line 2"
},
"ipAddress":"123.01.1",
"redirectUrls":{
"returnUrl":"http://2000charge.com/message/success.html",
"cancelUrl":"http://2000charge.com/message/failure.html"
},
"merchantPassThruData":"merchant data",
"payment":{
"mandateId":"1234",
"mandateDateOfSignature":"09/08/2020"
}
}'
The above command returns JSON structured like this:
{
"id":"sbs_e71bb123",
"mode":"Test",
"planId":"pln_7021187813bb",
"amount":100,
"currency":"EUR",
"isConversionRateFixed":false,
"quantity":1,
"ipAddress":"123.01.1",
"created":"2020-12-01T10:40:34.3693928Z",
"customer":{
"firstName":"John",
"lastName":"Doe",
"email":"john@doe.com",
"country":"DE",
"address":"address line 1",
"address2":"address line 2"
},
"redirectUrls":{
"returnUrl":"http://2000charge.com/message/success.html",
"cancelUrl":"http://2000charge.com/message/failure.html"
},
"redirectUrl":"https://checkout.2000charge.com/subscription?id=8bf6dcxxxxxxxxxxxx8bdbb2",
"merchantPassThruData":"custom data"
}
To create the subscription using the hosted page you must send required parameters, such as customer’s email, payment plan identification code and customer’s IP address. Optional parameters can be later changed on the hosted page.
ATTRIBUTES
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Senders First Name | Optional |
lastName | string | Senders Last Name | Optional |
string | Senders Email | Optional | |
country | string | Senders country - ISO1 country Code | Optional |
city | string | Senders city | Optional |
zip | string | Secondary zip code | Optional |
address | string | Senders address line | Optional |
address2 | string | Secondary senders address line | Optional |
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
mandateId | string | Unique mandate identifier | Optional |
mandateDateOfSignature | string | Mandate signature date | Optional |
Parameter | Type | Description | Requirement |
---|---|---|---|
planId | string | A unique payment plan identifier | Mandatory |
quantity | integer | Amount of items in related subscription | Optional |
customer | obejct | Object that contains customer data | Optional |
ipAddress | string | Customer’s IP address | Mandatory |
merchantPassThruData | string | Merchant’s Identification | Optional *Originating URL is required to be sent if you are an IPSP or service provider |
returnUrl | string | url that customer’s is redirected to after successful payment | Mandatory |
cancelUrl | string | url that customer’s is redirected to on aborted or failed payment | Mandatory |
payment | object | url that customer is redirected to on aborted or failed payment | Optional |
DPMax - Open Banking
Introduction
DPMax represents our dedication to continue providing our clients with the best in class service based on the PSD2 Open Banking concept. With “Pay by Bank” functionality, customers can seamlessly initiate payments upon purchase, directly debiting funds from their accounts. DPMax stands out as the optimal choice for businesses seeking maximum coverage and redundancy, leveraging the advantages of Open Banking
Creating DPMax transaction
There are 3 options for creating DPMax transaction: Checkout page, Widget and custom UI
Using Checkout page
curl https://api.2000charge.com/api/transactions/hosted -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"Customer":{
"FirstName":"John",
"LastName":"Doe",
"Email":"john@doe.com",
"Country":"NL"
},
"payment" : {
"paymentOption":"DirectPayMax"
},
"Amount":200,
"Currency":"EUR",
"ipAddress":"123.01.1",
"RedirectUrls":{
"returnUrl": "http://2000charge.com/message/success.html",
"cancelUrl": "http://2000charge.com/message/failure.html"
}
}'
The above command returns JSON structured like this:
{
"id": "trn_6a013b5221a7",
"mode": "Test",
"status": "Created",
"customer": {
"id": "cus_aacd0143efd349dd9",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "NL",
"created": "2017-04-03T14:18:24.1812715Z"
},
"amount": 200,
"currency": "EUR",
"created": "2017-04-03T14:18:24.2332783Z",
"redirectUrls": {
"returnUrl": "http://2000charge.com/message/message/success.html",
"cancelUrl": "http://2000charge.com/message/message/failure.html"
},
"redirectUrl": "https://checkout.2000charge.com/payment?id=8bf6dcxxxxxxxxxxxx8bdbb2",
"ipAddress": "123.01.1"
}
You can create the transaction using our hosted page. When the transaction is created, you will receive redirect URL, on which your customer should be redirected.
ATTRIBUTES
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Sender’s First Name | Mandatory |
lastName | string | Sender’s Last Name | Mandatory |
string | Sender’s Email | Mandatory | |
country | string | Sender’s country - ISO1 country Code | Mandatory |
PAYMENT OBJECT
Parameter | Type | Value | Description | Requirement |
---|---|---|---|---|
paymentOption | string | DirectPayMax | Payment Option | Mandatory |
Parameter | Type | Description | Requirement |
---|---|---|---|
amount | integer | The used amount (calculated in cents) | Mandatory |
currency | string | ISO 4217 formatted currency code | Mandatory |
ipAddress | string | Customer’s IP address | Mandatory |
merchantPassThruData | string | Merchant’s Identification | Optional *Originating URL is required to be sent if you are an IPSP or service provider |
returnUrl | string | url that customer is redirected to after successful payment | Mandatory |
cancelUrl | string | url that customer is redirected to on aborted payment | Mandatory |
Using Widget
SDK available for widget: dotNet, Java, Python, Ruby, PHP
PHP SDK Setup
Install
After creating a test account download and extract ttc-php-sdk to your server from the link - ttc-php-sdk
API keys
Locate the ttc-php-sdk/TwoThousandCharge.php file and insert your Public and Secret API keys. You must insert your API keys. After the registration process you will be provided with the API Test Keys and API Production Keys, the parameters needed to start accepting payments through our payment system.
NOTE: Production API Keys are avaliable once you are verified, and are used to proccess live transactions.
Include the following code to your page
Insert the script below before the opening tag of your webpage, ie
<!DOCTYPE html>
<html>
<?php require_once 'ttc-php-sdk/TwoThousandCharge.php';
$product_data = (object) array(
'currency' => "USD";
'amount' => "125.00";
'productDescription' => "Red T-shirt";
'formPost' => isset($_POST) ? $_POST : '',
'successUrl' => "https://2000charge.com/message/success.html";
'cancelUrl' => "https://2000charge.com/message/failure.html";
);
$transaction_status = $TwoThousandCharge->transaction($product_data);
?>
If Windows hosting and using SSL
After line 178 in ttc-php-sdk/lib/TwoThousandCharge/request.php you will see:
$curl = curl_init($url);
/* Begin windows ssl line. This next line is for windows ssl. remove if not on windows using ssl */
/* curl_setopt($curl, CURLOPT_CAINFO, 'C:\Program Files(x86)\PHP\v5.6\extras\ssl\curl-ca-bundle.crt'); */
/* end windows using ssl */
Line 180 needs to be enabled and pointing to your .crt file if you are in a Windows hosting environment and using SSL.
Webpage Setup
Insert the scripts below before the closing tag of your webpage:
<script> var AP_BUTTONS = ['PaymentButton1']; </script>
<script src="https://widget.2000charge.com/v22k/js/payment-button.js" type="text/javascript"></script>
You are required to embed the payment widget code to your page:
<form method="post">
<div
data-ttc-amount="<?php echo $product_data->amount; ?>"
data-ttc-button-text="Pay using 2000Charge Widget"
data-ttc-company-name="YourCompanyName"
data-ttc-currency="<?php echo $product_data->currency; ?>"
data-ttc-description="<?php echo $product_data->productDescription; ?>"
data-ttc-extra="Additional description"
data-ttc-public-key="<?php echo $TwoThousandCharge->getPublicKey(); ?>"
data-ttc-setup="SET_FORM_VALUES"
data-ttc-paymentoption="directpaymax"
id="PaymentButton1">
</div>
</form>
Using Custom UI
For custom UI, direct API call should be used:
List of Institutions
In order to process DPMax transactions by using personalized UI, it is possible to retrieve a list of supported institutions with important parameters for these institutions (for example: Is PsuId required and in which format it is)
Get List of Institutions by country ISO code
curl https://api.2000charge.com/api/institutions/getInstitutionsForCountry/{countryIsoCode} -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X GET'
The above command returns JSON structured like this:
{
"institutions": [
{
"id": 7,
"name": "Unicajabanco",
"code": "UCJAES2MXXX",
"isPSUIdRequired": false
},
{
"id": 7,
"name": "CAJA DUERO",
"code": "UCJAES2MXXX",
"isPSUIdRequired": false
}
...
]
}
This endpoint will return all available institutions for specific country
Processing the transaction
For processing the transaction RedirectUrl parameter from API response should be used
Preauthorization
Create preauthorization
curl https://api.2000charge.com/api/preauthorizations -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer":{
"firstName":"John",
"lastName":"Doe",
"email":"john@doe.com",
"country":"US"
},
"payment":{
"paymentOption":"creditcard",
"holder":"John Doe",
"creditCardNumber":"4111111111111111",
"creditCardType":"visa",
"CVV2":"222",
"expirationYear":"2019",
"expirationMonth":"12"
},
"amount":1500,
"currency":"EUR"
}'
The above command returns JSON structured like this:
{
"id": "preauth_ee146f5315",
"mode": "Test",
"status": "Approved",
"customer": {
"id": "cus_67c05d47ed624db9b",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "US",
"created": "2016-05-19T08:20:47.771416Z"
},
"payment": {
"id": "pay_d893e7074c6441349",
"mode": "Test",
"paymentOption": "creditcard",
"creditCardType":"visa",
"holder": "John Doe",
"created": "2016-05-19T08:20:47.7549104Z",
"creditCardNumber": "XXXXXXXXXXX1111",
"expirationMonth": 12,
"expirationYear": 2019
},
"amount": 1500,
"currency": "EUR",
"created": "2016-05-19T08:20:47.7679118Z"
}
For payment options that support this (like Credit Card), you can reserve the amount from the client’s credit card, and later execute sale transaction itself. First, you will need to create preauth
transaction, and after receiving transaction.approved
event from that preauth
transaction, capture full amount of that preauthorized transaction.
PAYMENT OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | Payment Option | Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
creditCardNumber | string | Customer’s CC number | Mandatory |
CVV2 | string | Credit Card CVV2 number | Mandatory |
expirationYear | integer | Expiry year of the credit card | Mandatory |
expirationMonth | integer | Expiry month of the credit card | Mandatory |
creditCardType | string | Type of credit card | Mandatory |
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthDate | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
Capturing preauthorization
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer":{
"firstName":"John",
"lastName":"Doe",
"email":"john@doe.com",
"country":"US"
},
"Preauthorization": "preauth_ee146f5315",
"amount":1500,
"currency":"EUR"
}
The above command returns JSON structured like this:
{
"id": "trn_f7cb2b6631",
"mode": "Test",
"status": "Funded",
"customer": {
"id": "cus_ecaec09a0776434ea",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "US",
"created": "2016-05-19T08:18:51.1610893Z"
},
"payment": {
"id": "pay_b8bc6359ef1b4e4da",
"mode": "Test",
"paymentOption": "creditcard",
"holder": "John Doe",
"created": "2016-05-19T08:18:51.1298382Z",
"creditCardNumber": "XXXXXXXXXXX1111",
"expirationMonth": 12,
"expirationYear": 2019
},
"amount": 1500,
"currency": "EUR",
"created": "2016-05-19T08:18:51.1610893Z",
"preauthorization": "preauth_ee146f5315"
}
When preauthorization transaction is made, you must use its id to capture amount previously reserved. For preauthorization transaction, you will receive transaction.approved
event to indicate when the amount can be captured.
CUSTOMER OBJECT
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | Customer’s First Name | Mandatory |
lastName | string | Customer’s Last Name | Mandatory |
string | Customer’s Email | Mandatory | |
address | string | Customer’s address - Street Name | Optional |
address2 | string | Customer’s address - Street Number | Optional |
city | string | Customer’s city | Optional |
zip | string | Customer’s city Postal Code | Optional |
state | string | Customer’s state - 2 letter code | Optional |
country | string | Customer’s country - ISO1 country Code | Mandatory |
birthDate | date | Customer’s birthday - MM/DD/YYYY | Optional |
phone | string | Customer’s phone Number | Optional |
Tokens
If you want to process transactions or collect personally identifiable information without having to store locally sensitive data on your server, you can use the tokenization process. If you’re accepting credit cards, tokenization must be used to be PCI compliant.
You can create tokens using your Public API key. They should not be stored, and they can not be re-used. To re-use payment information, please see Payment Object section.
Create Token
curl https://api.2000charge.com/api/tokens -u \
<WEBSITE_PUBLIC_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"paymentOption":"creditcard",
"holder":"John Doe",
"creditCardNumber":"4111111111111111",
"CVV2":"222",
"creditCardType":"visa",
"expirationYear":"2019",
"expirationMonth":"12"
}
The above command returns JSON structured like this:
{
"token": "VCtKKZza00g/3JjExts6S72GrVDxPfYG",
"created": "2016-09-12T07:35:39.7618727Z"
}
Creates a single-use token that wraps the details of a payment information, and can be used only once.
Parameter | Type | Description | Requirement |
---|---|---|---|
paymentOption | string | Payment Option | Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
CC number, cvv2, IBAN, etc. | string | payment/bank information - depending on paymentOption | Mandatory |
Creating Transaction
curl https://api.2000charge.com/api/transactions -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"customer":{
"firstName":"John",
"lastName":"Doe",
"email":"john@doe.com",
"country":"US"
},
"amount":1500,
"currency":"EUR",
"ipaddress": "123.01.1",
"token": "VCtKKZza00g/3JjExts6S72GrVDxPfYG"
}
The above command returns JSON structured like this:
{
"id": "trn_b0d0c2716215",
"mode": "Test",
"status": "Funded",
"customer": {
"id": "cus_fec53db887ef402ba",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"country": "US",
"created": "2016-09-11T23:35:24.4821996Z"
},
"payment": {
"id": "pay_56510f9a22634ae08",
"mode": "Test",
"paymentOption": "creditcard",
"holder": "John Doe",
"created": "2016-09-11T23:35:24.3981701Z",
"creditCardType": "visa",
"creditCardNumber": "XXXXXXXXXXX1111",
"expirationMonth": 12,
"expirationYear": 2019,
"cvV2": "222"
},
"amount": 1500,
"currency": "EUR",
"created": "2016-09-11T23:35:24.445176Z",
"token": "VCtKKZza00g/3JjExts6S72GrVDxPfYG",
"ipAddress": "123.01.1"
}
To create a transaction using a token, you must send customer object, amount
, currency
and token
that was received.
Parameter | Type | Description | Requirement |
---|---|---|---|
customer | Customer object | Customer object | Mandatory |
holder | string | Customer’s First and Last Name | Mandatory |
currency | string | ISO 4217 formatted currency code | Mandatory |
amount | integer | The used amount (calculated in cents) | Mandatory |
token | string | Payment token | Mandatory |
Customers
Create a Customer
curl https://api.2000charge.com/api/customers -u \
<WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X POST -d '
{
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"address": "Rutledge Ave 409",
"city": "Folsom",
"zip": "19033",
"country": "US",
"state":"PA",
"phone": "55555555555"
}
$customer = new \2000charge\Model\Customer();
$customer->setEmail("testsdfsd@gmail.com");
$customer->setcountry("DE");
$customer->setFirstName("Steve");
$customer->setLastName("McManaman");
$customer->setIp("192.168.100.100");
$res = Customer :: post($customer);
2000charge.ApiUrl = _apiUrl;
Customer c = new Customer()
{
FirstName = "Tname1",
LastName = "Lname1",
Email = "mymail1@email.com",
Ip = "123.01.1",
state = "DE"
};
var result = 2000charge.Post<Customer>(c).Result;
The above command returns JSON structured like this:
{
"id": "cus_bd838e3611d34d598",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"address": "Rutledge Ave 409",
"city": "Folsom",
"zip": "19033",
"country": "US",
"state": "PA",
"phone": "55555555555",
"created": "2016-03-24T15:19:10.7800694Z"
}
Customers can be created individually by you or they will be automatically generated with the transaction if there is no customer ID transmitted.
Attributes
Parameter | Type | Description | Requirement |
---|---|---|---|
firstName | string | First name | Mandatory |
lastName | string | Last name | Mandatory |
string | Mandatory | ||
address | string | address | Optional |
city | string | city | Optional |
zip | string | city ZIP code | Optional |
country | string | country | Optional |
state | string | state | Optional |
phone | string | phone number | Optional |
Retrieve a Customer
Retrieves the details of an existing customer.
curl https://api.2000charge.com/api/customers/{id} \
-u <WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X GET -d '
$res = Customer :: get("cus_123456aaa");
2000charge.ApiUrl = _apiUrl;
var result = 2000charge.Get<Customer>("cus_nonprofitaaa").Result;
The above command returns JSON structured like this:
{
"id": "cus_bd838e3611d34d598",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"address": "Rutledge Ave 409",
"city": "Folsom",
"zip": "19033",
"country": "US",
"state": "PA",
"phone": "55555555555",
"created": "2016-03-24T15:19:10.7800694Z"
}
Attributes
Parameter | Type | Description | Requirement |
---|---|---|---|
id | string | Customer’s id | Mandatory |
List Customers
Returns a list of your customers.
curl https://api.2000charge.com/api/customers \
-u <WEBSITE_SECRET_KEY>: -H "Content-Type:application/json" -X GET -d
$res = Customer :: getAll();
2000charge.ApiUrl = _apiUrl;
var result = 2000chargea.GetAll<Customer>().Result;
The above command returns JSON structured like this:
{
"customers": [
{
"id": "cus_7f0724f3b1d745d49",
"mode": "Test",
"firstName": "Jane",
"lastName": "Doe",
"email": "jane@doe.com",
"country": "DE",
"created": "2015-06-24T11:46:35.303Z"
},
{
"id": "cus_15b154da474247dbb",
"mode": "Test",
"firstName": "John",
"lastName": "Doe",
"email": "john@doe.com",
"address": "Rutledge Ave 409",
"city": "Folsom",
"zip": "19033",
"country": "US",
"phone": "55555555555",
"created": "2015-06-24T12:28:06.527Z"
}
]
}
Errors
Atributes
- type The type of error returned by the API:
invalid_parameter_error
,payment_error
,api_error
- code Short description of the error.
- statuscode HTTP Status Code
- message A human-readable message providing more details about the error.
type | Description |
---|---|
invalid_parameter_error | Invalid paremeter was sent |
payment_error | Transaction failed to be created due to payment issue |
api_error | API errors |
List of errors for invalid_paremeter_error
Code | Message | Status Code |
---|---|---|
api_keys_not_provided | API keys are not provided | 401 |
invalid_api_keys | Invalid API key %s | 401 |
invalid_object_sent | Object is not sent or invalid object is sent | 400 |
missing_required_parameter | Missing required parameter %s | 400 |
invalid_parameter_error | Invalid parameter %s | 400 |
disabled_website | Disabled website | 400 |
invalid_website | Invalid website | 400 |
invalid_transaction_id | Invalid transaction | 400 |
invalid_original_transaction_id | Invalid transaction | 400 |
invalid_payment_id | Invalid payment id | 400 |
invalid_customer_id | Invalid customer id | 400 |
invalid_reason | Invalid reason | 400 |
provide_payment_or_token | Provide either payment object or token | 400 |
provide_customer_or_customerid | Provide either customer object or customerid | 400 |
invalid_payment_option | Invalid payment option | 400 |
invalid_iban | Invalid IBAN | 400 |
invalid_bic | Invalid BIC | 400 |
invalid_currency | Invalid currency | 400 |
negative_number | Must be positive number | 400 |
pin_not_sent | Pin must be sent | 400 |
email_domain_black_listed | Email domain is found on the black list | 400 |
information_on_black_list | Information sent on the transaction are found on the blacklist | 400 |
customer_black_listed | Customer is found on the black list | 400 |
number_of_transaction_exceeded_limit | Number of the transactions exceeded limit | 400 |
volume_of_transaction_exceeded_limit | Volume of the transactions exceeded limit | 400 |
max_transaction_amount | Volume of the transactions is higher then maximum limit | 400 |
min_transaction_amount | Volume of the transactions is lower then minimum limit | 400 |
invalid_country | Invalid country | 400 |
parameter_can_have_100_characters_maximum | Parameter %s can have 100 characters maximum. | 400 |
payment_option_is_not_active | Payment option is not active. | 503 |
cpf_name_and_birthdate_do_not_match | CPF does not belong to the person making the payment. | 400 |
customer_reached_payment_limit | Customer reached the payment limit for the period. | 400 |
currency_is_not_active_in_system | Currency is not active in the system. | 400 |
currency_is_not_active_in_system | Currency is not active in the system. | 400 |
List of errors for payment_error
Code | Message | Status Code |
---|---|---|
void_not_supported | Void is not supported | 402 |
refund_not_supported | Refund is not supported | 402 |
transaction_can_not_be_refunded | The transaction can not be refunded | 402 |
refund_already_sent | Refund already sent | 402 |
void_already_sent | Void already sent | 402 |
transaction_can_not_be_voided | Transaction can not be voided | 402 |
customer_must_be_at_least_16_years_old | Customer must be at least 16 years old | 402 |
bank_unknown | Bank unknown. | 400 |
transaction_timeout | Timeout | 408 |
transaction_aborted | Transaction aborted by user. | 400 |
List of errors for api_error
Code | Message | Status Code |
---|---|---|
api_error | API Error | 402 |
acquirer_down | Acquirer Down | 402 |
statuscode | Description |
---|---|
200 | OK - Everything worked as expected. |
400 | Bad Request - Usually missing a required parameter. |
401 | Unauthorized - No valid API key provided. |
402 | Request Failed - Parameters were valid but request failed. |
404 | Not Found - The requested item doesn’t exist. |
500 | Server errors - internal server error. |