Documentation

Account Gateway Keys

By integrating these keys, users can unlock the functionality of payment gateways previously detailed, ensuring smooth financial operations.

In this guide, we will explain how to create and configure account gateway keys within Ecart Pay. Gateway keys are essential credentials needed to connect and use the payment gateways available on the platform. These keys include a public key and a private key, which enable secure communication and transactions through the selected gateway.

By following this guide, you will be able to:

  • Retrieve the necessary gateway credentials.
  • Configure your account to utilize the gateway effectively.
  • Understand the process of integrating gateways into your payment workflow.

Create Account Gateway Keys

Endpoint

POST {{baseURL}}/api/accounts/gateways/{{gateway_id}}/keys

Headers

  • Authorization: {token}

Request Body

{
    "private_key" : "key_zqgc9wWxW12muTSpnYyrzg",
    "public_key" : "key_H8WXW7qcgqasYqjdvKZMqPA",
    "currency" : [ 
        "MXN"
    ]
}

Example Request

curl --location 'https://sandbox.ecartpay.com/api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys' \
--header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg' \
--header 'Content-Type: application/json' \
--header 'Cookie: lang=en' \
--data '{
    "private_key" : "key_zqgc9wWxW12muTSpnYyrzg",
    "public_key" : "key_H8WXW7qcgqasYqjdvKZMqPA",
    "currency" : [ 
        "MXN"
    ]
}'
package main

import (
  "fmt"
  "strings"
  "net/http"
  "io"
)

func main() {

  url := "https://sandbox.ecartpay.com/api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys"
  method := "POST"

  payload := strings.NewReader(`{
    "private_key" : "key_zqgc9wWxW12muTSpnYyrzg",
    "public_key" : "key_H8WXW7qcgqasYqjdvKZMqPA",
    "currency" : [ 
        "MXN"
    ]
}`)

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg")
  req.Header.Add("Content-Type", "application/json")
  req.Header.Add("Cookie", "lang=en")

  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := io.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
POST /api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys HTTP/1.1
Host: sandbox.ecartpay.com
Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg
Content-Type: application/json
Cookie: lang=en
Content-Length: 143

{
    "private_key" : "key_zqgc9wWxW12muTSpnYyrzg",
    "public_key" : "key_H8WXW7qcgqasYqjdvKZMqPA",
    "currency" : [ 
        "MXN"
    ]
}
// OkHttp

OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n    \"private_key\" : \"key_zqgc9wWxW12muTSpnYyrzg\",\n    \"public_key\" : \"key_H8WXW7qcgqasYqjdvKZMqPA\",\n    \"currency\" : [ \n        \"MXN\"\n    ]\n}");
Request request = new Request.Builder()
  .url("https://sandbox.ecartpay.com/api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys")
  .method("POST", body)
  .addHeader("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg")
  .addHeader("Content-Type", "application/json")
  .addHeader("Cookie", "lang=en")
  .build();
Response response = client.newCall(request).execute();

// -------------------------------------------------------------

// Unirest

Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.post("https://sandbox.ecartpay.com/api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys")
  .header("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg")
  .header("Content-Type", "application/json")
  .header("Cookie", "lang=en")
  .body("{\n    \"private_key\" : \"key_zqgc9wWxW12muTSpnYyrzg\",\n    \"public_key\" : \"key_H8WXW7qcgqasYqjdvKZMqPA\",\n    \"currency\" : [ \n        \"MXN\"\n    ]\n}")
  .asString();
// Fetch

const myHeaders = new Headers();
myHeaders.append("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg");
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Cookie", "lang=en");

const raw = JSON.stringify({
  "private_key": "key_zqgc9wWxW12muTSpnYyrzg",
  "public_key": "key_H8WXW7qcgqasYqjdvKZMqPA",
  "currency": [
    "MXN"
  ]
});

const requestOptions = {
  method: "POST",
  headers: myHeaders,
  body: raw,
  redirect: "follow"
};

fetch("https://sandbox.ecartpay.com/api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys", requestOptions)
  .then((response) => response.text())
  .then((result) => console.log(result))
  .catch((error) => console.error(error));

