Quick start

Este guia mostra o processo de cadastro de loja, utilizando a interface web service REST do Carat.

O que você precisará

  • Uma loja cadastrada no Carat com permissão para consumo dessa API
  • Uma ferramenta capaz de realizar chamadas HTTP, como Postman, REST Client ou cURL
  • Uma aplicação capaz de receber chamadas POST HTTPS, caso seja utilizado o post de autenticidade

POST de autenticidade x assinatura

O Carat possui duas formas de autenticação da loja na interface de criação, edição e consulta de loja REST: POST de autenticidade ou assinatura.

No método de POST de autenticidade, o Carat enviará o token recém-criado para a URL de autenticidade cadastrada da loja.

No método de assinatura, a loja deve ter uma chave pública de criptografia RSA cadastrada no Carat e deverá montar uma assinatura JWT (JSON Web Tokens) a ser enviada no cabeçalho Authorization.Saiba mais.

Criando um token

Tipo de requisição: POST

URL: https://<URLPOSTMAN/>/e-sitef/api/v1/token/merchants

Headers:

  • Content-Type: application/json
  • merchant_id: {seu código de loja}
  • merchant_key: {chave da sua loja}

Requisição:

Para usar este exemplo, não esquecer de definir a variável {{url}} com o valor<br/> <URLPOSTMAN/>

curl
--request POST "https://{{url}}/e-sitef/api/v1/token/merchants"
--header "merchant_id: xxxxxxxx"
--header "merchant_key: xxxxxxxxxxx"
--verbose

Recebimento do POST de autenticidade:

<!--Java + Spring Framework-->

@RestController
public class MyAuthenticityController {

    @PostMapping(value = "/myauthenticity",
        consumes = "application/x-www-form-urlencoded; charset=utf-8")
    public ResponseEntity<String> myAuthenticity(@RequestParam Map&lt;String, String&gt; request) {
        Log.info("token = " + request.get("token"));
        // ...
        // armazena o token
        // ...
        return new ResponseEntity<>("OK", HttpStatus.OK);
    }

}

Resposta:

{
  "response_code": 0,
  "response_message": "OK. Transaction successful."
}

Saiba mais sobre esse serviço.

Criando a loja

Tipo de requisição: POST

URL: https://<URLPOSTMAN/>/e-sitef/api/v1/merchants

Preencha o campo <id> na URL acima com o código da loja a ser criada.

Headers:

  • Content-Type: application/json
  • merchant_id: {seu código de loja}
  • merchant_key: {chave da sua loja}
  • token: {token caso seja utilizada o post de autenticidade}
  • Authorization: {assinatura caso seja utilizada a assinatura JWT}

Requisição:

Para usar este exemplo, não esquecer de definir a variável {{url}} com o valor<br/> <URLPOSTMAN/>

