Gateways
ActiveCollab can receive two types of payments: PayPal and creadit card payments. For PayPal payments we use PaypalExpressCheckoutGateway, and for credit card processing we use one of the following gateways:
AuthorizeGatewayBrainTreeGatewayPaypalDirectPaymentStripeGateway
By default, there is no payment gateway configured:
Response:
1 2 3 4
{
"paypal": null,
"credit_card": null
}Paypal Express Checkout #
and PayPal using PayPal Express Checkout:
Stripe #
Stripe is used to process credit cars. Only parameter that is required is API key. Lets configure the system to use a API for testing:
Payload:
1 2 3 4 5 6
{
"credit_card": {
"type": "StripeGateway",
"api_key": "sk_test_XXXXXXXXXXXXXXXXXXXXXXXX"
}
}Response:
1 2 3 4 5 6 7 8 9 10
{
"paypal": null,
"credit_card": {
"id": 1,
"class": "StripeGateway",
"url_path": "#",
"is_live": false,
"api_key": "sk_test_XXXXXXXXXXXXXXXXXXXXXXXX"
}
}now lets try with Live mode:
Payload:
1 2 3 4 5 6
{
"credit_card": {
"type": "StripeGateway",
"api_key": "sk_live_XXXXXXXXXXXXXXXXXXXXXXXX"
}
}Response:
1 2 3 4 5 6 7 8 9 10
{
"paypal": null,
"credit_card": {
"id": 2,
"class": "StripeGateway",
"url_path": "#",
"is_live": true,
"api_key": "sk_live_XXXXXXXXXXXXXXXXXXXXXXXX"
}
}Authorize.net #
To use Authorize.net, two parameters are needed: api_login_id and transaction_key. By default, system is in test mode:
Payload:
1 2 3 4 5 6 7
{
"credit_card": {
"type": "AuthorizeGateway",
"api_login_id": "XYZ",
"transaction_key": "ABC"
}
}Response:
1 2 3 4 5 6 7 8 9 10 11
{
"paypal": null,
"credit_card": {
"id": 3,
"class": "AuthorizeGateway",
"url_path": "#",
"is_live": false,
"api_login_id": "XYZ",
"transaction_key": "ABC"
}
}to put the system in production mode, explicitely set is_live to true when setting up the gateway:
Payload:
1 2 3 4 5 6 7 8
{
"credit_card": {
"type": "AuthorizeGateway",
"api_login_id": "XYZ",
"transaction_key": "ABC",
"is_live": true
}
}Response:
1 2 3 4 5 6 7 8 9 10 11
{
"paypal": null,
"credit_card": {
"id": 4,
"class": "AuthorizeGateway",
"url_path": "#",
"is_live": true,
"api_login_id": "XYZ",
"transaction_key": "ABC"
}
}Braintree #
To configure ActiveCollab to process credit cards using Braintree, you need to provide merchant_id, public_key, private_key and merchant account ID for at least the default currency. By default, this gateway is in test mode:
Payload:
1 2 3 4 5 6 7 8 9 10 11 12 13
{
"credit_card": {
"type": "BrainTreeGateway",
"merchant_id": "XYZ",
"merchant_account_ids": {
"USD": "123",
"EUR": "456",
"UNKNOWN": "Unknown currency is ignored"
},
"public_key": "ABC",
"private_key": "FGH"
}
}Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
{
"paypal": null,
"credit_card": {
"id": 5,
"class": "BrainTreeGateway",
"url_path": "#",
"is_live": false,
"merchant_id": "XYZ",
"merchant_account_ids": {
"EUR": "456",
"USD": "123"
},
"public_key": "ABC",
"private_key": "FGH"
}
}to put the system in production mode, explicitely set is_live to true when setting up the gateway:
Payload:
1 2 3 4 5 6 7 8 9 10 11 12 13
{
"credit_card": {
"type": "BrainTreeGateway",
"merchant_id": "XYZ",
"merchant_account_ids": {
"USD": "123",
"EUR": "456"
},
"public_key": "ABC",
"private_key": "FGH",
"is_live": true
}
}Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
{
"paypal": null,
"credit_card": {
"id": 6,
"class": "BrainTreeGateway",
"url_path": "#",
"is_live": true,
"merchant_id": "XYZ",
"merchant_account_ids": {
"EUR": "456",
"USD": "123"
},
"public_key": "ABC",
"private_key": "FGH"
}
}PayPal Direct Payment #
PayPal can be used not just for offsite payments, but also to process credit cards. To configure ActiveCollab to process credit cards using PayPal gateway, you need to provide api_username, api_password and api_signature. By default, this gateway is in test mode:
Payload:
1 2 3 4 5 6 7 8
{
"credit_card": {
"type": "PaypalDirectGateway",
"api_username": "XYZ",
"api_password": "ABC",
"api_signature": "FGH"
}
}Response:
1 2 3 4 5 6 7 8 9 10 11 12
{
"paypal": null,
"credit_card": {
"id": 7,
"class": "PaypalDirectGateway",
"url_path": "#",
"is_live": false,
"api_username": "XYZ",
"api_password": "ABC",
"api_signature": "FGH"
}
}to put the system in production mode, explicitely set is_live to true when setting up the gateway:
Payload:
1 2 3 4 5 6 7 8 9
{
"credit_card": {
"type": "PaypalDirectGateway",
"api_username": "XYZ",
"api_password": "ABC",
"api_signature": "FGH",
"is_live": true
}
}Response:
1 2 3 4 5 6 7 8 9 10 11 12
{
"paypal": null,
"credit_card": {
"id": 8,
"class": "PaypalDirectGateway",
"url_path": "#",
"is_live": true,
"api_username": "XYZ",
"api_password": "ABC",
"api_signature": "FGH"
}
}PayPal off-site #
Finally, there is PayPal off-site payment, where customers are redirected to PayPal website to complete the order, and than returned back to ActiveCollab when payment is made. Here's how it is configured:
Payload:
1 2 3 4 5 6 7 8
{
"paypal": {
"type": "PaypalExpressCheckoutGateway",
"api_username": "XYZ",
"api_password": "ABC",
"api_signature": "FGH"
}
}Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
{
"paypal": {
"id": 9,
"class": "PaypalExpressCheckoutGateway",
"url_path": "#",
"is_live": false,
"api_username": "XYZ",
"api_password": "ABC",
"api_signature": "FGH"
},
"credit_card": {
"id": 8,
"class": "PaypalDirectGateway",
"url_path": "#",
"is_live": true,
"api_username": "XYZ",
"api_password": "ABC",
"api_signature": "FGH"
}
}By default, this gateway is in test mode. To put the system in production mode, explicitely set is_live to true when setting up the gateway:
Payload:
1 2 3 4 5 6 7 8 9
{
"paypal": {
"type": "PaypalExpressCheckoutGateway",
"api_username": "XYZ",
"api_password": "ABC",
"api_signature": "FGH",
"is_live": true
}
}Response:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
{
"paypal": {
"id": 10,
"class": "PaypalExpressCheckoutGateway",
"url_path": "#",
"is_live": true,
"api_username": "XYZ",
"api_password": "ABC",
"api_signature": "FGH"
},
"credit_card": {
"id": 8,
"class": "PaypalDirectGateway",
"url_path": "#",
"is_live": true,
"api_username": "XYZ",
"api_password": "ABC",
"api_signature": "FGH"
}
}Configured gateways can be cleared by sending following DELETE commands:
Lets confirm that this actually cleared the settings:
Response:
1 2 3 4
{
"paypal": null,
"credit_card": null
}