// -------------------------------------------------------------

// jQuery

var settings = {
  "url": "https://sandbox.ecartpay.com/api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Authorization": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg",
    "Content-Type": "application/json",
    "Cookie": "lang=en"
  },
  "data": JSON.stringify({
    "private_key": "key_zqgc9wWxW12muTSpnYyrzg",
    "public_key": "key_H8WXW7qcgqasYqjdvKZMqPA",
    "currency": [
      "MXN"
    ]
  }),
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

// -------------------------------------------------------------

// XHR

// WARNING: For POST requests, body is set to null by browsers.
var data = JSON.stringify({
  "private_key": "key_zqgc9wWxW12muTSpnYyrzg",
  "public_key": "key_H8WXW7qcgqasYqjdvKZMqPA",
  "currency": [
    "MXN"
  ]
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function() {
  if(this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://sandbox.ecartpay.com/api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys");
xhr.setRequestHeader("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg");
xhr.setRequestHeader("Content-Type", "application/json");
// WARNING: Cookies will be stripped away by the browser before sending the request.
xhr.setRequestHeader("Cookie", "lang=en");

xhr.send(data);
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
  curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
  curl_easy_setopt(curl, CURLOPT_URL, "https://sandbox.ecartpay.com/api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys");
  curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
  curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
  struct curl_slist *headers = NULL;
  headers = curl_slist_append(headers, "Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg");
  headers = curl_slist_append(headers, "Content-Type: application/json");
  headers = curl_slist_append(headers, "Cookie: lang=en");
  curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
  const char *data = "{\n    \"private_key\" : \"key_zqgc9wWxW12muTSpnYyrzg\",\n    \"public_key\" : \"key_H8WXW7qcgqasYqjdvKZMqPA\",\n    \"currency\" : [ \n        \"MXN\"\n    ]\n}";
  curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
  res = curl_easy_perform(curl);
  curl_slist_free_all(headers);
}
curl_easy_cleanup(curl);
// Axios

const axios = require('axios');
let data = JSON.stringify({
  "private_key": "key_zqgc9wWxW12muTSpnYyrzg",
  "public_key": "key_H8WXW7qcgqasYqjdvKZMqPA",
  "currency": [
    "MXN"
  ]
});

let config = {
  method: 'post',
  maxBodyLength: Infinity,
  url: 'https://sandbox.ecartpay.com/api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys',
  headers: { 
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg', 
    'Content-Type': 'application/json', 
    'Cookie': 'lang=en'
  },
  data : data
};

axios.request(config)
.then((response) => {
  console.log(JSON.stringify(response.data));
})
.catch((error) => {
  console.log(error);
});

// -------------------------------------------------------------

// Native

var https = require('follow-redirects').https;
var fs = require('fs');

var options = {
  'method': 'POST',
  'hostname': 'sandbox.ecartpay.com',
  'path': '/api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys',
  'headers': {
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg',
    'Content-Type': 'application/json',
    'Cookie': 'lang=en'
  },
  'maxRedirects': 20
};

var req = https.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function (chunk) {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });

  res.on("error", function (error) {
    console.error(error);
  });
});

var postData = JSON.stringify({
  "private_key": "key_zqgc9wWxW12muTSpnYyrzg",
  "public_key": "key_H8WXW7qcgqasYqjdvKZMqPA",
  "currency": [
    "MXN"
  ]
});

req.write(postData);

req.end();

// -------------------------------------------------------------

// Request

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://sandbox.ecartpay.com/api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys',
  'headers': {
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg',
    'Content-Type': 'application/json',
    'Cookie': 'lang=en'
  },
  body: JSON.stringify({
    "private_key": "key_zqgc9wWxW12muTSpnYyrzg",
    "public_key": "key_H8WXW7qcgqasYqjdvKZMqPA",
    "currency": [
      "MXN"
    ]
  })

};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

// -------------------------------------------------------------

// Unirest

