Introdução
Olá! Bem vindo a API REST do GATE2all.
Aqui você irá encontrar informações para integrar seu sistema ao gateway de pagamentos GATE2all.
O GATE2all é uma plataforma de pagamentos que conecta lojas virtuais, app’s mobile, ERP’s ou sistema de cobranças com as principais instituições de pagamentos do Brasil.
Ao integrar-se ao gateway de pagamentos GATE2all, seu negócio poderá receber transações através das principais formas de pagamentos como cartão de crédito e débito, boleto bancário e transferência entre contas.
A vantagem de se utilizar nossa plataforma é que você não precisará se integrar a cada adquirente ou bancos, através do GATE2all você se beneficia delas de forma unificada e sem complicações.
O GATE2all segue as rigorosas normas do PCI DSS, que são regras que visam proteger os dados do portador do cartão. Conheça mais no site https://pt.pcisecuritystandards.org
Sobre este documento
Este documento constitui a especificação técnica para integração de sistemas que desejam operar com o gateway de pagamento GATE2all.
Aqui serão listadas todas as funcionalidades da plataforma GATE2all especificando os endereços de requisição, parâmetros da requisição, formato e exemplos.
Disponibilizamos as coleções no client REST Postman.
Para instalar o client Postman, basta acessar https://www.getpostman.com
Para importar uma coleção contendo os endpoints e mensagens de exemplos, basta clicar no botão abaixo.
PÚBLICO
Este documento é destinado aos desenvolvedores e analistas de sistemas de e-commerce que desejem integrar sua loja virtual com o gateway GATE2all para a realização de transações eletrônicas.
CONTATOS
Suporte ao desenvolvedor é prestado através do e-mail dev@ntk.com.br.
Glossário
Autenticação: Processo para assegurar que o comprador é o portador legítimo.
Autorização: Processo para verificar se uma compra pode ou não ser realizada num cartão. Verifica-se limite, se o cartão está ativo, se o portador está adimplente, etc.
Cancelamento: Processo para cancelar uma compra no cartão.
Captura: Processo para confirmar uma autorização. É após, a captura, que o portador recebe um débito na fatura de seu cartão.
Chave de acesso: Chave de autenticação da loja usada na chamada aos Web Services da Cielo.
Comprador: É aquele que efetua compra na loja virtual.
Emissor: Empresa responsável pela emissão do cartão utilizado pelo cliente para a realização de transações eletrônicas no Estabelecimento. Administradoras associadas a bancos são os principais emissores de cartões, assim como administradoras de cartões de benefício (refeição, alimentação, combustível, premiação, etc.).
Estabelecimento comercial ou EC: Empresa que responde pela loja virtual.
Número de afiliação: É um identificador que o lojista recebe após ter-se afiliado a Cielo.
Portador: É o mesmo que comprador. É aquele que tem o porte de um cartão.
TID: Identificador único da transação.
Transação: É o pedido de compra do portador na rede adquirente.
Gateway de pagamento: é uma aplicação que realiza transações financeiras através de web sites. Sua função basicamente é comunicar com as redes adquirentes e efetuar com segurança a captura dos dados do comprador.
Rede Adquirente: Empresa responsável por prover o serviço de captura de transações eletrônicas (seja de cartão de crédito/débito ou outro meio de pagamento). Cielo, Rede, GetNet e BANRISUL são exemplos de Redes adquirentes brasileiras.
Bandeira: Empresa definindo um padrão e provendo serviços de intercâmbio e troca de informações entre a Rede Adquirente e o Emissor. Visa, MasterCard e American Express são exemplos típicos de bandeiras.
Tokenização: Método para gravar cartão do comprador no ambiente Cielo para realização de transações sem o número do cartão.
Soft Descriptor: Função para incluir um texto que será exibido na fatura do cartão de crédito do comprador.
Pré-autorização: Tipo de transação que consulta e reserva um valor estimado para o estabelecimento como garantia até a conclusão da operação, aplica-se normalmente há locadoras de veículos e hotéis.
Transferência online: A Transferência entre contas bancárias é uma opção de pagamento on-line. Esse meio de pagamento utiliza-se do Internet Banking do lojista e do consumidor final. No momento do pagamento, basta informar os dados da conta, a senha e a frase secreta, e o banco efetuará a transferência do valor da compra diretamente para a loja, de forma rápida e segura.
Pré-requisitos
Para que o lojista possa utilizar as funcionalidades do GATE2all, este deve possuir afiliação para e-commerce junto às redes adquirentes ou bancos aos quais deseja encaminhar transações ou cobranças.
Adquirentes integradas
Cielo 1.5 (Obsoleta) e
3.0
Rede Komerci (Obsoleta), e-Rede Adquirencia (Obsoleta) e
Rede Rest
GetNet (Obsoleta) e
GetNet Rest
Bancos integrados
Comércio Eletrônico Bradesco
- Emissão de boleto
- Transferência entre contas
Bradesco
- Emissão de boleto registrado
Itaú Shopline
- Emissão de boleto
- Transferência entre contas
Tipos de Transações
Crédito
As opções de pagamento com cartão de crédito são:
- À vista.
- Parcelado emissor.
- Parcelado loja.
Débito
Bandeiras Visa Electron e Maestro através da rede adquirente Cielo, Rede Rest e GetNet Rest, sendo que, para esta modalidade é necessário a autenticação do portador através dos mecanismos “Verify By Visa” ou “Mastercard Secure Code”.
O cartão do portador deve estar habilitado para transações autenticadas.
Transferência on-line entre contas
Transferência online entre contas bancárias. Para utilizar este serviço o cliente deverá ter contratado junto ao banco o serviço de comércio eletrônico Bradesco ou Itaú Shopline.
Boletos
Emissão de boleto bancário com os bancos Bradesco, Itaú ou Santander com conciliação automática. A compensação do boleto poderá ser verificada através do relatório de transações.
Para utilizar este serviço o cliente deverá ter contratado junto ao banco o serviço de comercio eletrônico.
Pix
Pix é um meio de pagamento eletrônico e faz parte do Sistema de Pagamentos Instantâneos (SPI). O Pix é suportado no gateway sendo necessário cadastrar as chaves para que a liberação seja realizada.
Tipos de Integração
O gateway de pagamento GATE2all permite dois tipos de integração:
- Loja, que redireciona o comprador para um ambiente seguro do GATE2all, onde os dados do cartão serão capturados.
- Integrado, onde o lojista poderá capturar os dados do cartão em seu próprio sistema.
Ambientes
Para utilizar nosso ambiente de testes envie um e-mail informando os dados abaixo para dev@ntk.com.br, onde realizaremos o cadastro do desenvolvedor ou empresa responsável pelo desenvolvimento.
RAZAO SOCIAL
NOME FANTASIA
CNPJ
Nome do desenvolvedor
Telefone
E-mail
Ambiente Produção
Requisição de transação: https://api.gate2all.com.br/
Ambiente de testes (Sandbox)
Requisição de transação: https://apidemo.gate2all.com.br/
authenticationApi: demo authenticationKey: A420C95AF486F0E64437
Cartões de Testes
Disponibilizamos os seguintes cartões de testes para simular os status das transações.
Status | Cartão |
---|---|
AUTORIZADA | Qualquer número de cartão que respeite Algoritmo Luhn |
FALHA NA COMUNICAÇÃO COM FORNECEDOR | 4676674786512068 |
PENDENTE DE CONFIRMAÇÃO TRANSAÇÃO_NAO_PROCESSADA NOFORNECEDOR | 4532365531093678 |
PENDENTE_DE_CONFIRMAÇÃO TRANSAÇÃO PROCESSADA NO FORNECEDOR | 5375387267180047 |
TRANSAÇÃO INICIADA | 4490861761911670 |
CRIADA | 4490861761911670 |
NEGADA | 4035943194824415 |
TIMEOUT | 4539591924980550 |
Números de Documentos de Testes Boleto e Transferência
Esses números de documento devem ser usados no nosso simulador Itaú.
Status | Número Documento |
---|---|
TRANSAÇÃO INICIADA | Qualquer número de documento válido |
CONFIRMADA (BOLETO PAGO MAIOR +R$10,00) | 34331423786 |
CONFIRMADA (BOLETO PAGO MENOR -R$10,00) | 18805556890 |
CONFIRMADA (TRANSFERÊNCIA) | 45601654247 |
CONFIRMADA (BOLETO) | 74717683471 |
Autenticação
Todas as requisições são autenticadas através das credenciais de acesso (USUÁRIO E CHAVE) fornecidos após o cadastro. Os dados de acesso são enviados pelo header.
Content-Type: application/json
authenticationApi: USUÁRIO
authenticarionKey: CHAVE
Exemplo de configuração no POSTMAN:
GATE2all Loja
No GATE2all Loja é possível realizar vendas sem a necessidade de desenvolver-se uma página segura de pagamentos, por meio do recurso chamado Intenção de Venda.
Através deste tipo de integração o comprador digita os dados do cartão no ambiente seguro do gateway de pagamentos GATE2all, isentando a loja, da manipulação dos dados sensíveis do cartão do comprador.
Intenção de Venda
Para realizar uma intenção de venda é necessário enviar um POST para o seguinte recurso:
Requisição
{
"referenceId": "19893211234",
"amount": "1000",
"description": "Mouse sem fio",
"postBackUrl": "http://url-notificacao",
"redirectUrl": "http://url-redirect",
"dtExpiration": "2020-12-25T18:10:53",
"customer": {
"name": "Comprador Teste",
"document": "12345678909",
"email": "compradorteste@gmail.com",
"address": {
"address": "Endereco",
"number": "100",
"complement": "Apartamento 22",
"district": "Vila Olimpia",
"zipcode": "09878675",
"city": "Sao Paulo",
"state": "SP"
}
},
"payment": {
"card": {
"type": 0,
"capture": false,
"installments": "2",
"fixedInstallments": false,
"interestType": "3",
"authenticate": "3",
"softDescriptor": "GATE2all",
"saveCard": true,
"recurrent": false
},
"electronicTransfer": {
"provider": "Bradesco"
},
"bankSlip": {
"expirationDate": "2020-12-30",
"instructions": "Aceitar somente até a data de vencimento, após essa data juros de 1% dia",
"guarantor": "Comprador Teste",
"provider": "Bradesco"
},
"pix": {
"provider": "C6BANK",
"key": [ "RANDOM_KEY" ],
"expirationDateTime": "2021-12-25T18:10:53"
}
}
}
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
URL obj = new URL("https://api.gate2all.com.br/v1/intention");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("content-type", "application/json");
con.setRequestProperty("authenticationApi", "demo");
con.setRequestProperty("authenticationKey", "demo");
String body = "{"
+ "\"referenceId\": \"19893211234\","
+ "\"amount\": \"1000\","
+ "\"description\": \"Mouse sem fio\","
+ "\"postBackUrl\": \"http://url-notificacao\","
+ "\"redirectUrl\": \"http://url-redirect\","
+ "\"dtExpiration\": \"2021-12-25T18:10:53\","
+ " \"customer\": {"
+ " \"name\": \"Comprador Teste\","
+ " \"document\": \"12345678909\","
+ " \"email\": \"compradorteste@gmail.com\","
+ " \"address\": {"
+ " \"address\": \"Endereco\","
+ " \"number\": \"100\","
+ " \"district\": \"Vila Olimpia\","
+ " \"complement\": \"Apartamento 22\","
+ " \"zipcode\": \"09878675\","
+ " \"city\": \"Sao Paulo\","
+ " \"state\": \"SP\""
+ " }"
+ " },"
+ " \"payment\": {"
+ " \"card\": {"
+ " \"type\": 0,"
+ " \"capture\": false,"
+ " \"installments\": \"2\","
+ " \"fixedInstallments\": false,"
+ " \"interestType\": \"4\","
+ " \"authenticate\": \"3\","
+ " \"softDescriptor\": \"GATE2all\","
+ " \"saveCard\": true,"
+ " \"recurrent\": true"
+ " },"
+ " \"electronicTransfer\": {"
+ " \"provider\": \"Bradesco\""
+ " },"
+ " \"bankSlip\": {"
+ " \"expirationDate\": \"2020-12-30\","
+ " \"instructions\": \"Aceitar somente ate a data de vencimento, apes essa data juros de 1% dia\","
+ " \"guarantor\": \"Comprador Teste\","
+ " \"provider\": \"Bradesco\""
+ " }"
+ " \"pix\": {"
+ " \"provider\": \"C6BANK\","
+ " \"key\": [\"RANDOM_KEY\"], "
+ " \"expirationDateTime\": '2021-12-25T18:10:53' "
+ " }"
+ " }"
+ "}";
con.setDoOutput(true);
DataOutputStream dos = new DataOutputStream(con.getOutputStream());
dos.writeBytes(body);
dos.flush();
dos.close();
Scanner scanner = new Scanner(new BufferedReader(new InputStreamReader(con.getInputStream())));
String response = scanner.nextLine();
scanner.close();
System.out.println(response);
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
referenceId |
Texto | 100 | Sim | Número de identificação da loja. |
amount |
Número | 16 | Sim | Valor da transação sem pontuação. Os dois últimos dígitos são os centavos. (Ex: amount: 100 = R$ 1,00) |
description |
Texto | 300 | Não | Descrição da transação. |
postBackUrl |
Texto | — | Sim | URL onde o GATE2all notificará eventuais status da trancação para o lojista notificação |
redirectUrl |
Texto | — | Não | URL onde o GATE2all redirecionará o comprador após o processamento da transação. |
dtExpiration |
Texto | 20 | Não | Data da expiração da intenção. Formato 2021-01-25T18:10:53 |
customer.name |
Texto | 100 | Sim | Nome do portador do cartão. |
customer.document |
Texto | 18 | Sim | Número do CPF/CNPJ do portador do cartão. |
customer.email |
Texto | 100 | Sim | Email do portador do cartão. |
customer.phoneNumber |
Texto | 18 | Não | Número de telefone do portador do cartão. |
address.address |
Texto | 60 | Sim | Endereço do comprador. |
address.number |
Texto | 10 | Sim | Número do endereço do comprador. |
address.complement |
Texto | 150 | Não | Complemento do endereço do comprador. |
address.district |
Texto | 80 | Sim | Bairro do comprador. |
address.zipcode |
Número | 8 | Sim | CEP do comprador sem formatação. Exemplo: 04549002. |
address.city |
Texto | 30 | Sim | Cidade do comprador. |
address.state |
Texto | 2 | Sim | Sigla do estado do comprador. |
card.type |
Número | 1 | Não | Default: 0, configura as opcões disponíveis. 1 Configura cartão de crédito. 2 Configura cartão de débito. |
card.capture |
Booleano | — | Sim | true = Autoriza e confirma a transação. false = Autorização, mas não confirma a transação, necessitando realizar a confirmação (Captura) noutra requisição. |
card.installments |
Número | 2 | Sim | Número de parcelas. |
card.fixedInstallments |
Booleano | — | Não | Default: false - True = não permite que o comprador selecione a quantidade de parcelas no formulário de pagamento. |
card.interestType |
Número | 1 | Não | Default: 3 - Operações disponíveis: 3. Parcelado Loja 4. Parcelado Administrador |
card.authenticate |
Número | 1 | Não | Default: 3 - Opções disponíveis: 1. Autorizar só transações autenticadas 2. Autorizar transações autenticadas ou não autenticadas 3. Autorizar sem autenticação |
card.softDescriptor |
Texto | 22 | Não | Texto a ser exibido na fatura do portador do cartão.SoftDescriptor |
card.saveCard |
Booleano | — | Não | Configura salvar o cartão (tokenização). |
card.recurrent |
Booleano | — | Não | Informa se a transação é recorrente. |
electronicTransfer.provider |
Texto | 20 | Sim | Nome da instituição financeira:
|
bankSlip.expirationDate |
Texto | 20 | Sim | Data de vencimento do boleto. formato YYYY-MM-DD |
bankSlip.instructions |
Texto | 300 | Sim | Instruções do boleto. Para o Itaú a quantidade máxima de caracteres será: 180, e o texto será truncado em 3 partes de 60 caracteres. |
bankSlip.guarantor |
Texto | 45 | Sim | Nome do avalista. |
bankSlip.provider |
Texto | 20 | Sim | Nome da instituição financeira:
|
pix.provider |
Texto | 20 | Não | Nome da instituição financeira:
|
pix.key |
Texto | 20 | Não | Campos utilizados para o Pix:
|
pix.expirationDateTime |
Texto | 20 | Não | Data da expiração da qrcode. Formato 2021-01-25T18:10:53 |
RESPOSTA SUCESSO
Status : 201
{
"transactionId": "b9bb32a8-401e-41a0-a9ee-af9e8ab0de92",
"url": "https://api.gate2all.com.br/v1/payment/b9bb32a8-401e-41a0-a9ee-af9e8ab0de92"
}
Propriedade | Tipo | Tamanho | Descrição |
---|---|---|---|
transactionId |
Texto | 36 | Identificador da transação do GATE2all. |
url |
Texto | 150 | URL da intenção. |
RESPOSTA ERRO
Status : 400
{
"error": {
"message": "amount nao pode ser vazio"
}
}
Propriedade | Tipo | Tamanho | Descrição |
---|---|---|---|
error.message |
Texto | 50 | Texto informando o erro na geração da Intenção de Venda. |
Acessando uma intenção de venda
Após o usuário acessar a URL retornada ao gerar a intenção de venda, será exibida a seguinte tela de pagamento:
1) Pix: Caso a forma de pagamento escolhida pelo usuário for Pix, uma tela similar a imagem abaixo será exibida para o pagador:
2) Cartão: Caso a forma de pagamento escolhida pelo usuário for cartão de crédito, uma tela similar a imagem abaixo será exibida para o pagador:
Exibindo algumas informações do cliente, como nome fantasia, CPF ou CNPJ, o valor e as bandeiras aceitas para pagamento.
Após a conclusão do preenchimento do formulário o GATE2all enviará uma notificação via POST, contendo o transactionId
e o referenceId
para o sistema do lojista realizar a consulta da transação notificada.
3/4) Boleto/Transferência: Caso a forma de pagamento escolhida pelo usuário seja Boleto ou Transferência, uma tela similar a imagem abaixo será exibida para o pagador:
Ao confirmar os dados, e a forma de pagamento escolhida pelo usuário for boleto e o provedor escolhido seja o Bradesco, uma tela similar a imagem abaixo será exibida para o pagador:
Caso a forma de pagamento escolhida pelo usuário for transferência e o provedor escolhido seja o Itaú, o cliente será redirecionado para o domínio do Itaú para que possa prosseguir com a transferência.
Em caso de erro ou token incorreto aparecerá a seguinte tela:
Customizar tema dos formulários
Utilizando nossos formulários que capturam os dados do cartão é possível customizar corres de fundo e de textos e a logo.
Para customizar o formulário de pagamento, precisa seguir os seguintes passos:
1) Acessar o endereço: https://checkout.paygo.com.br/customize. Será apresentada a seguinte tela de login:
- 1 - Deve informar o usuário (O usuário precisa ter perfil de gerente);
- 2 - Informar a senha;
- 3 - Acessar tela de configuração.
2) Ao realizar o login, será apresentada a seguinte tela:
- 1 - Clique na opção de Customizar.
3) Será aberto uma barra lateral, onde é possível customizar algumas corres e a logo:
- 1 - Configurar a cor primária do tema;
- 2 - Configurar a cor de fundo da tela;
- 3 - Configurar a cor de fundo da modal na lateral direita;
- 4 - Configurar a cor do texto principal;
- 5 - Configurar a logo marca que será apresentada no início.
4) Ao final clique em salvar para manter a customização:
- 1 - Opção que permite salvar a customização realizada.
GATE2all Integrado
(CHECKOUT TRANSPARENTE)
Neste modelo todo o relacionamento com o usuário é realizado pela loja virtual, inclusive eventual captura de dados de cartões de crédito. Portanto sua loja virtual deverá ser homologada PCI, para maiores informações consulte o site https://www.pcisecuritystandards.org
A loja virtual deve fazer a captura de todos os dados necessários e submetê-los ao GATE2all.
Autorização
Para criar uma autorização é necessário enviar um POST para o seguinte recurso:
REQUISIÇÃO
{
"referenceId": "19893211234",
"amount": "1000",
"description": "Mouse sem fio",
"customer": {
"name": "Comprador Teste",
"document": "12345678909"
},
"payment": {
"card": {
"type": 1,
"capture": false,
"installments": 1,
"interestType": 3,
"authenticate": 3,
"softDescriptor": "Pagamento GATE2all",
"saveCard": false,
"recurrent": false,
"provider": "Cielo",
"providerVersion": "3.0",
"cardInfo": {
"number": "4539708473330561",
"expirationMonth": "04",
"expirationYear": "2026",
"cvv": "234",
"brand": "VISA",
"holderName": "HOLDER NAME"
}
}
}
}
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
URL obj = new URL("https://api.gate2all.com.br/v1/transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("content-type", "application/json");
con.setRequestProperty("authenticationApi", "demo");
con.setRequestProperty("authenticationKey", "demo");
String body = "{"
+ "\"referenceId\": \"123456\","
+ "\"amount\": \"1000\","
+ "\"description\": \"Venda Teste\","
+ "\"postBackUrl\": \"http://url-notificacao\","
+ "\"customer\": {"
+ " \"name\": \"COMPRADOR TESTE\","
+ " \"document\": \"23650403811\""
+ "},"
+ " \"payment\": {"
+ " \"card\": {"
+ " \"type\": 1,"
+ " \"capture\": false,"
+ " \"installments\": 1,"
+ " \"interestType\": 3,"
+ " \"authenticate\": 3,"
+ " \"saveCard\": false,"
+ " \"recurrent\": false,"
+ " \"softDescriptor\": \"Gate2All\","
+ " \"cardInfo\": {"
+ " \"number\": \"4539708473330561\","
+ " \"expirationMonth\": \"04\","
+ " \"expirationYear\": \"2026\","
+ " \"cvv\": \"234\","
+ " \"brand\": \"VISA\","
+ " \"holderName\": \"COMPRADOR TESTE\""
+ " }"
+ " }"
+ " }"
+ "}";
con.setDoOutput(true);
DataOutputStream dos = new DataOutputStream(con.getOutputStream());
dos.writeBytes(body);
dos.flush();
dos.close();
Scanner scanner = new Scanner(new BufferedReader(new InputStreamReader(con.getInputStream())));
String response = scanner.nextLine();
scanner.close();
System.out.println(response);
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
transactionId |
Texto | 150 | Não | Identificador da transação do GATE2all. |
referenceId |
Texto | 100 | Sim | Número de identificação da loja. |
amount |
Número | 16 | Sim | Valor da transação sem pontuação. Os dois últimos dígitos são os centavos. (Ex: amount: 100 = R$ 1,00) |
description |
Texto | 300 | Não | Descrição da transação. |
postBackUrl |
Texto | — | Não | URL onde o GATE2all notificará eventuais status da trancação para o lojista notificação |
customer.name |
Texto | 100 | Sim | Nome do portador do cartão. |
customer.document |
Texto | 18 | Não | Número do CPF/CNPJ do portador do cartão. |
card.type |
Número | 1 | Não | Default: 1 - Configura as opcões disponíveis. 1 Configura cartão de crédito. 2 |
card.softDescriptor |
Texto | 22 | Não | Texto a ser exibido na fatura do portador do cartão.SoftDescriptor |
card.capture |
Booleano | — | Sim | true = Autoriza e confirma a transação . false = Autorização, mas não confirma a transação, necessitando realizar a confirmação (Captura) noutra requisição. |
card.installments |
Número | 2 | Sim | Número de parcelas. |
card.interestType |
Número | 1 | Não | Default: 3 - Operações disponíveis: 3. Parcelado Loja 4. Parcelado Administrador |
card.authenticate |
Número | 1 | Não | Default: 3 - Opções disponíveis: 1. Autorizar só transações autenticadas 2. Autorizar transações autenticadas ou não autenticadas 3. Autorizar sem autenticação |
card.provider |
Número | — | Não | Nome do Fornecedor (Adquirente) pela qual a autorização vai ser processada. Redes Adquirentes |
card.providerVersion |
Texto | 11 | Não | Versão da Integração do Fornecedor |
card.saveCard |
Booleano | — | Não | Default: false - Configura salvar o cartão (tokenização). |
card.recurrent |
Booleano | — | Não | Default: false - Informa se a transação é recorrente. |
cardInfo.number |
Texto | 19 | Sim | Número do cartão. |
cardInfo.expirationMonth |
Número | 2 | Sim | Mês da validade do cartão. Formato MM |
cardInfo.expirationYear |
Número | 4 | Sim | Ano da validade do cartão. Formato YYYY |
cardInfo.cvv |
Número | 4 | Sim | Código de segurança do cartão. |
cardInfo.brand |
Texto | 20 | Sim | Bandeira do cartão.Bandeiras. |
cardInfo.holderName |
Texto | 25 | Não | Nome do Portador impresso no cartão, só aceita caracteres |
RESPOSTA
Transação autorizada e não capturada
{
"transactionId": "92d50ba4-5d93-4ee5-90e8-9884b250310a",
"referenceId": "1463697571584",
"description": "TV LG 42",
"amount": "1000",
"status": 5,
"dtTransaction": "2020-12-05T12:04:20",
"payment": {
"card": {
"type": 1,
"softDescriptor": "Gate2All",
"interestType": 3,
"installments": 1,
"capture": false,
"authenticate": 3,
"saveCard": false,
"recurrent": false,
"provider": "CIELO",
"providerVersion": "3.0",
"authenticationECI": 7,
"codAuthorization": "123456",
"providerReference": "1006993069000834928A",
"providerCode": "00",
"providerMessage": "Transacao autorizada com sucesso",
"nsu": "1234",
"cardInfo": {
"number": "453970******0561",
"expirationMonth": "04",
"expirationYear": "2026",
"cvv": "***",
"brand": "VISA",
"holderName": "HOLDER NAME"
}
}
},
"customer": {
"name": "HOLDER NAME",
"document": "12345678909"
}
}
Falha
{
"error": {
"message": "O campo amount e obrigatorio."
}
}
Propriedade | Tipo | Tamanho | Descrição |
---|---|---|---|
transactionId |
Texto | 150 | Identificador da transação do GATE2all. |
dtTransaction |
DataHora | 19 | Data e hora da transação. |
card.provider |
Texto | 10 | Nome da instituição financeira. |
card.providerVersion |
Texto | 11 | Versão da Integração do Fornecedor |
card.providerMessage |
Texto | 100 | Mensagem da instituição. |
card.providerCode |
Texto | 100 | Codigo de resposta da instituição. |
card.codAuthorization |
Texto | 100 | Codigo de autorização da instituição. |
card.authenticationECI |
Texto | 100 | Indicador de autenticação da transação.Códigos ECI |
card.nsu |
Texto | - | Número sequêncial único da adquirente. Disponível para:
|
status |
Número | 2 | Status da transação retornado pelo GATE2all catálogo. |
3D Secure 1.0
Disponível apenas para a adquirente Rede Rest e GetNet Rest.
Transações autenticadas 3D Secure ou 3DS 1.0, são transações que necessitam de uma autenticação adicional para garantir maior segurança ao portador do cartão nas compras online.
A autenticação 3DS é efetuada através da validação de dados que apenas o portador do cartão e o banco possuem, como por exemplo, senha do cartão, data de nascimento, código de segurança, token do banco.
- Obrigatório para operações com cartão de Débito
- Opcional para operações com cartão de Crédito
REQUISIÇÃO
{
"referenceId": "19893211234",
"amount": "1000",
"description": "Mouse sem fio",
"userAgent": "Mozilla/5.0 ...",
"customer": {
"name": "Comprador Teste",
"document": "12345678909"
},
"payment": {
"card": {
"type": 1,
"capture": false,
"installments": 1,
"interestType": 3,
"authenticate": 3,
"softDescriptor": "Pagamento GATE2all",
"saveCard": false,
"recurrent": false,
"provider": "Cielo",
"providerVersion": "3.0",
"cardInfo": {
"number": "4539708473330561",
"expirationMonth": "04",
"expirationYear": "2026",
"cvv": "234",
"brand": "VISA",
"holderName": "HOLDER NAME"
}
}
}
}
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
URL obj = new URL("https://api.gate2all.com.br/v1/transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("content-type", "application/json");
con.setRequestProperty("authenticationApi", "demo");
con.setRequestProperty("authenticationKey", "demo");
String body = "{"
+ "\"referenceId\": \"123456\","
+ "\"amount\": \"1000\","
+ "\"description\": \"Venda Teste\","
+ "\"userAgent\": \"Mozilla/5.0 ...\","
+ "\"postBackUrl\": \"http://url-notificacao\","
+ "\"customer\": {"
+ " \"name\": \"COMPRADOR TESTE\","
+ " \"document\": \"23650403811\""
+ "},"
+ " \"payment\": {"
+ " \"card\": {"
+ " \"type\": 1,"
+ " \"capture\": false,"
+ " \"installments\": 1,"
+ " \"interestType\": 3,"
+ " \"authenticate\": 3,"
+ " \"saveCard\": false,"
+ " \"recurrent\": false,"
+ " \"softDescriptor\": \"Gate2All\","
+ " \"cardInfo\": {"
+ " \"number\": \"4539708473330561\","
+ " \"expirationMonth\": \"04\","
+ " \"expirationYear\": \"2026\","
+ " \"cvv\": \"234\","
+ " \"brand\": \"VISA\","
+ " \"holderName\": \"COMPRADOR TESTE\""
+ " }"
+ " }"
+ " }"
+ "}";
con.setDoOutput(true);
DataOutputStream dos = new DataOutputStream(con.getOutputStream());
dos.writeBytes(body);
dos.flush();
dos.close();
Scanner scanner = new Scanner(new BufferedReader(new InputStreamReader(con.getInputStream())));
String response = scanner.nextLine();
scanner.close();
System.out.println(response);
Além das propriedades da autorização, é necessário enviar as seguintes propriedades:
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
userAgent |
Texto | Até 500 | Sim | Obrigatório para transações com 3DS. Identificador do browser utilizado pelo comprador no momento da compra. |
card.authenticate |
Número | 1 | Não | Para débito sempre será: 1 Para crédito o default é: 3 Opções disponíveis: 1. Autorizar só transações autenticadas 2. Autorizar transações autenticadas ou não autenticadas 3. Autorizar sem autenticação |
RESPOSTA
Transação autorizada e não capturada
{
"transactionId": "92d50ba4-5d93-4ee5-90e8-9884b250310a",
"referenceId": "1463697571584",
"description": "TV LG 42",
"amount": "1000",
"status": 5,
"userAgent": "Mozilla/5.0 ...",
"dtTransaction": "2020-12-05T12:04:20",
"payment": {
"card": {
"type": 1,
"softDescriptor": "Gate2All",
"interestType": 3,
"installments": 1,
"capture": false,
"authenticate": 3,
"saveCard": false,
"recurrent": false,
"provider": "CIELO",
"providerVersion": "3.0",
"authenticationECI": 7,
"codAuthorization": "123456",
"providerReference": "1006993069000834928A",
"providerCode": "00",
"providerMessage": "Transacao autorizada com sucesso",
"cardInfo": {
"number": "453970******0561",
"expirationMonth": "04",
"expirationYear": "2026",
"cvv": "***",
"brand": "VISA",
"holderName": "HOLDER NAME"
}
}
},
"customer": {
"name": "HOLDER NAME",
"document": "12345678909"
}
"redirectUrl": "https://api.userede.com.br/Redirect/auth?token=qNRl..."
}
Falha
{
"error": {
"message": "O campo amount e obrigatorio."
}
}
Além das propriedades da transação, será retornado a propriedade redirectUrl
, para a qual deve ser redirecionado o cliente.
Propriedade | Tipo | Tamanho | Descrição |
---|---|---|---|
redirectUrl |
Texto | Até 500 | Url de autenticação retornada pelo sistema 3DS. |
A transação ficará com status TRANSACAO INICIADA
até que receba o retorno da autenticação do 3DS.
Boleto
O boleto bancário ou bloqueto é um método de pagamento de produtos ou serviços. É amplamente utilizado por empresas no Brasil.
Entidades envolvidas: “Banco” que são as instituições financeiras responsáveis pela emissão, recebimento e pagamento do boleto, “Cedente” é quem solicita a emissão do documento de cobrança e o que receberá o valor do pagamento e o “Sacado” que é consumidor do produto ou serviço, ou seja, quem paga o boleto.
Como é o processo de pagamento com boleto bancário:
- Cedente encaminha para o Sacado o Boleto
- Sacado efetua o pagamento até a data de vencimento estipulada.
- Banco recebe o valor e repassa para conta do Cedente.
- Banco aplica a taxa acordada entre as partes.
Requisição
{
"referenceId": "19893211234",
"amount": "1000",
"description": "Produto ou serviço",
"customer": {
"name": "Comprador",
"document": "12345678909",
"email" : "comprador@email.com",
"address" : {
"address" : "Endereco",
"number" : "100",
"complement": "Apartamento 22",
"district" : "Vila Olimpia",
"zipcode" : "09878675",
"city" : "Sao Paulo",
"state" : "SP"
}
},
"payment": {
"bankSlip" : {
"expirationDate" :"2020-12-10",
"instructions" : "Aceitar somente até a data de vencimento, após essa data juros de 1% dia",
"guarantor" : "Comprador",
"provider":"Itau"
}
}
}
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
URL obj = new URL("https://api.gate2all.com.br/v1/transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("content-type", "application/json");
con.setRequestProperty("authenticationApi", "demo");
con.setRequestProperty("authenticationKey", "demo");
String body = "{"
+ "\"referenceId\": \"123456789\","
+ "\"amount\": \"1000\","
+ "\"description\": \"TV LG 42\","
+ "\"postBackUrl\": \"http://url-notificacao\","
+ "\"customer\": {"
+ " \"name\": \"COMPRADOR TEST\","
+ " \"document\": \"12345678909\","
+ " \"email\" : \"comprador@ntk.com\","
+ " \"address\" : {"
+ " \"address\" : \"Rua Fidencio Ramos\","
+ " \"number\": \" 100\","
+ " \"complement\": \"Apartamento 22\","
+ " \"district\" : \"Vila Olimpia\","
+ " \"zipcode\" : \"05890090\","
+ " \"city\" : \"Sao Paulo\","
+ " \"state\" : \"SP\""
+ " }"
+ " },"
+ " \"payment\": {"
+ " \"bankSlip\" : {"
+ " \"expirationDate\" :\"2020-12-10\","
+ " \"instructions\" : \"Aceitar somente ate a data de vencimento, apos essa data juros de 1% dia\","
+ " \"guarantor\" : \"Joao da Silva\","
+ " \"provider\":\"Itau\""
+ " }"
+ " }"
+ "}";
con.setDoOutput(true);
DataOutputStream dos = new DataOutputStream(con.getOutputStream());
dos.writeBytes(body);
dos.flush();
dos.close();
Scanner scanner = new Scanner(new BufferedReader(new InputStreamReader(con.getInputStream())));
String response = scanner.nextLine();
scanner.close();
System.out.println(response);
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
transactionId |
Texto | 150 | Não | Utilize somente para intenções de venda previamente configuradas |
referenceId |
Texto | 100 | Sim | Número de identificação da loja. |
amount |
Número | 16 | Sim | Valor da transação sem pontuação. Os dois últimos dígitos são os centavos. (Ex: amount: 100 = R$ 1,00) |
description |
Texto | 300 | Não | Descrição da transação. |
customer.name |
Texto | 100 | Sim | Nome do pagador. |
customer.document |
Texto | 18 | Sim | Número do CPF/CNPJ do pagador. |
customer.email |
Texto | 100 | Sim | Email do pagador. Campo obrigatório apenas para clientes de sub. |
address.address |
Texto | 60 | Sim | Endereço do comprador. |
address.number |
Texto | 10 | Sim | Número do comprador. |
address.complement |
Texto | 150 | Não | Complemento do endereço do comprador. |
address.district |
Texto | 80 | Sim | Bairro do comprador. |
address.zipcode |
Número | 8 | Sim | CEP do comprador sem formatação. Exemplo: 04549002. |
address.city |
Texto | 30 | Sim | Cidade do comprador. |
address.state |
Texto | 2 | Sim | Sigla do estado do comprador. |
bankSlip.expirationDate |
Texto | 20 | Sim | Data de vencimento do boleto. formato YYYY-MM-DD |
bankSlip.instructions |
Texto | 300 | Sim | Instruções do boleto. Para o Itaú a quantidade máxima de caracteres será: 180, e o texto será truncado em 3 partes de 60 caracteres. |
bankSlip.guarantor |
Texto | 45 | Sim | Nome do avalista. |
bankSlip.provider |
Texto | 20 | Sim | Nome da instituição financeira :
|
RESPOSTA
{
"transactionId": "7365ca65-70d4-4d7c-ac3d-a20f5730c241",
"referenceId": "19893211234",
"amount": "1000",
"description": "Produto ou serviço",
"dtTransaction": "2020-12-08T10:46:31-0300",
"customer": {
"name": "Comprador",
"document": "12345678909",
"email": "comprador@email.com",
"address": {
"address": "Endereco",
"number": "100",
"complement": "Apartamento 22",
"district": "Vila Olimpia",
"zipcode": "09878675",
"city": "Sao Paulo",
"state": "SP"
}
},
"payment": {
"bankSlip": {
"providerReference": "20575112",
"providerCode": "00",
"providerMessage": "Transação iniciada",
"emissionDate": "2020-12-08",
"expirationDate": "2020-12-10",
"instructions": "Aceitar somente até a data de vencimento, após essa data juros de 1% dia",
"guarantor": "Comprador",
"provider": "ITAU",
"paymentDate": "2020-12-08",
"paymentAmount": "100",
"url": "https://api.gate2all.com.br/v1/payment/6400d988-cc4b-4084-80ee-d5575dbbed4d"
}
},
"status": 0
}
Propriedade | Tipo | Tamanho | Descrição |
---|---|---|---|
transactionId |
Texto | 150 | Identificador da transação do GATE2all. |
dtTransaction |
DataHora | 19 | Data e hora da transação. |
bankSlip.emissionDate |
Texto | 20 | Data de emissão do boleto. formato YYYY-MM-DD |
bankSlip.paymentDate |
Texto | 20 | Data de pagamento do boleto. formato YYYY-MM-DD |
bankSlip.paymentAmount |
Número | 16 | Valor de pagamento do boleto sem pontuação. Os dois últimos dígitos são os centavos. (Ex: amount: 100 = R$ 1,00) |
bankSlip.url |
Texto | 300 | Endereço de acesso da transação. |
bankSlip.providerReference |
Texto | 100 | Referência da instituição. |
bankSlip.providerCode |
Texto | 100 | Codigo de resposta da instituição. |
bankSlip.providerMessage |
Texto | 100 | Mensagem da instituição. |
status |
Número | 2 | tabela de Status |
Transferência entre contas bancárias
Este tipo de transação permite a transferência de valores entre contas do banco Itaú, a compensação é realizada no mesmo dia. Esse meio de pagamento direciona o comprador para o Internet Bank para realizar o processo de autenticação.
No momento do pagamento, o cliente comprador informa os dados da agência, informa os dados da conta, como senha de 4 dígitos e do dispositivo de segurança (Cartão Chave de Segurança, token ou - versão Eletrônica ou no Celular.
Requisição
{
"referenceId": "19893211234",
"amount": "1000",
"description": "Produto ou serviço",
"customer": {
"name": "Comprador",
"document": "12345678909",
"email": "comprador@email.com",
"address": {
"address": "Endereco 100",
"number" : "100",
"complement": "Apartamento 22",
"district": "Vila Olimpia",
"zipcode": "05890090",
"city": "Sao Paulo",
"state": "SP"
}
},
"payment": {
"electronicTransfer" : {
"provider" : "Itau"
}
}
}
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
URL obj = new URL("https://api.gate2all.com.br/v1/transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("content-type", "application/json");
con.setRequestProperty("authenticationApi", "demo");
con.setRequestProperty("authenticationKey", "demo");
String body = "{"
+ "\"referenceId\": \"123456789\","
+ "\"amount\": \"1000\","
+ "\"description\": \"TV LG 42\","
+ " \"customer\": {"
+ " \"name\": \"COMPRADOR TESTE\","
+ " \"document\": \"12345678909\","
+ " \"email\" : \"comprador@ntk.com\","
+ " \"address\" : {"
+ " \"address\" : \"Rua Fidencio Ramos 100\","
+ " \"number\": \" 100\","
+ " \"complement\": \"Apartamento 22\","
+ " \"district\" : \"Vila Olimpia\","
+ " \"zipcode\" : \"05890090\","
+ " \"city\" : \"Sao Paulo\","
+ " \"state\" : \"SP\""
+ " }"
+ " },"
+ " \"payment\": {"
+ " \"electronicTransfer\" : {"
+ " \"provider\" : \"Itau\""
+ " }"
+ " }"
+ "}";
con.setDoOutput(true);
DataOutputStream dos = new DataOutputStream(con.getOutputStream());
dos.writeBytes(body);
dos.flush();
dos.close();
Scanner scanner = new Scanner(new BufferedReader(new InputStreamReader(con.getInputStream())));
String response = scanner.nextLine();
scanner.close();
System.out.println(response);
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
transactionId |
Texto | 150 | Não | Utilize somente para intenções de venda previamente configuradas |
referenceId |
Texto | 100 | Sim | Número de identificação da loja. |
amount |
Número | 16 | Sim | Valor da transação sem pontuação. Os dois últimos dígitos são os centavos. (Ex: amount: 100 = R$ 1,00) |
description |
Texto | 300 | Não | Descrição da transação. |
customer.name |
Texto | 100 | Sim | Nome do pagador. |
customer.document |
Texto | 18 | Sim | Número do CPF/CNPJ do pagador. |
customer.email |
Texto | 100 | Sim | Email do pagador. Campo obrigatório apenas para clientes de sub. |
address.address |
Texto | 60 | Sim | Endereço do comprador. |
address.number |
Texto | 10 | Sim | Número do comprador. |
address.complement |
Texto | 150 | Não | Complemento do endereço do comprador. |
address.district |
Texto | 80 | Sim | Bairro do comprador. |
address.zipcode |
Número | 8 | Sim | CEP do comprador sem formatação. Exemplo: 04549002. |
address.city |
Texto | 30 | Sim | Cidade do comprador. |
address.state |
Texto | 2 | Sim | Sigla do estado do comprador. |
electronicTransfer.provider |
Texto | 20 | Sim | Nome da instituição financeira :
|
RESPOSTA
{
"transactionId": "6400d988-cc4b-4084-80ee-d5575dbbed4d",
"referenceId": "19893211234",
"amount": "1000",
"description": "Produto ou serviço",
"dtTransaction": "2020-12-05T16:16:14-0200",
"customer": {
"name": "Comprador",
"document": "12345678909",
"email": "comprador@email.com",
"address": {
"address": "Endereco 100",
"number" : "100",
"complement": "Apartamento 22",
"district": "Vila Olimpia",
"zipcode": "05890090",
"city": "Sao Paulo",
"state": "SP"
}
},
"payment": {
"electronicTransfer": {
"providerReference": "20518839",
"provider": "Itau",
"url": "https://api.gate2all.com.br/v1/payment/6400d988-cc4b-4084-80ee-d5575dbbed4d"
}
},
"status": 0
}
Propriedade | Tipo | Tamanho | Descrição |
---|---|---|---|
transactionId |
Texto | 150 | Identificador da transação do GATE2all. |
dtTransaction |
DataHora | 19 | Data e hora da transação. |
electronicTransfer.provider |
Texto | 20 | Nome da instituição financeira :
|
electronicTransfer.url |
Texto | 300 | Endereço de acesso da transação. |
electronicTransfer.providerReference |
Texto | 100 | Referência da instituição. |
status |
Número | 2 | tabela de Status |
Pix
Pix é um meio de pagamento eletrônico e faz parte do Sistema de Pagamentos Instantâneos (SPI).
Os pagametos com Pix podem ser realizados pelo gateway no modo integrado. Para isso é necessário cadastrar as chaves do Pix.
O processo para pagamento via Pix é assíncrono, sendo os passos:
- Realizar a chamada para efetuar a transação (Detalhes na sequência);
- O integrador receberá uma notificação em uma url informada em postBackUrl assim que o qrcode estiver gerado;
- O integrador precisa consultar a API para obter os dados do qrcode e imprimir para o cliente (Seguindo orientações do Bacen);
- O integrador receberá uma notificação em uma url informada em postBackUrl assim que tiver qualquer mudança no status da transação;
- O integrador precisa consultar a API para obter as informações do pagamento com Pix.
Entre 1 até 2 minutos após a geração do qrcode, as transações em sandbox serão automáticamente aprovadas.
Seguem detalhes para realizar a chamada para uma transação com Pix:
Requisição
{
"referenceId": "19893211234",
"amount": "1000",
"description": "Produto ou serviço",
"postBackUrl": "http://url-notificacao",
"payment": {
"pix" : {
"provider" : "C6BANK",
"key" : [ "RANDOM_KEY" ],
"expirationDateTime": "2021-12-25T18:10:53"
}
}
}
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
URL obj = new URL("https://api.gate2all.com.br/v1/transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("content-type", "application/json");
con.setRequestProperty("authenticationApi", "demo");
con.setRequestProperty("authenticationKey", "demo");
String body = "{"
+ "\"referenceId\": \"123456789\","
+ "\"amount\": \"1000\","
+ "\"description\": \"TV LG 42\","
+ "\"postBackUrl\": \"http://url-notificacao\","
+ "\"payment\": {"
+ " \"pix\" : {"
+ " \"provider\" : \"C6BANK\","
+ " \"key\" : [ \"RANDOM_KEY\" ],"
+ " \"expirationDateTime\": '2021-12-25T18:10:53' "
+ " }"
+ "}"
+ "}";
con.setDoOutput(true);
DataOutputStream dos = new DataOutputStream(con.getOutputStream());
dos.writeBytes(body);
dos.flush();
dos.close();
Scanner scanner = new Scanner(new BufferedReader(new InputStreamReader(con.getInputStream())));
String response = scanner.nextLine();
scanner.close();
System.out.println(response);
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
transactionId |
Texto | 150 | Não | Utilize somente para intenções de venda previamente configuradas |
referenceId |
Texto | 100 | Sim | Número de identificação da loja. |
amount |
Número | 16 | Sim | Valor da transação sem pontuação. Os dois últimos dígitos são os centavos. (Ex: amount: 100 = R$ 1,00) |
description |
Texto | 300 | Não | Descrição da transação. |
postBackUrl |
Texto | — | Não | URL onde o gateway notificará eventuais alterações de status para o lojista. Caso não informado, precisará ficar consultando a API. |
pix.provider |
Texto | 20 | Não | Nome da instituição financeira:
|
pix.key |
Texto | 20 | Não | Campos para chave do Pix:
|
pix.expirationDateTime |
Texto | 20 | Não | Data da expiração da qrcode. Formato 2021-01-25T18:10:53. Caso não enviar para o C6BANK, será expirado em 7 (sete) dias após a criação. |
RESPOSTA
{
"transactionId": "7365ca65-70d4-4d7c-ac3d-a20f5730c241",
"referenceId": "19893211234",
"amount": "1000",
"description": "Produto ou serviço",
"dtTransaction": "2020-12-08T10:46:31-0300",
"payment": {
"pix": {
"provider": "C6BANK",
"key": [ "RANDOM_KEY" ],
"expirationDateTime": "2021-12-25T18:10:53"
}
},
"status": 0
}
Para exemplos de retorno quando o Pix foi Gerado ou Pago clique aqui.
Propriedade | Tipo | Tamanho | Descrição |
---|---|---|---|
transactionId |
Texto | 150 | Identificador da transação do GATE2all. |
dtTransaction |
DataHora | 19 | Data e hora da transação. |
status |
Número | 2 | Status da transação retornado pelo gateway. Para o Pix considerar:
|
pix.provider |
Texto | 20 | Nome da instituição financeira:
|
pix.key |
Texto | 20 | Campos para chave do Pix:
|
pix.expirationDateTime |
Texto | 20 | Data da expiração da qrcode. Formato 2021-01-25T18:10:53 |
Captura
Captura é a confirmação de uma transação de Crédito autorizada, após a captura que é confirmada a transação entre lojista e comprador, gerando o crédito para o lojista e o lançamento do débito na fatura do portador do cartão.
Regras da captura
Rede adquirente | Prazo | Captura Parcial |
---|---|---|
Cielo |
5 dias | Sim |
Rede(Komerci) (Descontinuado) |
2 minutos | Não |
Rede Rest |
De acordo com o ramo do estabelecimento | Sim |
GetNet |
20 dias | Sim |
GetNet Rest |
7 dias | Sim |
O prazo pode ser alterado para até 28 dias.
Transações de pré-autorização podem ser capturadas em até 30 dias.
Requisição
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
URL obj = new URL("https://api.gate2all.com.br/v1/transactions/{{transactionId}}/capture");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
con.setRequestProperty("content-type", "application/json");
con.setRequestProperty("authenticationApi", "demo");
con.setRequestProperty("authenticationKey", "demo");
Scanner scanner = new Scanner(new BufferedReader(new InputStreamReader(con.getInputStream())));
String response = scanner.nextLine();
scanner.close();
System.out.println(response);
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
transactionId |
Texto | 150 | Sim | Identificador da transação (autorização) do GATE2all. |
RESPOSTA
Transação autorizada e capturada
{
"transactionId": "62f5a0b2-c632-4e4e-bc51-3b6681a54a3c",
"referenceId": "1488917347840",
"amount": "1000",
"status": 6,
"dtTransaction": "2020-12-07T17:09:07",
"payment": {
"card": {
"type": 1,
"installments": 1,
"capture": false,
"recurrent": false,
"authenticate": 3,
"interestType": 1,
"saveCard": false,
"provider": "CIELO",
"providerVersion": "3.0",
"authenticationECI": 7,
"codAuthorization": "123456",
"providerReference": "100699306900094D905A",
"providerCode": "00",
"providerMessage": "Transacao capturada com sucesso",
"cardInfo": {
"number": "421847******1234",
"brand": "VISA",
"holderName": "HOLDER NAME"
}
}
},
"customer": {
"name": "HOLDER NAME",
"document": "23650403811"
}
}
Captura Parcial
Para efetuar uma captura parcial, é necessário enviar um POST passando como parâmetro o valor a ser capturado.
Requisição
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
URL obj = new URL("https://api.gate2all.com.br/v1/transactions/{{transactionId}}/capture?amount=200");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
con.setRequestProperty("content-type", "application/json");
con.setRequestProperty("authenticationApi", "demo");
con.setRequestProperty("authenticationKey", "demo");
Scanner scanner = new Scanner(new BufferedReader(new InputStreamReader(con.getInputStream())));
String response = scanner.nextLine();
scanner.close();
System.out.println(response);
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
transactionId |
Texto | 150 | Sim | Identificador da transação do GATE2all. |
amount |
Número | 16 | Sim | Valor da transação a ser capturado sem pontuação. Os dois últimos dígitos são os centavos. (Ex: amount: 100 = R$ 1,00) |
RESPOSTA
Transação autorizada e capturada
{
"transactionId": "62f5a0b2-c632-4e4e-bc51-3b6681a54a3c",
"referenceId": "1488917347840",
"amount": "1000",
"status": 6,
"dtTransaction": "2020-12-07T17:09:07",
"payment": {
"card": {
"type": 1,
"installments": 1,
"capture": false,
"capturedAmount": "200",
"recurrent": false,
"authenticate": 3,
"interestType": 3,
"saveCard": false,
"provider": "CIELO",
"providerVersion": "3.0",
"authenticationECI": 7,
"codAuthorization": "123456",
"providerReference": "100699306900094D905A",
"providerCode": "00",
"providerMessage": "Transacao capturada com sucesso",
"cardInfo": {
"number": "421847******1234",
"brand": "VISA",
"holderName": "HOLDER NAME"
}
}
},
"customer": {
"name": "HOLDER NAME",
"document": "23650403811"
}
}
Cancelamento
Para realizar um cancelamento “estorno”, deve-se observar as seguintes condições:
Prazos para cancelamento
Rede adquirente | Prazo para cancelamento |
---|---|
Cielo |
300 dias |
Rede(Komerci) (Descontinuado) |
* Até às 23:59 a partir da data da transação. * Pré-autorização prazo 15 dias. |
Rede Rest (Crédito) |
90 dias |
Rede Rest (Débito) |
7 dias |
GetNet |
Até 2 dias. |
GetNet Rest |
Mesmo dia ou D+1 |
O cancelamento realizado para o adquirente Rede Rest, segue as seguintes regras:
- Mesmo dia da transação - Resposta imediata (Cancelada/Negada).
- Próximos dias - Solicita o cancelamento no formato D+1.
O cancelamento também é permitido para transações com Pix.
Requisição
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
URL obj = new URL("https://api.gate2all.com.br/v1/transactions/957221f5-d08b-4445-9896-52152f31b846/void");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
con.setRequestProperty("content-type", "application/json");
con.setRequestProperty("authenticationApi", "demo");
con.setRequestProperty("authenticationKey", "demo");
Scanner scanner = new Scanner(new BufferedReader(new InputStreamReader(con.getInputStream())));
String response = scanner.nextLine();
scanner.close();
System.out.println(response);
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
transactionId |
Texto | 150 | Sim | Identificador da transação do GATE2all. |
RESPOSTA
Transação com cartão cancelada
{
"transactionId": "62f5a0b2-c632-4e4e-bc51-3b6681a54a3c",
"referenceId": "1488917347840",
"amount": "200",
"status": 9,
"dtTransaction": "2020-12-07T17:09:07",
"payment": {
"card": {
"type": 1,
"interestType": 3,
"installments": 1,
"capture": false,
"authenticate": 3,
"provider": "CIELO",
"providerVersion": "3.0",
"authenticationECI": 7,
"codAuthorization": "123456",
"providerReference": "100699306900094D905A",
"providerCode": "00",
"providerMessage": "Transacao cancelada com sucesso",
"saveCard": false,
"cardInfo": {
"number": "421847******1234",
"brand": "VISA",
"holderName": "HOLDER NAME"
}
}
},
"customer": {
"name": "HOLDER NAME",
"document": "23650403811"
}
}
Transação com Pix cancelada
{
"transactionId": "62f5a0b2-c632-4e4e-bc51-3b6681a54a3c",
"referenceId": "1488917347840",
"amount": "200",
"status": 9,
"dtTransaction": "2020-12-07T17:09:07",
"payment": {
"pix": {
"provider" : "C6BANK",
"key" : [ "RANDOM_KEY" ]
}
},
"customer": {
"name": "HOLDER NAME",
"document": "23650403811"
}
}
Cancelamento Parcial
Para realizar um cancelamento “estorno” parcial, deve-se observar as seguintes condições:
- Disponível apenas para a adquirente Rede Rest.
- Mesmo dia da transação - Resposta imediata (Cancelada/Negada).
- Próximos dias - Solicita o cancelamento no formato D+1.
Prazos para cancelamento parcial
Rede adquirente | Prazo para cancelamento |
---|---|
Rede Rest (Crédito) |
Total/Parcial - 90 dias |
Rede Rest (Débito) |
Total/Parcial - 7 dias |
Requisição
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
URL obj = new URL("https://api.gate2all.com.br/v1/transactions/957221f5-d08b-4445-9896-52152f31b846/void?amount=100");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
con.setRequestProperty("content-type", "application/json");
con.setRequestProperty("authenticationApi", "demo");
con.setRequestProperty("authenticationKey", "demo");
Scanner scanner = new Scanner(new BufferedReader(new InputStreamReader(con.getInputStream())));
String response = scanner.nextLine();
scanner.close();
System.out.println(response);
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
transactionId |
Texto | 150 | Sim | Identificador da transação do GATE2all. |
amount |
Número | 16 | Sim | Valor da transação a ser cancelado sem pontuação. Os dois últimos dígitos são os centavos. (Ex: amount: 100 = R$ 1,00) |
RESPOSTA
Transação cancelada
{
"transactionId": "62f5a0b2-c632-4e4e-bc51-3b6681a54a3c",
"referenceId": "1488917347840",
"amount": "200",
"status": 9,
"dtTransaction": "2020-12-07T17:09:07",
"payment": {
"card": {
"type": 1,
"interestType": 3,
"installments": 1,
"capture": false,
"authenticate": 3,
"provider": "CIELO",
"providerVersion": "3.0",
"authenticationECI": 7,
"codAuthorization": "123456",
"providerReference": "100699306900094D905A",
"providerCode": "00",
"providerMessage": "Transacao cancelada com sucesso",
"saveCard": false,
"cardInfo": {
"number": "421847******1234",
"brand": "VISA",
"holderName": "HOLDER NAME"
}
}
},
"customer": {
"name": "HOLDER NAME",
"document": "23650403811"
}
}
Consulta
Para realizar uma consulta é necessário enviar um GET para o seguinte recurso:
Requisição
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
URL obj = new URL("https://api.gate2all.com.br/v1/transactions/d31dcd70-6666-40af-85ba-ed1ff23bc293");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("content-type", "application/json");
con.setRequestProperty("authenticationApi", "demo");
con.setRequestProperty("authenticationKey", "demo");
Scanner scanner = new Scanner(new BufferedReader(new InputStreamReader(con.getInputStream())));
String response = scanner.nextLine();
scanner.close();
System.out.println(response);
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
transactionId |
Texto | 150 | Sim | Identificador da transação do GATE2all. |
RESPOSTA
Retorno Transação de Crédito.
{
"transactionId": "62f5a0b2-c632-4e4e-bc51-3b6681a54a3c",
"referenceId": "1488917347840",
"amount": "100",
"status": 9,
"dtTransaction": "2020-12-07T17:09:07",
"payment": {
"card": {
"type": 1,
"interestType": 3,
"integrationType": 1,
"installments": 1,
"capture": false,
"authenticate": 3,
"codAuthorization": "123456",
"providerReference": "100699306900094D905A",
"saveCard": false,
"recurrent": false,
"provider": "CIELO",
"providerVersion": "3.0",
"cardInfo": {
"number": "421847******1234",
"brand": "VISA",
"holderName": "HOLDER NAME"
}
}
},
"customer": {
"name": "HOLDER NAME",
"document": "23650403811"
}
}
Retorno Transação com Boleto
{
"transactionId": "6400d988-cc4b-4084-80ee-d5575dbbed4d",
"referenceId": "19893211234",
"amount": "1000",
"description": "Produto ou serviço",
"dtTransaction": "2020-12-08T10:46:31-0300",
"customer": {
"name": "Comprador",
"document": "12345678909",
"email": "comprador@email.com",
"address": {
"address": "Endereco",
"number": "100",
"complement": "Apartamento 22",
"district": "Vila Olimpia",
"zipcode": "09878675",
"city": "Sao Paulo",
"state": "SP"
}
},
"payment": {
"bankSlip": {
"providerReference": "20575112",
"emissionDate": "2020-12-08",
"expirationDate": "2020-12-10",
"instructions": "Aceitar somente até a data de vencimento, após essa data juros de 1% dia",
"guarantor": "Comprador",
"provider": "ITAU",
"paymentDate": "2020-12-08",
"paymentAmount": "100",
"url": "https://api.gate2all.com.br/v1/payment/6400d988-cc4b-4084-80ee-d5575dbbed4d"
}
},
"status": 0
}
Retorno Transação com Transferência
{
"transactionId": "6400d988-cc4b-4084-80ee-d5575dbbed4d",
"referenceId": "19893211234",
"amount": "1000",
"description": "Produto ou serviço",
"dtTransaction": "2020-12-05T16:16:14-0200",
"customer": {
"name": "Comprador",
"document": "12345678909",
"email": "comprador@email.com",
"address": {
"address": "Endereco 100",
"number" : "100",
"complement": "Apartamento 22",
"district": "Vila Olimpia",
"zipcode": "05890090",
"city": "Sao Paulo",
"state": "SP"
}
},
"payment": {
"electronicTransfer": {
"providerReference": "20518839",
"provider": "Itau",
"url": "https://api.gate2all.com.br/v1/payment/6400d988-cc4b-4084-80ee-d5575dbbed4d"
}
},
"status": 0
}
Retorno Transação com Pix (status = 1)
{
"transactionId": "6400d988-cc4b-4084-80ee-d5575dbbed4d",
"referenceId": "19893211234",
"amount": "1000",
"description": "Produto ou serviço",
"dtTransaction": "2020-12-05T16:16:14-0200",
"payment": {
"pix": {
"provider": "C6BANK",
"key": [ "RANDOM_KEY" ],
"expirationDateTime": "2021-12-25T18:10:53",
"qrCode": "conteúdo-do-qrcode"
"url": "https://api.gate2all.com.br/v1/payment/6400d988-cc4b-4084-80ee-d5575dbbed4d"
}
},
"status": 1
}
Retorno Transação com Pix (status = 6)
{
"transactionId": "6400d988-cc4b-4084-80ee-d5575dbbed4d",
"referenceId": "19893211234",
"amount": "1000",
"description": "Produto ou serviço",
"dtTransaction": "2020-12-05T16:16:14-0200",
"payment": {
"pix": {
"provider": "C6BANK",
"key": [ "RANDOM_KEY" ],
"expirationDateTime": "2021-12-25T18:10:53",
"payer": {
"name": "Jaelma",
"document": "Número do CPF/CNPJ",
"provider": "C6BANK"
}
}
},
"status": 6
}
Propriedade | Tipo | Tamanho | Obrigatório | Descrição | |
---|---|---|---|---|---|
referenceId |
Texto | 100 | Sim | Número de identificação da loja. | |
amount |
Número | 16 | Sim | Valor da transação sem pontuação. Os dois últimos dígitos são os centavos. (Ex: amount: 100 = R$ 1,00) | |
status |
Número | 2 | Não | Status da transação retornado pelo gateway. catálogo | |
customer.name |
Texto | 100 | Sim | Nome do portador do cartão. | |
customer.document |
Texto | 18 | Não | Número do CPF/CNPJ do portador do cartão. | |
customer.mail |
Texto | 40 | Não | E-mail do portador do cartão. | |
address.address |
Texto | 60 | Sim | Endereço do comprador. | |
address.number |
Texto | 10 | Sim | Número do comprador. | |
address.complement |
Texto | 150 | Não | Complemento do endereço do comprador. | |
address.district |
Texto | 80 | Sim | Bairro do comprador. | |
address.zipcode |
Número | 8 | Sim | CEP do comprador sem formatação. Exemplo: 04549002. |
|
address.city |
Texto | 30 | Sim | Cidade do comprador. | |
address.state |
Texto | 2 | Sim | Sigla do estado do comprador. | |
card.type |
Número | 1 | Não | Configura as opcões disponíveis. 1 Configura cartão de crédito. 2 Configura cartão de débito. | |
card.installments |
Número | 2 | Sim | Número de parcelas. | |
card.capture |
Booleano | — | Sim | true = Autoriza e confirma a transação . false = Autorização, mas não confirma a transação, necessitando realizar a confirmação (Captura) noutra requisição. | |
card.authenticate |
Número | 1 | Não | Default: 3 - Opções disponíveis: 1. Autorizar só transações autenticadas 2. Autorizar transações autenticadas ou não autenticadas 3. Autorizar sem autenticação |
|
card.interestType |
Número | 1 | Não | Default: 3 - Operações disponíveis: 3. Parcelado Loja 4. Parcelado Administrador |
|
card.integrationType |
Número | 1 | Sim | Tipo de integração disponível pelo Gate2All: 1. Integrado 2. Loja 3. Direto |
|
card.saveCard |
Booleano | — | Sim | Configura salvar o cartão (tokenização). | |
card.codAuthorization |
Texto | 100 | Não | Codigo de autorização da instituição. | |
card.providerReference |
Texto | 100 | Não | Referência da instituição. | |
cardInfo.number |
Texto | 19 | Sim | Número do cartão. | |
cardInfo.brand |
Texto | 20 | Sim | Bandeira do cartão. Bandeiras. | |
cardInfo.holderName |
Texto | 25 | Não | Nome do Portador impresso no cartão, só aceita caracteres | |
bankSlip.emissionDate |
Texto | 20 | Sim | Data de emissão do boleto. formato YYYY-MM-DD | |
bankSlip.expirationDate |
Texto | 20 | Sim | Data de vencimento do boleto. formato YYYY-MM-DD | |
bankSlip.instructions |
Texto | 300 | Sim | Instruções do boleto. | |
bankSlip.guarantor |
Texto | 45 | Sim | Nome do avalista. | |
bankSlip.provider |
Texto | 20 | Sim | Nome da instituição financeira :
|
|
bankSlip.paymentDate |
Texto | 20 | Não | Data de pagamento do boleto. formato YYYY-MM-DD | |
bankSlip.paymentAmount |
Número | 16 | Não | Valor de pagamento do boleto sem pontuação. Os dois últimos dígitos são os centavos. (Ex: amount: 100 = R$ 1,00) | |
bankSlip.url |
Texto | 300 | Não | Endereço de acesso da transação. | |
bankSlip.providerReference |
Texto | 100 | Não | Referência da instituição. | |
electronicTransfer.provider |
Texto | 20 | Não | Nome da instituição financeira :
|
|
electronicTransfer.url |
Texto | 300 | Não | Endereço de acesso da transação. | |
electronicTransfer.providerReference |
Texto | 100 | Não | Referência da instituição. | |
pix.provider |
Texto | 20 | Não | Nome da instituição financeira:
|
|
pix.key |
Texto | 20 | Não | Campos para chave do Pix:
|
|
pix.qrCode |
Texto | - | Não | Conteúdo para gerar o QRCode a ser pago. Retornado quando o status da transação é 1. |
|
pix.payer |
- | - | Não | Informações do pagador. Retornado quando o status da transação é 6. |
|
payer.name |
Texto | - | Não | Nome do pagador. Retornado quando o status da transação é 6 caso tenha sido retornado pela instituição financeira. |
|
payer.document |
Texto | - | Não | Número do CPF ou CNPJ do pagador. Retornado quando o status da transação é 6 caso tenha sido retornado pela instituição financeira. |
|
payer.provider |
Texto | - | Não | Provider utilizado pelo pagador para pagamento do Pix. Retornado quando o status da transação é 6 caso tenha sido retornado pela instituição financeira. |
|
pix.expirationDateTime |
Texto | 20 | Não | Retorna a data da expiração da qrcode. Formato 2021-01-25T18:10:53 | |
pix.url |
Texto | 300 | Não | Endereço de acesso da transação. Retornado quando o status da transação é 0 ou 1. |
Consulta pelo número do Pedido
É possível realizar uma consulta pelo número do pedido através do seguinte recurso:
Requisição
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
URL obj = new URL("https://api.gate2all.com.br/v1/transactions?referenceId=1493321061725");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("content-type", "application/json");
con.setRequestProperty("authenticationApi", "demo");
con.setRequestProperty("authenticationKey", "demo");
Scanner scanner = new Scanner(new BufferedReader(new InputStreamReader(con.getInputStream())));
String response = scanner.nextLine();
scanner.close();
System.out.println(response);
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
referenceId |
Texto | 100 | Sim | Número de identificação da loja. |
RESPOSTA
Retorno da Transação.
[
{
"transactionId": "b9a37a7b-5ffe-4993-82ab-a26b6f332afe",
"amount": "100",
"status": 6,
"dtTransaction": "2020-12-15T11:17:40"
}
]
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
transactionId |
Texto | 150 | Sim | Identificador da transação retornado pelo gateway. |
amount |
Número | 16 | Sim | Valor da transação sem pontuação. Os dois últimos dígitos são os centavos. (Ex: amount: 100 = R$ 1,00) |
status |
Número | 2 | Não | Status da transação retornado pelo gateway. catálogo |
dtTransaction |
DataHora | 19 | Data e hora da transação. |
Consulta pelo número do Pedido com Limite
Também é possível realizar uma consulta pelo número do pedido passando um limite.
Requisição
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
URL obj = new URL("https://api.gate2all.com.br/v1/transactions?referenceId=1493321061725&limit=2");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("content-type", "application/json");
con.setRequestProperty("authenticationApi", "demo");
con.setRequestProperty("authenticationKey", "demo");
Scanner scanner = new Scanner(new BufferedReader(new InputStreamReader(con.getInputStream())));
String response = scanner.nextLine();
scanner.close();
System.out.println(response);
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
referenceId |
Texto | 100 | Sim | Número de identificação da loja. |
limit |
Número | 10 | Não | Limite Máximo de pedidos 10. |
RESPOSTA
Retorno da Transação.
[
{
"transactionId": "894aa0ad-517a-435c-b95d-8f60f1a2b9f5",
"amount": "100",
"status": 5,
"dtTransaction": "2020-12-16T07:37:23"
},
{
"transactionId": "5dbc102d-2b4b-4755-9f14-1b4c3d8a6716",
"amount": "100",
"status": 5,
"dtTransaction": "2020-12-16T07:37:00"
}
]
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
transactionId |
Texto | 150 | Sim | Identificador da transação retornado pelo gateway. |
amount |
Número | 16 | Sim | Valor da transação sem pontuação. Os dois últimos dígitos são os centavos. (Ex: amount: 100 = R$ 1,00) |
status |
Número | 2 | Não | Status da transação retornado pelo gateway. catálogo |
dtTransaction |
DataHora | 19 | Data e hora da transação. |
Tokenização
O método de tokenização permite a realização de transações sem o envio dos dados do cartão de crédito pela loja virtual. Os dados do cartão são armazenados na rede adquirente que retorna um código associado ao número do cartão e o estabelecimento que solicitou o armazenamento.
Os dados do cartão poderão ser salvos de três formas:
Configurando o parâmetro
"saveCard": true
nas requisições de transação de cartão de crédito.Acionando o formulário do GATE2all para capturar os dados do cartão (desta forma seu sistema não manipula os dados sensíveis do cartão).
Enviando os dados do cartão via POST.
REGRAS DA TOKENIZAÇÃO:
- Disponível somente para adquirente Cielo e GetNet Rest.
- Cada código de token é único por estabelecimento comercial. Se o mesmo cartão for “tokenizado” para outro estabelecimento, este terá um token diferente.
- Caso um estabelecimento envie duas ou mais vezes para gravar os mesmos dados de cartão, será retornado sempre o mesmo token.
- Não há garantia que o cartão gravado terá todas as suas transações autorizadas, pois são processos independentes e distintos.
- Um token não utilizado poderá ser removido do banco de dados da adquirente, conforme politica própria.
Esta integração permite que o desenvolvedor da loja virtual implemente:
- Transação em um click ou “one step checkout”.
- Recorrência de transações sem o armazenamento dos dados dos cartões.
Tokenização com Formulário
Para criar um formulário que capturá os dados do cartão para gerar um token é necessário enviar um POST para o seguinte recurso:
REQUISIÇÃO
{
"referenceId": "19893211234",
"postBackUrl": "http://url-notificacao",
"redirectUrl": "http://url-redirect",
"cardInfo": {
"brand" : "VISA"
}
}
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
URL obj = new URL("https://api.gate2all.com.br/v1/tokenization/intention");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("content-type", "application/json");
con.setRequestProperty("authenticationApi", "demo");
con.setRequestProperty("authenticationKey", "demo");
String body = "{"
+ "\"postBackUrl\": \"http://url-notificacao\","
+ "\"redirectUrl\": \"http://url-redirect\","
+ "\"cardInfo\": {"
+ "\"brand\" : \"VISA\""
+ "}",
+ "}";
con.setDoOutput(true);
DataOutputStream dos = new DataOutputStream(con.getOutputStream());
dos.writeBytes(body);
dos.flush();
dos.close();
Scanner scanner = new Scanner(new BufferedReader(new InputStreamReader(con.getInputStream())));
String response = scanner.nextLine();
scanner.close();
System.out.println(response);
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
referenceId |
Texto | 100 | Sim | Número de identificação da loja. |
postBackUrl |
Texto | — | Sim | URL onde o GATE2all notificará eventuais status da tokenização para o lojista. |
redirectUrl |
Texto | — | Sim | URL onde o GATE2all redirecionará o comprador após o processamento da tokenização. |
brand |
Texto | 20 | Não | Bandeira do cartão.Bandeiras. |
RESPOSTA
{
"tokenizationId": "b303e861-37d3-4d11-866b-735c6ff58989",
"referenceId": "1495660823910",
"postBackUrl": "http://url-notificacao",
"redirectUrl": "http://url-redirect",
"url": "http://api.2all.com.br/v1/save-card/b303e861-37d3-4d11-866b-735c6ff58989",
"saveCard": true,
"cardInfo": {
"brand": "VISA"
}
}
Propriedade | Tipo | Tamanho | Descrição |
---|---|---|---|
tokenizationId |
Texto | 36 | Identificador da tokenização do GATE2all. |
url |
Texto | 150 | URL disponível para acesso a tokenização. |
cardInfo.saveCard |
Booleano | — | Sim |
Tokenização Direta
Para realizar uma tokenização direta é necessário enviar um POST para o seguinte recurso:
Requisição
{
"referenceId": "19893211234",
"postBackUrl": "http://url-notificacao",
"cardInfo": {
"number": "4024007148992927",
"expirationMonth": "04",
"expirationYear": "2026",
"brand": "VISA",
"holderName": "Comprador"
}
}
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
URL obj = new URL("https://api.gate2all.com.br/v1/tokenization");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("content-type", "application/json");
con.setRequestProperty("authenticationApi", "demo");
con.setRequestProperty("authenticationKey", "demo");
String body = "{"
+ "\"referenceId\": \"123456789\","
+ "\"postBackUrl\": \"http://url-notificacao\","
+ " \"cardInfo\": {"
+ " \"number\": \"4556326359707410\","
+ " \"expirationMonth\": \"04\","
+ " \"expirationYear\": \"2026\","
+ " \"brand\": \"VISA\","
+ " \"holderName\": \"Comprador\""
+ " }"
+ "}";
con.setDoOutput(true);
DataOutputStream dos = new DataOutputStream(con.getOutputStream());
dos.writeBytes(body);
dos.flush();
dos.close();
Scanner scanner = new Scanner(new BufferedReader(new InputStreamReader(con.getInputStream())));
String response = scanner.nextLine();
scanner.close();
System.out.println(response);
Propriedade | Tipo | Tamanho | Descrição |
---|---|---|---|
referenceId |
Texto | 100 | Sim |
postBackUrl |
Texto | — | URL onde o GATE2all notificará os dados da tokenização. |
cardInfo.number |
Texto | 20 | Número do cartão truncado. |
cardInfo.expirationMonth |
Número | 2 | Mês da validade do cartão. Formato MM |
cardInfo.expirationYear |
Número | 4 | Ano da validade do cartão. Formato YYYY |
cardInfo.brand |
Texto | 20 | Bandeira do cartão.Bandeiras. |
cardInfo.holderName |
Texto | 25 | Nome do Portador impresso no cartão, só aceita caracteres |
RESPOSTA
Tokenização gerada
{
"tokenizationId": "f414a0b8-f5de-4245-aae5-733f10c1963d",
"referenceId": "19893211234",
"postBackUrl": "http://url-notificacao",
"provider": "CIELO",
"saveCard": true,
"cardInfo": {
"number": "402400******2927",
"expirationMonth": "04",
"expirationYear": "2026",
"brand": "VISA",
"token": "be4cbeb1-abb2-4913-8165-f86962143fa021",
"holderName": "Comprador"
}
}
Propriedade | Tipo | Tamanho | Descrição |
---|---|---|---|
tokenizationId |
Texto | 36 | Identificador da tokenização do GATE2all. |
provider |
Texto | 100 | Nome da Rede Adquirente. |
saveCard |
Booleano | Sim | Configura salvar o cartão (tokenização). |
cardInfo.token |
Texto | 100 | Token do cartão. |
Consulta Token
Para realizar uma consulta de token é necessário enviar um GET para o seguinte recurso:
Requisição
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
URL obj = new URL("https://api.gate2all.com.br/v1/tokenization/be4cbeb1-abb2-4913-8165-f86962143fa021");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("content-type", "application/json");
con.setRequestProperty("authenticationApi", "demo");
con.setRequestProperty("authenticationKey", "demo");
Scanner scanner = new Scanner(new BufferedReader(new InputStreamReader(con.getInputStream())));
String response = scanner.nextLine();
scanner.close();
System.out.println(response);
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
token |
Texto | 150 | Sim | Token NTK retornado na tokenização do cartão. |
RESPOSTA
Retorno Consulta Token .
{
"tokenizationId": "7c6785d9-4922-4b0d-986e-9bb5e624c613",
"referenceId": "1496173577825",
"postBackUrl": "",
"saveCard": true,
"provider": "CIELO",
"cardInfo": {
"number": "402400******2927",
"expirationMonth": "04",
"expirationYear": "2026",
"brand": "VISA",
"token": "be4cbeb1-abb2-4913-8165-f86962143fa021",
"holderName": "Comprador"
}
}
Propriedade | Tipo | Tamanho | Descrição |
---|---|---|---|
tokenizationId |
Texto | 36 | Identificador da tokenização do GATE2all. |
referenceId |
Texto | 100 | Número de identificação da loja. |
postBackUrl |
Texto | — | URL onde o GATE2all notificará eventuais status da trancação para o lojista. |
provider |
Texto | 100 | Nome da Rede Adquirente. |
saveCard |
Booleano | Default true | |
cardInfo.number |
Texto | 20 | Número do cartão truncado. |
cardInfo.expirationMonth |
Número | 2 | Mês da validade do cartão. Formato MM |
cardInfo.expirationYear |
Número | 4 | Ano da validade do cartão. Formato YYYY |
cardInfo.brand |
Texto | 20 | Bandeira do cartão.Bandeiras. |
cardInfo.token |
Texto | 100 | Token do cartão. |
cardInfo.holderName |
Texto | 25 | Nome do Portador impresso no cartão, só aceita caracteres |
Consulta do token pelo Número de Referencia com Limite
Também é possível realizar uma consulta pelo número de referência passando ou não um limite.
Requisição
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
URL obj = new URL("https://api.gate2all.com.br/v1/tokenization?referenceId=1496173577825&limit=2");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("content-type", "application/json");
con.setRequestProperty("authenticationApi", "demo");
con.setRequestProperty("authenticationKey", "demo");
Scanner scanner = new Scanner(new BufferedReader(new InputStreamReader(con.getInputStream())));
String response = scanner.nextLine();
scanner.close();
System.out.println(response);
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
referenceId |
Texto | 100 | Sim | Número de identificação da loja. |
limit |
Número | 10 | Não | Limite Máximo de referências 10. |
RESPOSTA
Retorno da Transação.
[
{
"tokenizationId": "7c6785d9-4922-4b0d-986e-9bb5e624c613",
"referenceId": "1496173577825",
"postBackUrl": "",
"saveCard": true,
"provider": "CIELO",
"cardInfo": {
"number": "402400******2927",
"expirationMonth": "04",
"expirationYear": "2026",
"brand": "VISA",
"token": "be4cbeb1-abb2-4913-8165-f86962143fa021"
}
}
]
Propriedade | Tipo | Tamanho | Descrição |
---|---|---|---|
tokenizationId |
Texto | 36 | Identificador da tokenização do GATE2all. |
referenceId |
Texto | 100 | Número de identificação da loja. |
provider |
Texto | 100 | Nome da Rede Adquirente. |
saveCard |
Booleano | Default true | |
cardInfo.number |
Texto | 20 | Número do cartão truncado. |
cardInfo.expirationMonth |
Número | 2 | Mês da validade do cartão. Formato MM |
cardInfo.expirationYear |
Número | 4 | Ano da validade do cartão. Formato YYYY |
cardInfo.brand |
Texto | 20 | Bandeira do cartão. Bandeiras. |
cardInfo.token |
Texto | 100 | Token do cartão. |
Transação com Token
Para criar uma transação com token é necessário enviar um POST para o seguinte recurso:
REQUISIÇÃO
{
"referenceId": "19893211234",
"amount": "1000",
"description": "Mouse sem fio",
"customer": {
"name": "Comprador Teste",
"document": "12345678909"
},
"payment": {
"card": {
"type": 1,
"capture": false,
"installments": 1,
"interestType": 3,
"authenticate": 3,
"softDescriptor": "Pagamento GATE2all",
"cardInfo": {
"token": "4b6a2aa5-de91-4d52-a4d1-f265f208e5a321"
}
}
}
}
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
URL obj = new URL("https://api.gate2all.com.br/v1/transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("content-type", "application/json");
con.setRequestProperty("authenticationApi", "demo");
con.setRequestProperty("authenticationKey", "demo");
String body = "{"
+ "\"referenceId\": \"123456789\","
+ "\"amount\": \"1000\","
+ "\"description\": \"TV LG 42\","
+ "\"postBackUrl\": \"http://requestb.in/qkg1clqk\","
+ " \"customer\": {"
+ " \"name\": \"LUIS A R ROMERO\","
+ " \"document\": \"12345678909\""
+ " },"
+ " \"payment\": {"
+ " \"card\": {"
+ " \"type\": 1,"
+ " \"capture\": true,"
+ " \"installments\": 1,"
+ " \"interestType\": 3,"
+ " \"softDescriptor\": \"EC02\","
+ " \"cardInfo\": {"
+ " \"token\": \"7a7820d0-ff6d-484a-8b8e-988d6d0ec0cc21\""
+ " }"
+ " }"
+ " }"
+ " "
+ "}";
con.setDoOutput(true);
DataOutputStream dos = new DataOutputStream(con.getOutputStream());
dos.writeBytes(body);
dos.flush();
dos.close();
Scanner scanner = new Scanner(new BufferedReader(new InputStreamReader(con.getInputStream())));
String response = scanner.nextLine();
scanner.close();
System.out.println(response);
Propriedade | Tipo | Tamanho | Obrigatório | Descrição |
---|---|---|---|---|
referenceId |
Texto | 100 | Sim | Número de identificação da loja. |
amount |
Número | 16 | Sim | Valor da transação sem pontuação. Os dois últimos dígitos são os centavos. (Ex: amount: 100 = R$ 1,00) |
description |
Texto | 300 | Não | Descrição da transação. |
customer.name |
Texto | 100 | Sim | Nome do portador do cartão. |
customer.document |
Texto | 18 | Não | Número do CPF/CNPJ do portador do cartão. |
card.type |
Número | 1 | Não | Default 1 - Configura as opcões disponíveis. 1 Configura cartão de crédito. 2 Configura cartão de débito. |
card.capture |
Boolano | — | Sim | true = Autoriza e confirma a transação . false = Autorização, mas não confirma a transação, necessitando realizar a confirmação (Captura) noutra requisição. |
card.installments |
Número | 2 | Sim | Número de parcelas. |
card.interestType |
Número | 1 | Não | Default: 3 - Operações disponíveis: 3. Parcelado Loja 4. Parcelado Administrador |
card.authenticate |
Número | 1 | Não | Default: 3 - Opções disponíveis: 1. Autorizar só transações autenticadas 2. Autorizar transações autenticadas ou não autenticadas 3. Autorizar sem autenticação |
card.softDescriptor |
Texto | 22 | Não | Texto a ser exibido na fatura do portador do cartão.SoftDescriptor |
cardInfo.token |
Texto | 100 | Sim | Token gerado anteriormente pela operação de Tokenização. |
cardInfo.cvv |
Número | 4 | Não | Código de segurança do cartão. Ao informar torna a transação mais segura. |
RESPOSTA
Transação autorizada e não capturada
{
"transactionId": "5a51ae6b-e91e-4b38-b596-e2acb77dca43",
"referenceId": "1489093308860",
"description": "Mouse sem fio",
"amount": "1000",
"status": 5,
"dtTransaction": "2020-12-09T18:01:17",
"payment": {
"card": {
"type": 1,
"installments": 1,
"capture": false,
"authenticate": 3,
"softDescriptor": "Pagamento GATE2all",
"interestType": 3,
"integrationType": 1,
"provider": "CIELO",
"providerVersion": "3.0",
"authenticationECI": 7,
"codAuthorization": "123456",
"providerReference": "10069930690009510E9A",
"providerCode": "00",
"providerMessage": "Transação autorizada",
"saveCard": true,
"cardInfo": {
"number": "402400******2927",
"expirationMonth": "04",
"expirationYear": "2026",
"cvv": "***",
"brand": "VISA",
"token": "4b6a2aa5-de91-4d52-a4d1-f265f208e5a321"
}
}
},
"customer": {
"name": "Comprador Teste",
"document": "12345678909"
}
}
Propriedade | Tipo | Tamanho | Descrição |
---|---|---|---|
transactionId |
Texto | 150 | Identificador da transação do GATE2all. |
dtTransaction |
DataHora | 19 | Data e hora da transação. |
card.provider |
Texto | 100 | Nome da instituição financeira. |
card.providerVersion |
Texto | 11 | Versão da Integração do Fornecedor |
card.providerReference |
Texto | 100 | Referência da instituição. |
card.providerMessage |
Texto | 100 | Mensagem da instituição. |
card.providerCode |
Texto | 100 | Codigo de resposta da instituição. |
card.codAuthorization |
Texto | 100 | Codigo de autorização da instituição. |
card.authenticationECI |
Texto | 100 | Indicador de autenticação da transação.Códigos ECI |
cardInfo.number |
Texto | 20 | Número do cartão truncado. |
cardInfo.brand |
Texto | 20 | Bandeira do cartão.Bandeiras. |
cardInfo.expirationMonth |
Número | 2 | Mês da validade do cartão. Formato MM |
cardInfo.expirationYear |
Número | 4 | Ano da validade do cartão. Formato YYYY |
cardInfo.cvv |
Número | 4 | Código de segurança do cartão truncado |
status |
Número | 2 | Status da transação retornado pelo GATE2all catálogo. |
Notificação
No GATE2all Loja e GATE2all Integrado é possível enviar uma URL de Notificação na requisição ou registrar essa URL no GATE2all caso seja a mesma URL para todas as requisições, o GATE2all notificará qualquer mudança de status de uma transação na URL enviada ou registrada.
A notificação executa uma requisição POST na URL com o corpo da mensagem em formato JSON. Ao lado temos um exemplo do conteúdo enviado na notificação.
Exemplo de notificação
{
"transactionId": "91d4f152-7024-4a4a-a212-ab457fe6e766",
"referenceId": "5SVM9W4"
}
curl -X POST \
https://hookbin.com/bin/ZB77eo1a \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '{
"transactionId": "91d4f152-7024-4a4a-a212-ab457fe6e766",
"referenceId": "5SVM9W4"
}'
A porta para a URL de notificação deve ser 80, 8080 e 443. Caso o endereço para notificação estiver em um porta diferente, não receberá a notificação.
A notificação espera como resposta um 200 (Status HTTP), caso a resposta não seja um 200, o sistema tentará 5 vezes mais. Lembrando que é possível efetuar a consulta em qualquer operação, com a consulta pelo transactionId ou pelo referenceId consulta
STATUS
Status retornados pela API
CÓDIGO | DESCRIÇÃO | TIPO DE STATUS |
---|---|---|
0 | TRANSACAO INICIADA | Transitório |
1 | AGUARDANDO PAGAMENTO | Transitório |
3 | EM ANALISE | Transitório |
4 | EXPIRADA | Definitivo |
5 | AUTORIZADA | Transitório |
6 | CONFIRMADA | Definitivo |
7 | NEGADA | Definitivo |
8 | CANCELAMENTO EM ANDAMENTO | Transitório |
9 | CANCELADA | Definitivo |
10 | PENDENTE DE CONFIRMAÇÃO | Transitório |
11 | FALHA NA COMUNICAÇÃO COM FORNECEDOR | Definitivo |
12 | INTENCAO CANCELADA | Definitivo |
HTTP Status Code
HTTP STATUS CODE | DESCRIÇÃO |
---|---|
200 | OK |
201 | Created |
400 | Bad Request |
401 | Unauthorized |
404 | Resource Not Found |
405 | Method Not Allowed |
500 | Internal Server Error |
503 | Service Unavailable |
Erros da API
RESPOSTA
{
"error": {
"message": "O campo amount e obrigatorio."
}
}
{
"error": {
"message": "O campo amount e obrigatorio."
}
}
Propriedade | Descrição |
---|---|
message |
Mensagem de erro retornado pelo GATE2all |
STATUS ECI
RESULTADO DA AUTENTICAÇÃO | VISA | MASTERCARD | AURA | DEMAIS |
---|---|---|---|---|
Transação autenticada com sucesso | 5 | 2 | N/D | N/D |
Portador não fez autenticação, pois o emissor não forneceu mecanismos de autenticação. | 6 | 1 | N/D | N/D |
Portador não se autenticou com sucesso, pois ocorreu um erro técnico inesperado. | 7 | 1 | N/D | N/D |
Portador não se autenticou com sucesso. | 7 | 0 | N/D | N/D |
A loja optou por autorizar sem passar pela autenticação. | 7 | 0 | 0 | 7 |
SoftDescriptor
As adquirentes suportam uma quantidade distinta de caracteres no Soft Descriptor, caso seja enviado mais caracteres que o suportado pela adquirente a quantidade excedente não será enviada.
PROVIDER | Tamanho máximo |
---|---|
Cielo | 13 |
Rede | 13 |
GetNet | 22 |
GetNet Rest | 22 |
Redes Adquirentes
PROVIDER | PROVIDERVERSION |
---|---|
Cielo | 1.5 |
Cielo | 3.0 |
Rede | Rest |
GetNet | Não enviar |
GetNet | Rest |
Bandeiras
Bandeiras suportadas pela API
Adquirente | Tipo | Cielo | Rede Rest | GetNet | GetNet Rest |
---|---|---|---|---|---|
Visa | Crédito | ||||
Mastercard | Crédito | ||||
Diners Club | Crédito | ||||
American Express | Crédito | ||||
Elo | Crédito | ||||
Hipercard | Crédito | ||||
Hiper | Crédito | ||||
Aura | Crédito | ||||
Discover | Crédito | ||||
JCB | Crédito | ||||
Credz | Crédito | ||||
Amex | Crédito | ||||
Cabal | Crédito | ||||
Sorocred | Crédito | ||||
Credsystem | Crédito | ||||
Banescard | Crédito | ||||
Visa Electron | Débito | ||||
Mastercard Maestro | Débito | ||||
Elo Caixa Econômica Federal | Débito Virtual |