{
  "fantasy_name": "Teste de Loja",
  "corporate_name": "Testes de Loja Ltda.",
  "soft_descriptor": {
    "fantasy_name": "Sub-comércio da Loja",
    "country": "BR",
    "mcc": "1234",
    "id": "123456"
  },
  "subacquirer_group": {
    "create": "true",
    "id": "123456",
    "cnpj": "12345678901234"
  },
  "domain": "www.testeloja.com",
  "cnpj": "123123123123",
  "address": "Rua do Teste, 123",
  "city": "São Teste",
  "state": "SP",
  "zip_code": "12345678",
  "phone_number": "11912341234",
  "email": "testeloja@teste.com",
  "transactional_urls": {
    "status": "https://www.testeloja.com/status",
    "authenticity": "https://www.testeloja.com/autent",
    "hash": "https://www.testeloja.com/hash"
  },
  "return_urls": {
    "success": "https://www.testeloja.com/sucesso",
    "failure": "https://www.testeloja.com/fracasso",
    "cancel": "https://www.testeloja.com/cancel"
  },
  "permissions": {
    "payment": "true",
    "pre_authorization": "false",
    "recharge": "false",
    "risk_analysis": "true",
    "schedule": "true",
    "iata": "false",
    "card_store": "false",
    "payment_link":"true"
  },
  "establishments": [
    {
      "code": "00000000123",
      "routing_id": "1125",
      "subacquirer_group_id": "123456"
    },
    {
      "code": "00000000321",
      "routing_id": "1005"
    }
  ],
  "authorizers": [
    {
      "id": "1",
      "routing_id": "1125",
      "min_installments_amount": "100",
      "max_installments_without_interest": "1",
      "max_installments_with_interest": "12",
      "enable_subacquirer_group": "true"
    },
    {
      "id": "2",
      "routing_id": "201",
      "min_installments_amount": "100",
      "max_installments_without_interest": "1",
      "max_installments_with_interest": "12",
      "parameters": {
        "merchantId": "8h37e9e23oe",
        "merchantKey": "b9f374t5983t745f873tb45f93b4f2293b485ft34"
      }
    }
  ]
}
curl
--request POST "https://{{url}}/e-sitef/api/v1/merchants"
--header "Content-Type: application/json"
--header "merchant_id: xxxxxxxx"
--header "merchant_key: xxxxxxxxxxx"
--header "token: 1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr"
--data-binary
{
   "fantasy_name":"Teste de Loja",
   "corporate_name":"Testes de Loja Ltda.",
   "soft_descriptor":{
      "fantasy_name":"Sub-comércio da Loja",
      "country":"BR",
      "mcc":"1234",
      "id":"123456"
   },
   "subacquirer_group":{
      "create":"true",
      "id":"123456",
      "cnpj":"12345678901234"
   },
   "domain":"www.testeloja.com",
   "cnpj":"123123123123",
   "address":"Rua do Teste, 123",
   "city":"São Teste",
   "state":"SP",
   "zip_code":"12345678",
   "phone_number":"11912341234",
   "email":"testeloja@teste.com",
   "transactional_urls":{
      "status":"https://www.testeloja.com/status",
      "authenticity":"https://www.testeloja.com/autent",
      "hash":"https://www.testeloja.com/hash"
   },
   "return_urls":{
      "success":"https://www.testeloja.com/sucesso",
      "failure":"https://www.testeloja.com/fracasso",
      "cancel":"https://www.testeloja.com/cancel"
   },
   "permissions":{
      "payment":"true",
      "pre_authorization":"false",
      "recharge":"false",
      "risk_analysis":"true",
      "schedule":"true",
      "iata":"false",
      "card_store":"false",
      "payment_link":"true"
   },
   "establishments":[
      {
         "code":"00000000123",
         "routing_id":"1125",
         "subacquirer_group_id":"123456"
      },
      {
         "code":"00000000321",
         "routing_id":"1005"
      }
   ],
   "authorizers":[
      {
         "id":"1",
         "routing_id":"1125",
         "min_installments_amount":"100",
         "max_installments_without_interest":"1",
         "max_installments_with_interest":"12",
         "enable_subacquirer_group":"true"
      },
      {
         "id":"2",
         "routing_id":"201",
         "min_installments_amount":"100",
         "max_installments_without_interest":"1",
         "max_installments_with_interest":"12",
         "parameters":{
            "merchantId":"8h37e9e23oe",
            "merchantKey":"b9f374t5983t745f873tb45f93b4f2293b485ft34"
         }
      }
   ]
}
--verbose
curl
--request POST "https://{{url}}/e-sitef/api/v1/merchants"
--header "Content-Type: application/json"
--header "merchant_id: xxxxxxxx"
--header "merchant_key: xxxxxxxxxxx"
--header "Authorization: Bearer {SEU_ACCESS_TOKEN}"
--data-binary
{
   "cnpj":"123123123123",
   "fantasy_name":"Teste de Loja",
   "corporate_name":"Testes de Loja Ltda.",
   "soft_descriptor":{
      "fantasy_name":"Sub-comércio da Loja",
      "country":"BR",
      "mcc":"1234",
      "id":"123456"
   },
   "subacquirer_group":{
      "create":"true",
      "id":"123456",
      "cnpj":"12345678901234"
   },
   "domain":"www.testeloja.com",   
   "address":"Rua do Teste, 123",
   "city":"São Teste",
   "state":"SP",
   "zip_code":"12345678",
   "phone_number":"11912341234",
   "email":"testeloja@teste.com",
   "transactional_urls":{
      "status":"https://www.testeloja.com/status",
      "authenticity":"https://www.testeloja.com/autent",
      "hash":"https://www.testeloja.com/hash"
   },
   "return_urls":{
      "success":"https://www.testeloja.com/sucesso",
      "failure":"https://www.testeloja.com/fracasso",
      "cancel":"https://www.testeloja.com/cancel"
   },
   "permissions":{
      "payment":"true",
      "pre_authorization":"false",
      "recharge":"false",
      "risk_analysis":"true",
      "schedule":"true",
      "iata":"false",
      "card_store":"false",
      "payment_link":"true"
   },
   "establishments":[
      {
         "code":"00000000123",
         "routing_id":"1125",
         "subacquirer_group_id":"123456"
      },
      {
         "code":"00000000321",
         "routing_id":"1005"
      }
   ],
   "authorizers":[
      {
         "id":"1",
         "routing_id":"1125",
         "min_installments_amount":"100",
         "max_installments_without_interest":"1",
         "max_installments_with_interest":"12",
         "enable_subacquirer_group":"true"
      },
      {
         "id":"2",
         "routing_id":"201",
         "min_installments_amount":"100",
         "max_installments_without_interest":"1",
         "max_installments_with_interest":"12",
         "parameters":{
            "merchantId":"8h37e9e23oe",
            "merchantKey":"b9f374t5983t745f873tb45f93b4f2293b485ft34"
         }
      }
   ]
}
--verbose

Resposta:

{
  "id": "qereIoinsd3d",
  "key": "9B71234TB12D938T9384TDB294T923D412T938D1293D4B923D",
  "response_code": "0",
  "response_message": "OK"
}

Saiba mais sobre esse serviço.