var unirest = require('unirest');
var req = unirest('POST', 'https://sandbox.ecartpay.com/api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys')
  .headers({
    'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg',
    'Content-Type': 'application/json',
    'Cookie': 'lang=en'
  })
  .send(JSON.stringify({
    "private_key": "key_zqgc9wWxW12muTSpnYyrzg",
    "public_key": "key_H8WXW7qcgqasYqjdvKZMqPA",
    "currency": [
      "MXN"
    ]
  }))
  .end(function (res) { 
    if (res.error) throw new Error(res.error); 
    console.log(res.raw_body);
  });
#import <Foundation/Foundation.h>

dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://sandbox.ecartpay.com/api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:10.0];
NSDictionary *headers = @{
  @"Authorization": @"eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg",
  @"Content-Type": @"application/json",
  @"Cookie": @"lang=en"
};

[request setAllHTTPHeaderFields:headers];
NSData *postData = [[NSData alloc] initWithData:[@"{\n    \"private_key\" : \"key_zqgc9wWxW12muTSpnYyrzg\",\n    \"public_key\" : \"key_H8WXW7qcgqasYqjdvKZMqPA\",\n    \"currency\" : [ \n        \"MXN\"\n    ]\n}" dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:postData];

[request setHTTPMethod:@"POST"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
  if (error) {
    NSLog(@"%@", error);
    dispatch_semaphore_signal(sema);
  } else {
    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
    NSError *parseError = nil;
    NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&parseError];
    NSLog(@"%@",responseDictionary);
    dispatch_semaphore_signal(sema);
  }
}];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
open Lwt
open Cohttp
open Cohttp_lwt_unix

let postData = ref "{\n    \"private_key\" : \"key_zqgc9wWxW12muTSpnYyrzg\",\n    \"public_key\" : \"key_H8WXW7qcgqasYqjdvKZMqPA\",\n    \"currency\" : [ \n        \"MXN\"\n    ]\n}";;

let reqBody = 
  let uri = Uri.of_string "https://sandbox.ecartpay.com/api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys" in
  let headers = Header.init ()
    |> fun h -> Header.add h "Authorization" "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg"
    |> fun h -> Header.add h "Content-Type" "application/json"
    |> fun h -> Header.add h "Cookie" "lang=en"
  in
  let body = Cohttp_lwt.Body.of_string !postData in

  Client.call ~headers ~body `POST uri >>= fun (_resp, body) ->
  body |> Cohttp_lwt.Body.to_string >|= fun body -> body

let () =
  let respBody = Lwt_main.run reqBody in
  print_endline (respBody)
// cURL

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://sandbox.ecartpay.com/api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "private_key" : "key_zqgc9wWxW12muTSpnYyrzg",
    "public_key" : "key_H8WXW7qcgqasYqjdvKZMqPA",
    "currency" : [ 
        "MXN"
    ]
}',
  CURLOPT_HTTPHEADER => array(
    'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg',
    'Content-Type: application/json',
    'Cookie: lang=en'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

// -------------------------------------------------------------

// Guzzle

<?php
$client = new Client();
$headers = [
  'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg',
  'Content-Type' => 'application/json',
  'Cookie' => 'lang=en'
];
$body = '{
  "private_key": "key_zqgc9wWxW12muTSpnYyrzg",
  "public_key": "key_H8WXW7qcgqasYqjdvKZMqPA",
  "currency": [
    "MXN"
  ]
}';
$request = new Request('POST', 'https://sandbox.ecartpay.com/api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys', $headers, $body);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();

// -------------------------------------------------------------

// HTTP_Request2

<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://sandbox.ecartpay.com/api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg',
  'Content-Type' => 'application/json',
  'Cookie' => 'lang=en'
));
$request->setBody('{\n    "private_key" : "key_zqgc9wWxW12muTSpnYyrzg",\n    "public_key" : "key_H8WXW7qcgqasYqjdvKZMqPA",\n    "currency" : [ \n        "MXN"\n    ]\n}');
try {
  $response = $request->send();
  if ($response->getStatus() == 200) {
    echo $response->getBody();
  }
  else {
    echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
    $response->getReasonPhrase();
  }
}
catch(HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}

// -------------------------------------------------------------

// pecl_http

<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://sandbox.ecartpay.com/api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys');
$request->setRequestMethod('POST');
$body = new http\Message\Body;
$body->append('{
    "private_key" : "key_zqgc9wWxW12muTSpnYyrzg",
    "public_key" : "key_H8WXW7qcgqasYqjdvKZMqPA",
    "currency" : [ 
        "MXN"
    ]
}');
$request->setBody($body);
$request->setOptions(array());
$request->setHeaders(array(
  'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg',
  'Content-Type' => 'application/json',
  'Cookie' => 'lang=en'
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg")
$headers.Add("Content-Type", "application/json")
$headers.Add("Cookie", "lang=en")

$body = @"
{
    `"private_key`" : `"key_zqgc9wWxW12muTSpnYyrzg`",
    `"public_key`" : `"key_H8WXW7qcgqasYqjdvKZMqPA`",
    `"currency`" : [ 
        `"MXN`"
    ]
}
"@

$response = Invoke-RestMethod 'https://sandbox.ecartpay.com/api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys' -Method 'POST' -Headers $headers -Body $body
$response | ConvertTo-Json
# http.client

import http.client
import json

conn = http.client.HTTPSConnection("sandbox.ecartpay.com")
payload = json.dumps({
  "private_key": "key_zqgc9wWxW12muTSpnYyrzg",
  "public_key": "key_H8WXW7qcgqasYqjdvKZMqPA",
  "currency": [
    "MXN"
  ]
})
headers = {
  'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg',
  'Content-Type': 'application/json',
  'Cookie': 'lang=en'
}
conn.request("POST", "/api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

// -------------------------------------------------------------

# Requests

import requests
import json

url = "https://sandbox.ecartpay.com/api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys"

payload = json.dumps({
  "private_key": "key_zqgc9wWxW12muTSpnYyrzg",
  "public_key": "key_H8WXW7qcgqasYqjdvKZMqPA",
  "currency": [
    "MXN"
  ]
})
headers = {
  'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg',
  'Content-Type': 'application/json',
  'Cookie': 'lang=en'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
# httr

library(httr)

headers = c(
  'Authorization' = 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg',
  'Content-Type' = 'application/json',
  'Cookie' = 'lang=en'
)

body = '{
  "private_key": "key_zqgc9wWxW12muTSpnYyrzg",
  "public_key": "key_H8WXW7qcgqasYqjdvKZMqPA",
  "currency": [
    "MXN"
  ]
}';

res <- VERB("POST", url = "https://sandbox.ecartpay.com/api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys", body = body, add_headers(headers))

cat(content(res, 'text'))

// -------------------------------------------------------------

# RCurl

library(RCurl)
headers = c(
  "Authorization" = "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg",
  "Content-Type" = "application/json",
  "Cookie" = "lang=en"
)
params = "{
  \"private_key\": \"key_zqgc9wWxW12muTSpnYyrzg\",
  \"public_key\": \"key_H8WXW7qcgqasYqjdvKZMqPA\",
  \"currency\": [
    \"MXN\"
  ]
}"
res <- postForm("https://sandbox.ecartpay.com/api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys", .opts=list(postfields = params, httpheader = headers, followlocation = TRUE), style = "httppost")
cat(res)
require "uri"
require "json"
require "net/http"

url = URI("https://sandbox.ecartpay.com/api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys")

https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg"
request["Content-Type"] = "application/json"
request["Cookie"] = "lang=en"
request.body = JSON.dump({
  "private_key": "key_zqgc9wWxW12muTSpnYyrzg",
  "public_key": "key_H8WXW7qcgqasYqjdvKZMqPA",
  "currency": [
    "MXN"
  ]
})

response = https.request(request)
puts response.read_body
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = reqwest::Client::builder()
        .build()?;

    let mut headers = reqwest::header::HeaderMap::new();
    headers.insert("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg".parse()?);
    headers.insert("Content-Type", "application/json".parse()?);
    headers.insert("Cookie", "lang=en".parse()?);

    let data = r#"{
    "private_key": "key_zqgc9wWxW12muTSpnYyrzg",
    "public_key": "key_H8WXW7qcgqasYqjdvKZMqPA",
    "currency": [
        "MXN"
    ]
}"#;

    let json: serde_json::Value = serde_json::from_str(&data)?;

    let request = client.request(reqwest::Method::POST, "https://sandbox.ecartpay.com/api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys")
        .headers(headers)
        .json(&json);

    let response = request.send().await?;
    let body = response.text().await?;

    println!("{}", body);

    Ok(())
}
# Httpie

printf '{
    "private_key" : "key_zqgc9wWxW12muTSpnYyrzg",
    "public_key" : "key_H8WXW7qcgqasYqjdvKZMqPA",
    "currency" : [ 
        "MXN"
    ]
}'| http  --follow --timeout 3600 POST 'https://sandbox.ecartpay.com/api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys' \
 Authorization:'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg' \
 Content-Type:'application/json' \
 Cookie:'lang=en'

// -------------------------------------------------------------

# wget

wget --no-check-certificate --quiet \
  --method POST \
  --timeout=0 \
  --header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg' \
  --header 'Content-Type: application/json' \
  --header 'Cookie: lang=en' \
  --body-data '{
    "private_key" : "key_zqgc9wWxW12muTSpnYyrzg",
    "public_key" : "key_H8WXW7qcgqasYqjdvKZMqPA",
    "currency" : [ 
        "MXN"
    ]
}' \
   'https://sandbox.ecartpay.com/api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys'
let parameters = "{\n    \"private_key\" : \"key_zqgc9wWxW12muTSpnYyrzg\",\n    \"public_key\" : \"key_H8WXW7qcgqasYqjdvKZMqPA\",\n    \"currency\" : [ \n        \"MXN\"\n    ]\n}"
let postData = parameters.data(using: .utf8)

var request = URLRequest(url: URL(string: "https://sandbox.ecartpay.com/api/accounts/gateways/5fab1d5d685fe16ca6ef0a00/keys")!,timeoutInterval: Double.infinity)
request.addValue("eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3ODAzNjksImV4cCI6MTczODc4Mzk2OX0.bnSoI1x8picEUIVjfHLW4uDgJo6HGjCEBiF6B9KsTS4NKNyCkKDc6xvBdMi-BI0Z-G4Cc9-esizFmlo1AivMvg", forHTTPHeaderField: "Authorization")
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("lang=en", forHTTPHeaderField: "Cookie")

request.httpMethod = "POST"
request.httpBody = postData

let task = URLSession.shared.dataTask(with: request) { data, response, error in 
  guard let data = data else {
    print(String(describing: error))
    return
  }
  print(String(data: data, encoding: .utf8)!)
}

task.resume()

Example Response

{
    "id": "62509303d09faecab714df6d",
    "public_key": "key_H8WXW7qcgqasYqjdvKZMqPA",
    "private_key": "key_zqgc9wWxW12muTSpnYyrzg",
    "currency": [
        "MXN"
    ]
}

Process for Obtaining Gateway Keys

To generate the necessary keys for a payment gateway, follow these steps:

  1. Access the Gateway Section in Ecart Pay: Navigate to the dedicated section in your Ecart Pay account where all available gateways are listed. Choose the desired gateway you wish to configure.
Image 1. Gateway Settings.

Image 1. Gateway Settings

  1. Follow Gateway-Specific Instructions: Each gateway requires specific steps to retrieve its API keys.
Image 2. Steps to obtain the Keys from Mercado Pago.

Image 2. Steps to obtain the Keys from Mercado Pago

  1. Submit the Keys in Ecart Pay:
  • Enter the retrieved keys into the appropriate fields in the gateway configuration section.
  • Complete the integration by sending a POST request as described.
Image 3. Submiting the Keys

Image 3. Submiting the Keys

Importance of Gateway Keys

Configuring gateway keys is critical for:

  • Secure Transactions: The keys authenticate and encrypt data exchanges between your system and the gateway.
  • Seamless Integration: Properly configured keys ensure smooth payment operations.
  • Compliance and Trust: Following secure protocols builds trust with customers and complies with payment standards.
⚠️

DISCLAIMER

For more detailed information about the gateways available in Ecart Pay, including their configurations and supported currencies, please refer to the Gateways Section of this documentation.