Suggest Edits

Importando o Checkout Cappta

 

O Checkout Cappta é uma API JavaScript, por isso é muito simples importa-la, basta incluir na sua página o seguinte tag ao lado:

<script type="text/javascript" src="https://s3.amazonaws.com/cappta.api/v2/dist/cappta-checkout.js"></script>
Suggest Edits

Realizando a autenticação

 

Antes de realizar seus pagamentos será necessário autenticar o seu PDV, para isso a API disponibiliza a função authenticate.

Callback

Nosso Checkout tem callbacks de forma sincrona, ou seja, espere a resposta antes de prosseguir.

Essa função retorna uma instância do Checkout Cappta, através dela você terá acesso a todas as funções disponibilizadas pela API, que serão descritas mais abaixo.

Request para autenticação

Parâmetro
Tipo
Descrição

authenticationKey

string

Chave de autenticação do integrador disponibilizada pelo time de homologação.

merchantCnpj

string

É o CNPJ da loja que está utilizando o TEF da Cappta, precisa ser equivalente ao que está configurado no CapptaGpPlus.

checkoutNumber

number

Número de pdv do CNPJ que está utilizando o TEF da Cappta, precisa ser equivalente ao que está configurado no CapptaGpPlus.

var authenticationRequest = {
    authenticationKey: '795180024C04479982560F61B3C2C06E'
};

var success = function(response) {
    // callback para autenticação bem sucedida
    console.log(response.merchantCheckoutGuid);
};

var error = function(response) {
    // callback para autenticação que falhou
    console.log(response.reason);
};

var handlePendingPayments = function(response) {
    // callback para notificação de transações pendentes
    console.log(response.details.administrativeCodes)

};

// instância do CheckoutCappta
var checkout = CapptaCheckout.authenticate(authenticationRequest, success, error, handlePendingPayments);
Suggest Edits

Callback de sucesso

 

Será executado o callback de sucesso quando a autenticação for bem sucedida, através dele será passado os seguintes parâmetros:

Propriedade
Tipo
Descrição

authenticated

bool

Confirmação da autenticação efetuada com sucesso.

merchantCheckoutGuid

string

Token do PDV autenticado, guarde esse valor pois ele será necessário para capturar mais detalhes da sua transação através da API restful, vamos explicar com mais detalhes em seguida.

merchantCheckoutGuid

Caso tenha sucesso você receberá o merchantCheckoutGuid

Sincrono

Aguarde o callback antes de prosseguir

Suggest Edits

Callback de erro

 

Será executado o callback de erro quando não for possível autenticar com o CapptaGpPlus, através dele será passado os seguintes parâmetros:

Propriedade
Tipo
Descrição

reasonCode

number

Código que representa o motivo pelo qual a operação foi negada, as possibilidades deste código podem ser consultadas na tabela Códigos de motivo para operações negadas

reason

string

Descreve o motivo pelo qual a operação foi negada

Suggest Edits

Callback de transações pendentes

 

Será executado o callback de transações pendentes caso a última sessão de múltiplos pagamentos tenha ficado em aberto.

Por exemplo: Foi informada a quantidade de 5 pagamentos para iniciar a sessão de múltiplos pagamentos, porém ao final do 3° ocorreu um erro e a página foi recarregada, no momento que for realizada a autenticação novamente, essa função será chamada, o código administrativo dos 3 pagamentos realizados será informado e nesse momento você deve confirmar ou desfazer as transações para finalizar a sessão pendente. Veja mais detalhes na sessão de Multiplos pagamentos.

Propriedade
Tipo
Descrição

reasonCode

number

Código que representa o motivo pelo qual a operação foi negada, as possibilidades deste código podem ser consultadas na tabela Códigos de motivo para operações negadas

details

object

Objeto contendo os códigos administrativos das transações que ficaram pendentes da sessão de multiplos pagamentos.

Para detalhamento dos códigos de retorno consulte a tabela Possíveis códigos de retorno

Para recuperar o CNPJ e PDV do TEF basta clicar com o botão direito do mouse no ícone do CapptaGpPlus no taskbar do windows e selecionar a opção Sobre o Cappta Cartões a tela que será exibida contém as informações necessárias.

A chave de autenticação será fornecida pelo time de homologação assim que o processo de integração for solicitado. Ela deverá ser sempre utilizada para identificar o seu software.

Obs: Caso a chave utilizada seja inválida, o CapptaGpPlus não irá autenticar a integração.

Suggest Edits

Pagamento

 

Abaixo serão descritas todas as formas de pagamento disponibilizadas pelo Checkout Cappta.

Suggest Edits

Pagamento Débito / Voucher

 

Para realizar um pagamento débito ou voucher é bem simples, basta informar o valor a ser debitado.

Request para pagamento débito / voucher

Parâmetro
Obrigatório?
Tipo
Descrição

amount

Sim

float

Valor do pagamento

Para detalhamento das funções de sucesso e erro, consulte a sessão de Callback das operações

.

//Não esqueça de realizar a autenticação aqui \o/

var success = function(response) {
    // callback para pagamento bem sucedido
    console.log(response.administrativeCode);
    console.log(response.receipt.merchantReceipt);
};

var error = function(response) {
    // callback para pagamento que falhou
    console.log(response.reason);
};

checkout.debitPayment({ amount: 10 }, success, error);
Suggest Edits

Pagamento Crédito

 

O pagamento crédito também é bem simples, porém precisamos de alguns dados a mais para configura-lo,
como quantidade de parcelas e a configuração de parcelamento (confira logo abaixo para mais detalhes).

Atenção!

Para detalhamento das funções de sucesso e erro, consulte a sessão de Callback das operações

Request para pagamento crédito

Parâmetro
Obrigatório?
Tipo
Descrição

amount

Sim.

number

Valor do pagamento

installments

Sim.

number

Determina a quantidade de parcelas do pagamento, caso seja informado 1 a venda será realizada como crédito à vista, caso seja maior que isso será um crédito parcelado. Caso não seja informado o valor default é igual a 1, ou seja, a venda será considerada automaticamente a vista.

installmentType

Somente se installments for maior que 1

number

Determina a configuração do parcelamento, verifique a tabela Tipos de Parcelamento para consultar os valores possíveis

//Não esqueça de realizar a autenticação aqui \o/

var request = {
    amount: 10,
    installments: 3,
    installmentType: 1 //Parcelamento Administradora
};

var success = function(response) {
    // callback para pagamento bem sucedido
    console.log(response.administrativeCode);
    console.log(response.receipt.merchantReceipt);
};

var error = function(response) {
    // callback para pagamento que falhou
    console.log(response.reason);
};

checkout.creditPayment(request, success, error);
Suggest Edits

Pagamento Crediário

 

Assim como o pagamento crédito o crediário também necessita de alguns dados a mais para facilitar o seu processamento.

Request para pagamento crediário

Parâmetro
Obrigatório?
Tipo
Descrição

amount

SIm

float

Valor do pagamento

installments

Sim

number

Quantidade de parcelas do pagamento

Importante!

Para detalhamento das funções de sucesso e erro, consulte a sessão de Callback das operações

//Não esqueça de realizar a autenticação aqui \o/

var request = {
    amount: 10,
    installments: 3
};

var success = function(response) {
    // callback para pagamento bem sucedido
    console.log(response.administrativeCode);
    console.log(response.receipt.merchantReceipt);
};

var error = function(response) {
    // callback para pagamento que falhou
    console.log(response.reason);
};

checkout.splittedDebitPayment(request, success, error);
using System;
using System.Net.Http;

var baseAddress = new Uri("https://integracao.cappta.com.br/payment/");

using (var httpClient = new HttpClient{ BaseAddress = baseAddress })
{
    httpClient.DefaultRequestHeaders.TryAddWithoutValidation("apikey", "1B489E726C284CC78DE715C7399114BF");

    using(var response = await httpClient.GetAsync("0C63C53CF0094F9E95F6803C965BDF5C/02312413000"))
    {
        string responseData = await response.Content.ReadAsStringAsync();
    }
}
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://integracao.cappta.com.br/payment/0C63C53CF0094F9E95F6803C965BDF5C/02312413000");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  "apiKey: 1B489E726C284CC78DE715C7399114BF"
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);
Suggest Edits

Cancelamento de pagamentos

 

Somente será possível cancelar pagamentos que já foram confirmados dentro do mesmo dia ou seja não será possível cancelar pagamentos de dias anteriores.

Importante!

No caso de uma transação conter uma ordem de split esta será cancelado também.

Request para cancelamento

Parâmetro
Descrição

administrativePassword

administrativeCode

administrativeCode

Identificador único para pagamentos, é devolvido quando a transação é autorizada mas também pode ser consultado no portal de transações Cappta

//Não esqueça de realizar a autenticação aqui \o/

var request = {
    administrativePassword: 'cappta',
    administrativeCode: '000000000'
};

var success = function(response) {
    // callback para cancelamento bem sucedido
    console.log(response.administrativeCode);
    console.log(response.receipt.merchantReceipt);
};

var error = function(response) {
    // callback para cancelamento que falhou
    console.log(response.reason);
};

checkout.paymentReversal(request, success, error);
Suggest Edits

Callback das operações

 

Para cada operação com o CapptaGpPlus, seja pagamento ou cancelamento, além do objeto de request para cada operação você irá passar duas funções como parâmetro, que serão descritas abaixo:

Callback de sucesso

Atenção

Nosso Checkout tem callbacks de forma sincrona, ou seja, espere a resposta antes de prosseguir.

Será executado o callback de sucesso da operação logo que o pagamento ou cancelamento for bem sucedido, através dele será passado as seguintes informações:

Propriedade
Tipo
Descrição

administrativeCode

string

Identificador único para pagamentos, é devolvido quando a transação é autorizada mas também pode ser consultado no portal de transações Cappta.

acquirerAffiliationKey

string

Número de afiliação do estabelecimento na rede adquirente. Obs.: Também conhecido como “Número Lógico” ou “Código do Estabelecimento”.

acquirerAuthorizationCode

string

Código de autorização retornado pela adquirente.

acquirerAuthorizationDateTime

date

Contém a data + hora completa da autorização do pagamento ou cancelamento.

acquirerName

string

Nome da adquirente responsável pela aprovação do pagamento ou cancelamento.

acquirerUniqueSequentialNumber

string

Número sequencial único da adquirente.

cardBrandCode

number

Código da bandeira do cartão.

cardBrandName

string

Nome da bandeira do cartão do cliente.

customerCardPan

string

Número do cartão (PAN) utilizado no pagamento, cifrado no seguinte formato: 999999**9999

installments

number

Quantidade de parcelas do pagamento.

uniqueSequentialNumber

string

Número sequencial único do canal de pagamento.

receipt

object

Objeto contento os cupons para impressão, mais detalhes na tabela abaixo.

Receipt

Propriedade
Tipo
Descrição

customerReceipt

string

Cupom do cliente

merchantReceipt

string

Cupom do lojista

reducedReceipt

string

Cupom reduzido

Callback de erro

Propriedade
Tipo
Descrição

reasonCode

number

Código que representa o motivo pelo qual a operação foi negada, as possibilidades deste código podem ser consultadas na tabela Códigos de motivo para operações negadas

reason

string

Descreve o motivo pelo qual a operação foi negada.

Suggest Edits

Capturando todos os dados da transação

 

A cada transação realizada você recebe no callback os dados da transação, conforme descrito abaixo.

Assim que você realizar um pagamento ou cancelamento através do Checkout Cappta, receberá o código administrativo da transação e os cupons para impressão.

{
  "AcquirerAffiliationKey": "SIMULA",
  "AcquirerAuthorizationCode": "SIMULA",
  "AuthorizationDateTime": "2017-02-03T14:13:45",
  "AcquirerName": "Cielo",
  "AcquirerUniqueSequentialNumber": "",
  "AdministrativeCode": "02312413000",
  "CardBrandName": "MASTERCARD",
  "CustomerCardBin": "605088",
  "CustomerCardLastFourDigits": "8775",
  "CustomerReceipt": "Cupom do cliente",
  "MerchantReceipt": "Cupom do lojista",
  "ReducedReceipt": "Cupom reduzido",
  "PaymentProductName": "Crédito à Vista",
  "PaymentTransactionAmount": 7.89,
  "PaymentTransactionInstallments": 1,
  "UniqueSequentialNumber": "013214"
}
Suggest Edits

Inicializando uma sessão de multiplos pagamentos

 

O múltiplos pagamentos da Cappta é um pouco diferente do mercado. Desenvolvemos ela em busca de facilitar a vida do varejista. Ou seja, caso ocorra algum erro durante o múltiplos pagamentos o varejista não vai precisar cancelar as transações uma a uma, com um simples comando de cancelamento por meio da sua automação, ele poderá cancelar todas as transações que foram realizadas dentro da sessão Múltiplos Pagamentos.

Assim que o último pagamento da sessão múltiplos pagamentos for autorizado, automaticamente todos os pagamentos serão confirmados, não há necessidade de enviar nenhum comando para isso. A sessão múltiplos cartões é representada pelo fluxograma abaixo:

Parâmetro
Tipo
Descrição

numberOfPayments

number

Número de pagamentos dentro da sessão multiplos pagamentos.

complete

function

Callback que será acionado assim que a sessão multiplos pagamentos for finalizada.

//Não esqueça de realizar a autenticação aqui \o/

var complete = function(){
    console.log('Sessão multiplos pagamentos finalizada com sucesso!');    
};

checkout.startMultiplePayments(3, complete);
Suggest Edits

Confirmando ou desfazendo os pagamentos

 

Para finalizar uma sessão múltiplos cartões antes que se tenha aprovado a quantidade de pagamentos informada, basta confirmar (confirmPayments) ou desfazer (undoPayments) os pagamentos pendentes.

Reforçamos que os pagamentos serão aprovados automaticamente ao terminar a sessão, a confirmação ou desfazimento é necessária apenas para encerrar a sessão antes do último pagamento, por exemplo: Foram informados 5 pagamentos para sessão, porém ao final do 3° surgiu a necessidade desfazer todos os anteriores, nesse momento deve ser chamada a função undoPayments.

Importante!

Existe um limite de no máximo 9 cartões para uma sessão.

//Não esqueça de realizar a autenticação aqui \o/

if (confirm('Deseja encerrar a sessão multiplos pagamentos?')){

    if (confirm('Clique em "Ok" para confirmar os pagamentos da sessão ou "Cancel" para desfaze-los')){
        checkout.confirmPayments();
    } else {
        checkout.undoPayments();
    }
}
Suggest Edits

Solicitando informações pelo Pinpad

 

Utilizando esta função, é possível solicitar informações a serem digitadas no pinpad. As opções consistem em: CPF, Telefone/Celular e senha.

Request para informações do Pinpad

Parâmetro
Obrigatório?
Tipo
Descrição

inputType

Sim

number

Tipo de informação a ser solicitada no pinpad. Consulte a tabela abaixo para os valores.

Tipos de informação

Tipo
Valor
Descrição

Cpf

1

Representa um número do documento CPF, que contem 11 dígitos.

Telefone/Celular

2

Representa um número de telefone ou celular, contendo 10 ou 11 dígitos. DDD + Número, exemplo: (00) 91234-1234 ou (00) 1234-1234

Senha

3

Representa uma senha numérica de 4 a 12 dígitos.

Callback de sucesso

Será executado o callback de sucesso logo em que for confirmada a informação no Pinpad:

Propriedade
Tipo
Descrição

reasonCode

number

Código que representa o motivo pelo qual a operação foi negada, as possibilidades deste código podem ser consultadas na tabela Códigos de motivo para operações negadas

reason

string

Descreve o motivo pelo qual a operação foi negada.

//Não esqueça de realizar a autenticação aqui \o/

var success = function (response) {
    console.log(response.pinpadValue);
};

var error = function (response) {
    console.log(response.reason);
};

var inputType = 1; // CPF

checkout.getPinpadInformation({ inputType: inputType }, success, error);
Suggest Edits

Possíveis códigos de retorno

 
Código
Descrição

0

Sucesso

1

Não autenticado/Alguma das informações fornecidas para autenticação não é válida

2

CapptaGpPlus está sendo inicializado

7

Erro interno no CapptaGpPlus

8

Erro na comunicação entre o Checkout Cappta e o CapptaGpPlus

9

Ocorre quando qualquer operação é realizada sem que se tenha finalizado o último pagamento

10

Uma reimpressão ou cancelamento foi executada dentro de uma sessão multi-cartões

14

Valor digitado no pinpad é inválido.

15

Existem pagamentos pendentes de uma sessão de multiplos pagamentos não finalizada.

Suggest Edits

Códigos de motivo para operações negadas

 

1

Não autenticado/Alguma das informações fornecidas para autenticação não é válida

2

CapptaGpPlus está sendo inicializado

3

Formato da requisição recebida pelo CapptaGpPlus é inválido

4

Operação cancelada pelo operador

5

Pagamento não autorizado/pendente/não encontrado

6

Pagamento ou cancelamento negados pela rede adquirente ou falta de conexão com internet

7

Erro interno no CapptaGpPlus

8

Erro na comunicação entre o Checkout Cappta e o CapptaGpPlus

Suggest Edits

Tipos de Parcelamento

 
Código
Descrição

1

Parcelamento Administradora - Configuração de parcelamento em que os juros são arcados pelo banco ou administradora, o limite de parcelas e valor mínimo são pré-estabelecidos e a venda não é tratada como parcelada para o lojista sendo assim o valor será depoistado integralmente em sua conta bancária. O cliente irá pagar as prestações com juros que serão revertidos para o banco/administradora do cartão

2

Parcelamento Lojista - É o parcelamento em que a quantidade de parcelas é definida no ato da compra. O limite de quantidade de parcelas e valor mínimo para cada uma pode ser determinado nas configurações do CapptaGpPlus. O lojista irá receber os créditos mensalmente em sua conta e o custo pelo financiamento é definido e arcado pelo próprio estabelecimento

Suggest Edits

O que é Recorrência?

 

Com a Cappta é possível cobrar seus clientes de forma recorrente através de planos e assinaturas.

A recorrência de pagamentos é a forma com que a loja consegue cobrar seus clientes de maneira pré-definida e continua baseando-se em planos que mais se encaixem no seu modelo de negócio. Umas das vantagens da recorrência é o fato de que ela não compromete limite do cartão do cliente durante o período da assinatura, cobrando apenas o valor estipulado mensalmente.

O plano define como a loja gostaria de cobrar seu cliente. Ao criar um plano é definido diversos parâmetros como periodicidade da cobrança (dias, semanal, mensal, trimestral, etc), a duração e o valor a ser cobrado. Cada plano tem uma lista de itens que correspondem aos produtos e/ou serviços oferecidos naquele plano, a soma dos valores desses itens define o valor do plano a ser cobrado.

Uma assinatura é o vínculo entre o cliente final e o plano contratado, nela são adicionados o cliente e o cartão que será utilizado nas cobranças. Para uma assinatura ser criada é necessário existir pelo menos um plano no qual ela será vinculada, ou seja, um plano pode ter várias assinaturas e uma assinatura pode estar atrelada somente a um plano.

Após a assinatura feita é possível personaliza-la acrescentando mais itens que não estavam no plano ou aplicando descontos. Esses itens podem ser temporários, escolhendo a quantidade de ciclos que devem ser aplicados, ou permanentes, sendo aplicado a todos os ciclos até o final da recorrência.

Planos são as propostas apresentadas pelas empresas aos clientes para oferecerem seus serviços. Com eles a empresa pode montar diversas formas de cobranças, itens, valores e periodicidade oferecendo uma grande variedade de opções para os clientes.

Suggest Edits

Criar Plano

 

Esse método é utilizado para criar um plano. Para isso é preciso criar um objeto plano passando obrigatóriamente name, description, interval_count e os items que compõem o plano como mostra na tabela abaixo:

Request para criar plano

Propriedade
Tipo
Obrigatório
Descrição

name

String

Sim

Nome do plano.

description

String

Sim

Descrição do plano.

statement_descriptor

String

Não

Texto exibido na fatura do cartão.

cycles

Int

Não

Representa a quantidade de vezes que o cliente será cobrado.

interval

String

Sim

Periodicidade no qual será feita a cobrança do plano.
Os valores possíveis são week, month ou year

interval_count

Int

Sim

ntervalo da cobrança. Ex:
plano mensal = interval_count (1) e interval (month)
plano semestral = interval_count (6) e interval (month)
plano anual = interval_count (1) e interval (year)

trial_period_days

Int

Sim

Período de teste em dias. A assinatura só será cobrada após esse périodo.

items

Array de
Itens do Plano

Sim

Itens do plano.
Para mais informações sobre itens do plano clique aqui

Uma escola de inglês oferece um curso premium de um ano e deseja cobrar seus clientes com a recorrência. Um plano é a representação desse curso dentro da recorrência. Para esse curso com duração de um ano o cycles dele será igual a 12 representando as doze cobranças que serão feitas. O intervalo dessas cobranças é mensal, logo o interval recebe o valor de “month” e o interval_count que representa a quantidade de meses de um período será 1. Quando um cliente assinar esse plano a escola quer dar um presente ao aluno de 15 dias de aulas antes de começar a cobrar, então o trial_period_days será 15.

Atenção!

O valor de um plano é definido pela soma dos price de seus itens

Nesse plano estão inclusos as aulas e o material, representados por dois itens. A aula será cobrada durante todo o curso então o cycles do item será 12 e o valor dele é representado pelo price de 12900 (que é o equivalente a R$129,00). O material só será cobrado nas 6 primeiras parcelas da recorrência então o cycles é definido como 6 e o price de 5990 (R$ 59,90).

O valor de um plano é definido pela soma dos price de seus itens, portanto nesse exemplo o plano tem valor de R$188,90 (12900 + 5990). Após os 6 primeiros meses de valor do plano cai para R$ 129,90 pois o material para de ser cobrado na recorrência.

Atenção!

Se os ciclos da recorrência não forem informados, a assinatura continuará a ser cobrada até ser cancelada

Response para criar plano

Propiedade
tipo
Descrição

id

String

Id do plano criado.

status

String

Status do plano que foi criado

description

String

Descrição do plano.

name

String

Nome do plano.

creation_datetime

DateTime

Data de criação do plano.

var request = {
        name: "Plano Ingles Premium",
        description: "Plano anual de ingles com aulas e matrial incluso",
        statement_descriptor: "Ingles Plano Premium",
        cycles: 12,
        interval: "month",
        interval_count: 1,
        trial_period_days: 15,
        items: [
            {
            name: "Aula",
            description: "Aulas presenciais",
            quantity: 1,
            cycles: 12,
            price: 12900
            },
            {
            name: "Material",
            description: "Material utilizado em aula",
            quantity: 1,
            cycles: 6,
            price: 5990
            }
        ]
    };

    var onRecurrencySuccess = function (response) {
        console.log(response);
    };
    var onRecurrencyDenied = function (error) {
        updateResult('Código: ' + error.reasonCode + '<br>' + error.reason);
    };
    checkout.createPlan(request, onRecurrencySuccess, onRecurrencyDenied);
Suggest Edits

Excluir Plano

 

Excluir um plano é bem simples, basta apenas passar o id do plano que deseja excluir para o método.

Request para excluir plano

Propiedade
tipo
Descrição

plan_id

String

Id do plano a ser excluído.

Response de excluir plano

Propiedade
tipo
Descrição

codigo_resposta

Int

Representa o código de retorno da exclusão de plano. Para detalhamento dos códigos de retorno consulte a tabela Possíveis códigos de retorno

Fique atento!

Ao excluir um plano, as assinaturas que foram criadas a partir desse plano não são afetadas, elas continuarão sendo cobradas até o termino do período da recorrência.

{
    var success = function () {
        alert('Plano excluído com sucesso. Id: ' + plan_id);
    }
    var error = function (error) {
        updateResult('Código: ' + error.reasonCode + '<br>' + error.reason);
    }

    checkout.deletePlan(plan_id, success, error);
}
Suggest Edits

Listar Planos

 

Para se obter todos os planos basta fazer uma requisição sem parâmetros para a função getPlans, com isso será retornado uma array contendo todos os planos criados vinculados aquele checkout.

Response de obter todos os planos

Propiedade
tipo
Descrição

plans

array de planos

Lista contendo todos os planos daquele checkout.

Objeto Plano

Propiedade
tipo
Descrição

cycles

int

Representa a quantidade de vezes que o cliente será cobrado.

interval_count

int

Intervalo da cobrança. Ex:
plano mensal = interval_count (1) e interval (month)
plano semestral = interval_count (6) e interval (month)
plano anual = interval_count (1) e interval (year)

trial_period_days

int

Período de teste em dias. A assinatura só será cobrada após esse périodo.

description

string

Descrição do plano.

id

string

Id do plano.

interval

string

Periodicidade no qual será feita a cobrança do plano.
Os valores possíveis são week, month ou year

name

string

Nome do plano.

statement_descriptor

string

Texto exibido na fatura do cartão.

status

string

Status do plano.

created_at

DateTime

Data da criação.

deleted_at

DateTime

Data da exclusão.

updated_at

DateTime

Data da última atualização.

items

array de itens

Lista contendo todos os itens do plano. Para mais informações verifique a sessão de Itens do plano

//Request de getPlans
{
    var success = function (response) {
        updateResult(response);
    };
    var error = function (error) {
        updateResult('Código: ' + error.reasonCode + '<br>' + error.reason);
    };

    checkout.getPlans(success, error);
}
Suggest Edits

Obter plano por Id

 

Request para obter apenas um plano

Propiedade
tipo
Obrigatório
Descrição

plan_id

String

Sim

Id do plano a ser excluido.

Response para obter apenas um plano

Propiedade
tipo
Descrição

plan

Plano

Objeto do tipo plano. Para mais informações veja Objeto Plano

//Request de getPlanById
{
    var success = function (response) {
        updateResult(response);
    };
    var error = function (error) {
        updateResult('Código: ' + error.reasonCode + '<br>' + error.reason);
    };

    checkout.getPlanById({ planId: planId }, success, error);
}
Suggest Edits

Itens do plano

 

Os itens do plano são a representação dos produtos e serviços oferecidos no plano. Um plano pode ter diversos itens e a soma dos valores deses itens resultam no valor total do plano.

Propiedade
tipo
Descrição

name

String

Nome

description

String

Descrição do item.

quantity

Int

Quantidade

cycles

Int

Ciclos de cobrança. Ex: 1 ciclo representa um item que será cobrado apenas uma vez

price

Int

Valor do item em centavos. Ex. 5990 equivale a R$59,90

Importante!

Ao incluir ou excluir um item do plano, as assinaturas ativas que foram criadas a partir desse plano não são afetadas, o valor delas continuará o mesmo do plano original que ela foi criada. Consulte a sessão incluir item na assinatura para incluir um item em uma assinatura ativa.

Suggest Edits

Adicionar item

 

Para incluir um item em um plano é necessário chamar o método passando o id do plano no qual ele será inserido junto com o item que será incluído.

Request para incluir um item no plano

Propiedade
tipo
Obrigatório
Descrição

plan_id

String

Sim

Id do plano.

item

Item do plano

Sim

Item a ser incluído. Ver item do plano

Response de incluir um item no plano

Propiedade
tipo
Obrigatório
Descrição

item_id

String

Sim

Id do item que foi incluído.

//Request de getPlanById
{
    var success = function (response) {
        updateResult(response);
    };
    var error = function (error) {
        updateResult('Código: ' + error.reasonCode + '<br>' + error.reason);
    };

    checkout.getPlanById({ planId: planId }, success, error);
}
Suggest Edits

Remover item

 

Remover um item de um plano é bem simples, basta informar o id do plano que o item deve ser removido e o id do item a ser removido.

Request para excluir plano

Propiedade
tipo
Obrigatório
Descrição

plan_id

String

Sim

Id do plano.

itemId

String

Sim

Id do item a ser excluido.

Response de excluir plano

Propiedade
tipo
Descrição

codigo_resposta

Int

Representa o código de retorno da exclusão de plano. Para detalhamento dos códigos de retorno consulte a tabela Possíveis códigos de retorno

{    
    var request = {
        plan_id: "pln_N6d8RyrhX5FL9n17",
        item_id: "si_qvreq6UJncLBNQk0"
    };

    var success = function (response) {
        updateResult('Item removido com sucesso!');
        console.log(response);
    };
    var error = function (error) {
        updateResult('Código: ' + error.reasonCode + '<br>' + error.reason);
    };

    checkout.removePlanItem(request, success, error);
}
Suggest Edits

Assinatura

 

Assinatura representa o vínculo entre o cliente final e o plano oferecido pelo lojista, é através dela que o cliente será cobrado de forma recorrente.

Abaixo segue a descrição dos métodos e estruturas necessárias para integrar com as assinaturas.

Suggest Edits

Criar assinatura

 

Para criar uma assinatura é necessário ter no mínimo um plano já criado na sua conta. Para detalhamento sobre como criar um plano consulte a sessão de Planos.
Com o plano já criado, basta chamar o método e informar o id do plano no qual a assinatura será vinculada, a data do início da recorrência, as informações do cliente que está assinando o plano. Após enviar essas informações o CapptaGpPlus irá fazer uma chamada para o pinpad pegar as informações do cartão que será utilizado naquela assinatura.

Quando a assinatura for finalizada com sucesso será retornado algumas informações como id da assinatura criada, status e data de criação além disso será enviado um comprovante contendo os detalhes da assinatura, plano, valores para ser entregue ao cliente.

Request para criar assinatura

Propiedade
tipo
Obrigatório
Descrição

plan_id

String

Sim

Id do plano. Para detalhamento sobre planos consulte a sessão de Planos

start_date

DateTime

Sim

Data que será iniciado a cobrança do plano.

customer

Customer

Sim

Cliente que está assinando o plano.

Customer

Propiedade
tipo
Obrigatório
Descrição

name

String

Sim

Nome do cliente.

email

String

Não

Email.

Response após criar assinatura

Propiedade
tipo
Descrição

id

String

Id da assinatura criada.

status

String

Data que será iniciado a cobrança do plano

created_at

DateTime

data da criação da assinatura

var request = {
        plan_id: "plan_82j19pMCzsy3axdv",
        start_date: "2017-07-21T12:15:11Z",
        customer: {
            name: "Carlos Alberto de Nobrega",
            email: "carlos.nobrega@gmail.com"
        }
    };

    var onRecurrencySuccess = function (response) {
        console.log(response);
    };
    var onRecurrencyDenied = function (error) {
        updateResult('Código: ' + error.reasonCode + '<br>' + error.reason);
    };
    checkout.createSubscription(request, onRecurrencySuccess, onRecurrencyDenied);
Suggest Edits

Cancelar assinatura

 

Para cancelar uma assinatura basta chamar o método passando o id da assinatura que será cancelada e se deseja cancelar também as faturas pendentes, para mais informações sobre faturas clique aqui

Request para cancelar uma assinatura:

Propiedade
tipo
Obrigatório
Descrição

subscription_id

String

Sim

Id da assinatura a ser cancelada.

cancel_pending_invoices

Bool

Não

Indica se as faturas pendentes devem ser canceladas, se nenhum valor for informado o padrão será false

Response de cancelar uma assinatura:

Propiedade
tipo
Descrição

codigo_resposta

Int

Representa o código de retorno da exclusão de plano. Para detalhamento dos códigos de retorno consulte a tabela Possíveis códigos de retorno

var request = {
    subscriptionId: subscriptionId,
    cancel_pending_invoices: true
};

var success = function () {
    alert('Assinatura cancelada com sucesso!');
};

var error = function (error) {
    updateResult('Código: ' + error.reasonCode + '<br>' + error.reason);
};

checkout.cancelSubscription(request, success, error);
Suggest Edits

Editar cartão da assinatura

 

Durante o período da assinatura é possível alterar o cartão no qual a assinatura é cobrada, para isso é preciso fazer uma chamada para o método updateSubscriptionCard passando o ID da assinatura que deve ser atualizada, após isso, o CapptaGpPlus irá fazer uma chamada para o pinpad pegar as informações do novo cartão que será utilizado naquela assinatura.

Request para atualizar cartão da assinatura

Propiedade
tipo
Obrigatório
Descrição

subscription_id

String

Sim

Id da assinatura

Response de cancelar uma assinatura

Propiedade
tipo
Descrição

codigo_resposta

Int

Representa o código de retorno da exclusão de plano. Para detalhamento dos códigos de retorno consulte a tabela Possíveis códigos de retorno

{
    var request = {
        subscription_id: document.getElementById('subscription_id').value
        }
    };

    var success = function (response) {
        updateResult('Cartão atualizado com sucesso!');
        console.log(response);
    };
    var error = function (error) {
        updateResult('Código: ' + error.reasonCode + '<br>' + error.reason);
    };

    checkout.updateSubscriptionCard(request, success, error);
}
Suggest Edits

Editar data de cobrança da assinatura

 

Assim como o cartão de cobrança, também é possível alterar a data de de cobrança da assinatura, para isso é preciso fazer uma chamada para o método updateSubscriptionBillingDate passando o ID da assinatura que será alterada e a nova data de cobrança.

Request para atualizar a data de cobrança da assinatura

Propiedade
tipo
Obrigatório
Descrição

subscription_id

String

Sim

Id da assinatura.

next_billing_date

DateTime

Sim

Nova data de cobrança da assinatura

Response de cancelar uma assinatura

Propiedade
tipo
Descrição

codigo_resposta

Int

Representa o código de retorno da exclusão de plano. Para detalhamento dos códigos de retorno consulte a tabela Possíveis códigos de retorno

{
    var request = {
        subscription_id: document.getElementById('subscription_id').value,
        next_billing_date: "2017-09-20T18:25:40Z"
    };

    var success = function (response) {
        updateResult('Data da próxima cobrança atualizada com sucesso!');
        console.log(response);
    };

    var error = function (error) {
        updateResult('Código: ' + error.reasonCode + '<br>' + error.reason);
    };

    checkout.updateSubscriptionBillingDate(request, success, error);
}
Suggest Edits

Listar assinaturas

 

Para obter uma lista com todas as assinaturas é necessário fazer uma requisição sem parâmetros para a função getSubscriptions, fazendo isso será retornado uma array contendo todas as assinaturas vinculadas aquele checkout.

Response de obter todos as assinaturas

Propiedade
tipo
Descrição

subscriptions

array de subscriptions

Lista contendo assinaturas

Objeto Assinatura

Propiedade
tipo
Descrição

interval_count

int

Intervalo da cobrança. Ex:
plano mensal = interval_count (1) e interval (month)
plano semestral = interval_count (6) e interval (month)
plano anual = interval_count (1) e interval (year)

id

string

Id da assinatura.

interval

string

Periodicidade no qual será feita a cobrança do plano.
Os valores possíveis são week, month ou year

statement_descriptor

string

Texto exibido na fatura do cartão.

status

string

Status da assinatura.

canceled_at

DateTime

Data de cancelamento.

created_at

DateTime

Data de criação.

next_billing_at

DateTime

Data da próxima cobrança.

start_at

DateTime

Data de início da assinatura.

updated_at

DateTime

Data da última atualização

credit_card

CreditCard

Objeto do tipo cartão de crédito. Para saber mais verifique a sessão CreditCard

customer

Customer

Objeto do tipo customer. Para saber mais verifique a sessão Customer

discounts

array de Desconto

Lista de descontos da assinatura. Para saber mais verifique a sessão Descontos da assinatura

items

array de Item

Lista de itens da assinatura. Para saber mais verifique a sessão Itens da assinatura

{

    var success = function (response) {
        updateResult('Assinaturas obtidas com sucesso! Total: ' + response.length);
        console.log(response);
    };

    var error = function (error) {
        updateResult('Código: ' + error.reasonCode + '<br>' + error.reason);
    };

   checkout.getSubscriptions(success, error);
Suggest Edits

Obter assinatura por Id

 

Para obter apenas uma assinatura especifica basta fazer a requisição para a função getSubscriptionsById passando o id da assinatura que deseja consultar.

Request para obter apenas uma assinatura

Propiedade
tipo
Obrigatório
Descrição

subscription_id

String

Sim

Id da assinatura.

Response para obter apenas uma assinatura

Propiedade
tipo
Descrição

Assinatura

Objeto assinatura

Ver Objeto Assinatura

{
    var success = function (response) {
        updateResult(response);
        console.log(response);
    };

    var error = function (error) {
        updateResult('Código: ' + error.reasonCode + '<br>' + error.reason);
    };

    checkout.getSubscriptionById("sub_N6d8RyrhX5FL9n17", success, error);
}
Suggest Edits

Itens da assinatura

 

Com os itens da assinatura você pode personalizar suas assinaturas deixando elas únicas para atender a necessidade de cada cliente.

Propiedade
tipo
Descrição

name

String

Nome

description

String

Descrição do item.

quantity

Int

Quantidade

cycles

Int

Ciclos de cobrança. Ex: 1 ciclo representa um item que será cobrado apenas uma vez

price

Int

Valor do item em centavos. Ex. 5990 equivale a R$59,90

Suggest Edits

Adicionar itens na assinatura

 

Para adicionar um item a assinatura basta indicar em qual assinatura aquele item deverá ser adicionado, isso é feito passando o subscriptionId e o item a ser adicionado.

Request para incluir um item na assinatura

Propiedade
tipo
Obrigatório
Descrição

subscriptionId

String

Sim

Id da assinatura.

item

Item da assinatura

Sim

Item a ser incluído. Ver item da assinatura

Response de incluir um item no plano

Propiedade
tipo
Obrigatório
Descrição

subscriptionItemId

String

Sim

Id do item que foi incluído.

{
    var request = {
        subscription_id: "sub_N6d8RyrhX5FL9n17",
        value: 3990,
        cycles: 4,
        description: "Aula adicional de reforço"
    };

    var success = function (response) {
        updateResult('Item criado com sucesso!');
        console.log(response);
    };
    var error = function (error) {
        updateResult('Código: ' + error.reasonCode + '<br>' + error.reason);
    };

    checkout.createSubscriptionItem(request, success, error);
}
Suggest Edits

Remover item da assinatura

 

Remover um item de um assinatura é bem simples, basta informar o ID da assinatura que o item deve ser removido e o ID do item a ser removido.

Request para excluir um item da assinatura:

Propiedade
tipo
Obrigatório
Descrição

subscription_id

String

Sim

Id da assinatura.

item_id

String

Sim

Id do item a ser excluído.

Response de excluir um item da assinatura:

Propiedade
tipo
Descrição

codigo_resposta

Int

Representa o código de retorno da exclusão de plano. Para detalhamento dos códigos de retorno consulte a tabela Possíveis códigos de retorno

{    
    var request = {
        subscription_id: "sub_N6d8RyrhX5FL9n17",
        item_id: "si_qvreq6UJncLBNQk0"
    };

    var success = function (response) {
        updateResult('Item removido com sucesso!');
        console.log(response);
    };
    var error = function (error) {
        updateResult('Código: ' + error.reasonCode + '<br>' + error.reason);
    };

    checkout.removeSubscriptionItem(request, success, error);
}

Suggest Edits

Desconto da assinatura

 

Assim como os itens da assinatura, os descontos ajudam a personalizar uma assinatura. Os descontos podem ser de duas maneiras:

Flat: Representa o desconto com valor fixo, nesse tipo de desconto o valor informado será exatamente o descontado da assinatura.

Percentage: Representa o desconto com valor variável, nesse tipo de desconto é informado a porcentagem de desconto que deseja incluir na assinatura e o valor descontado variará de acordo com o valor da fatura.

Desconto da assinatura:

Propiedade
tipo
Descrição

subcriptionId

String

Id da assinatura.

value

int

Valor a ser descontado.

discountType

String

Tipo de desconto a ser aplicado. Os valores possíveis são flat ou percentage.

cycles

Int

Ciclos de cobrança. Ex: 1 ciclo representa um item que será cobrado apenas uma vez

Suggest Edits

Adicionar desconto na assinatura

 

Para adicionar um desconto a uma assinatura basta informar o subscriptionId , este deve ser inserido e enviar um objeto desconto.

Request para incluir um desconto na assinatura:

Propiedade
tipo
Obrigatório
Descrição

subscriptionId

String

Sim

Id da assinatura.

discount

Desconto da assinatura

Sim

Item a ser incluido. Ver desconto da assinatura

Response de incluir um desconto no plano:

Propiedade
tipo
Descrição

codigo_resposta

Int

Representa o código de retorno da exclusão de plano. Para detalhamento dos códigos de retorno consulte a tabela Possíveis códigos de retorno

{
    var request = {
        subscription_id: "sub_N6d8RyrhX5FL9n17",
        value: 10,
        cycles: 12,
        discount_type: "percentage"
    };

    var success = function (response) {
        updateResult('Desconto criado com sucesso!');
        console.log(response);
    };
    var error = function (error) {
        updateResult('Código: ' + error.reasonCode + '<br>' + error.reason);
    };

    checkout.createSubscriptionDiscount(request, success, error);
}
Suggest Edits

Remover desconto da assinatura

 

Remover um desconto de uma assinatura é bem simples, basta informar o id da assinatura que o desconto deve ser removido e o id do desconto a ser removido

Request para excluir um desconto da assinatura:

Propiedade
tipo
Obrigatório
Descrição

subscriptionId

String

Sim

Id da assinatura.

DiscountId

String

Sim

Id do item a ser excluído.

Response de excluir um desconto da assinatura:

Propiedade
tipo
Descrição

codigo_resposta

Int

Representa o código de retorno da exclusão de plano. Para detalhamento dos códigos de retorno consulte a tabela Possíveis códigos de retorno

{
    var request = {
        subscription_id: "sub_N6d8RyrhX5FL9n17",
        discount_id: "dis_brMgW6KCdmf2dEQ7"
    };

    var success = function (response) {
        updateResult('Desconto removido com sucesso!');
        console.log(response);
    };
    var error = function (error) {
        updateResult('Código: ' + error.reasonCode + '<br>' + error.reason);
    };

    checkout.removeSubscriptionDiscount(request, success, error);
}

Fatura é como cobraremos o cliente de forma recorrente, a cada ciclo da assinatura é gerada uma fatura.

Objeto Invoice

Propiedade
tipo
Descrição

amount

Int

Valor da fatura.

id

int

Id da fatura.

acquirer_affiliation_code

String

Código de afiliação do estabelecimento na adquirente.

acquirer_authorization_code

String

Código de autorização.

acquirer_unique_sequential_number

String

Número Sequencial Único.

acquirer_name

String

Nome da adquirente.

card_brand_name

String

Nome da bandeira do cartão.

merchant_cnpj

String

CNPJ da loja.

status

String

Status da fatura, os valores possíveis são pending, paid, canceled, scheduled ou failed.

statement_descriptor

String

Texto exibido na fatura do cartão.

created_at

DateTime

Data de criação da fatura.

due_at

DateTime

Data de vencimento da fatura.

updated_at

DateTime

Data da ultima atualização.

customer

DateTime

Cliente que assinou a fatura.

Suggest Edits

Obter fatura por Id

 

Para obter uma fatura é preciso fazer uma requisição passando o Id da fatura para o método getInvoiceById.

Response de excluir um desconto da assinatura:

Propiedade
tipo
Obrigatório
Descrição

invoice_id

String

Sim

Id da fatura

Response de excluir um desconto da assinatura:

invoice

Invoce

Objeto do tipo invoice.

Request para obter uma fatura

{

    var success = function (response) {
        updateResult(message);
        console.log(response);
    };

    var error = function (error) {
        updateResult('Código: ' + error.reasonCode + '<br>' + error.reason);
    };

    checkout.getInvoiceById("in_qBY5VvpuEACaw5bg" , success, error);
}
Suggest Edits

Listar faturas

 

Para obter uma lista com todas as faturas é necessário fazer um request para o método getInvoices, o retorno será uma lista contando todas as faturas do checkout.

Response de excluir um desconto da assinatura

Propiedade
tipo
Obrigatório
Descrição

invoices

Array de Invoce

Sim

Lista de objetos do tipo invoice

{
    var success = function (response) {
        updateResult('Faturas obtidas com sucesso! Total: ' + response.length);
    };

    var error = function (error) {
        updateResult('Código: ' + error.reasonCode + '<br>' + error.reason);
    };

    checkout.getInvoices(success, error);
}

Suggest Edits

Cancelar fatura

 

Cancelar a fatura de uma assinatura é bem simples, basta chamar o método cancelInvoice informando o id da assinatura que deseja cancelar.

Request para cancelar uma fatura

Propiedade
tipo
Obrigatório
Descrição

subscriptionId

String

Sim

Id da assinatura.

DiscountId

String

Sim

Id do item a ser excluído

Response de excluir/ cancelar uma fatura

codigo_resposta

Int

Representa o código de retorno da exclusão de plano. Para detalhamento dos códigos de retorno consulte a tabela

{
    var success = function (response) {
        updateResult('Fatura estornada com sucesso!');
        console.log(response);
    };

    var error = function (error) {
        updateResult('Código: ' + error.reasonCode + '<br>' + error.reason);
    };

    checkout.cancelInvoice("in_qBY5VvpuEACaw5bg", success, error);
}


Suggest Edits

O que é Token de Cartão de Crédito?

 

A Tokenizção de Cartões de Credito já é comum no mundo online possibilitando as funcionalidades de one-click buy em muitos e-commerce.

A Tokenização consiste na criação de um Token, ou seja, uma string única formada por caracteres, que perite a uma loja física, sem certificação PCI, armazenar e realizar transações sem o cliente precisar passar o cartão novamente.

Suggest Edits

Criar Token com Transação

 

Essa função permite realizar uma transação do tipo crédito e criar o token do cartão simultaneamente.

Request de pagamento com criação de token

Propriedade
Tipo
Obrigatório
Descrição

amount

number

Sim

Valor do pagamento.

installments

number

Sim

Determina a quantidade de parcelas do pagamento, caso seja informado 1 a venda será realizada como crédito à vista, caso seja maior que isso será um crédito parcelado. Caso não seja informado o valor default é igual a 1, ou seja, a venda será considerada automaticamente a vista.

installmentsType

Boolean

Somente se installments for maior que 1

Determina a configuração do parcelamento, verifique a tabela Tipos de Parcelamento para consultar os valores possíveis

customer

Objeto Customer

Sim

Objeto do tipo customer contendo as informações do cliente.

Objeto Customer

Propriedade
Tipo
Obrigatório
Descrição

name

String

Sim

Nome do cliente

document

String

Sim

Numero do documento do cliente

documentType

String

Sim

Tipo do documento. Os valores possíveis são: individual (pessoa física) ou company (pessoa jurídica)

email

String

Sim

Email do cliente

Após o pagamento é retornado um Callback das operações , junto com isso, também é retornado um objeto do tipo CardTokenDetails contendo as informações do token do cartão utilizado.

Objeto CardTokenDetails

Propriedade
Tipo
Descrição

cardToken

String

Identificador único do cartão criado.

cardBrandName

String

Nome da bandeira do cartão do cliente.

lastFourDigits

Int

Quatro últimos dígitos do cartão utilizado.

expMonth

int

Mês de expiração do cartão.

expYear

int

Ano de expiração do cartão

customer

Objeto Customer

Objeto do tipo customer contendo as informações do cliente.

 var elInstallmentType = document.getElementById("installmentType");
        var installmentType = elInstallmentType.options[elInstallmentType.selectedIndex].value;
    
        var installments = document.getElementById('txtCreditInstallments').value;
    
        var request = {
            amount: parseFloat(document.getElementById('txtCreditAmount').value.replace(',', '')),
            installments: installments === '' ? 0 : installments,
            installmentType: installmentType,
            customer: {
                name: document.getElementById('txtCustomerName').value,
                document: document.getElementById('txtCustomerDocument').value,
                email: document.getElementById('txtCustomerEmail').value
            }
        };

        var success = function(response) {
           	console.log(response.cardTokenDetails.cardToken);
          	console.log(response.cardTokenDetails.cardBrandName);
          	console.log(response.response.cardTokenDetails.lastFourDigits);
          	console.log(response.cardTokenDetails.expMonth);
           	console.log(response.response.cardTokenDetails.expYear);
          	console.log(response.response.cardTokenDetails.customer.customerId);
          	console.log(response.response.cardTokenDetails.customer.document);
          	console.log(response.response.cardTokenDetails.customer.name);
          	console.log(response.response.cardTokenDetails.customer.email);
          	console.log(response.response.cardTokenDetails.expYear);
           	console.log(response.receipt.merchantReceipt);
          	console.log(response.receipt.customerReceipt);
        };

        var error = function(err) {
            console.log('Código: ' + err.reasonCode + '<br>' + err.reason);
        };
    
        checkout.creditPaymentAndCreateCardToken(request, success, error);
Suggest Edits

Criar Token

 

Essa é a função que deve ser chamada para realizar a criação:

Request de criação de token

Propriedade
Tipo
Obrigatório
Descrição

customer

Objeto Customer

Sim

Objeto do tipo customer contendo as informações do cliente. Clique aqui para mais informações sobre customer.

Response para criação de token

Propriedade
Tipo
Descrição

cardToken

String

Identificador único do cartão criado.

cardBrandName

String

Nome da bandeira do cartão utilizado.

lastFourDigits

Int

Quatro últimos dígitos do cartão utilizado.

expMonth

Int

Mês de expiração do cartão.

expYear

Int

Ano de expiração do cartão

customer

Objeto tipo Customer

Objeto do tipo customer contendo as informações do cliente. Clique aqui para mais informações sobre customer.

var request = {
            customer: {
                name: document.getElementById('txtCustomerNameTokenCreation').value,
                document: document.getElementById('txtCustomerDocumentTokenCreation').value,
                documentType: document.getElementById('txtCustomerDocumentTypeTokenCreation').value,
                email: document.getElementById('txtCustomerEmailTokenCreation').value
            }
        };

        var success = function(response) {
           	console.log(response.cardToken);
          	console.log(response.cardBrandName);
          	console.log(response.lastFourDigits);
          	console.log(response.expMonth);
          	console.log(response.expYear);
           	console.log(response.customer.customerId);
          	console.log(response.customer.document);
          	console.log(response.customer.name);
          	console.log(response.customer.email);
        };

        var error = function(err) {
            console.log('Código: ' + err.reasonCode + '<br>' + err.reason);
        };
    
        checkout.createCardToken(request, success, error);
Suggest Edits

Criar Pagamento com Token

 
Propriedade
Tipo
Obrigatório
Descreição

amount

number

Sim

Valor do pagamento

installments

number

Sim

Determina a quantidade de parcelas do pagamento, caso seja informado 1 a venda será realizada como crédito à vista, caso seja maior que isso será um crédito parcelado. Caso não seja informado o valor default é igual a 1, ou seja, a venda será considerada automaticamente a vista.

installmentType

number

Sim

Determina a configuração do parcelamento, verifique a tabela Tipos de Parcelamento para consultar os valores possíveis

cardToken

string

Sim

Identificador único do cartão

customer.ExternalId

string

Sim

Identificador do proprietário do cartão

var elInstallmentType = document.getElementById("tokenInstallmentType");
    var installmentType = elInstallmentType.options[elInstallmentType.selectedIndex].value;

    var installments = document.getElementById('txtTokenCreditInstallments').value;

var request = {
        amount: document.getElementById("txtTokenAmount").value,
        installments: installments === '' ? 0 : installments,
        installmentType: installmentType,
        cardToken: document.getElementById("txtCardToken").value,
        customer: {
            externalId: document.getElementById('txtCustomerId').value
        }
    };

    var success = function(response) {
        console.log(response.paymentKey);
    };

    var error = function(err) {
        console.log('Código: ' + err.reasonCode + '<br>' + err.reason);
    };

    checkout.paymentWithToken(request, success, error);
Suggest Edits

Cancelar Pagamento com Token

 

Essa requisição deve ser utilizada para realizar o cancelamento de um pagamento realizado através de um token de cartão.

Para realizar a requisição é necessário o paymentKey que a requisição de pagamento retorna.

Nome
Tipo
Obrigatório
Descrição

paymentKey

string

Sim

Chave do pagamento recebido do request de pagamento

var request = {
        paymentKey: "7e94ded9-1946-43da-b228-b07e07cc6141"
    };

    var success = function(response) {
        console.log(response.paymentKey);
      	console.log(response.amount);
    };

    var error = function(err) {
        console.log('Código: ' + err.reasonCode + '<br>' + err.reason);
    };

    checkout.cancelTokenPayment(request, success, error);
Suggest Edits

O que é Split Payment (Divisão de Pagamentos)?

 

Split Payment ou Divisão de Pagamentos é uma solução que permite a divisão de uma única transação entre múltiplos recebedores, de forma simples e flexível.

É possível realizar o Split Payment a partir da integração com automações homologadas via WebCheckout.

Quem participa do Split?

  • Lojista: É o responsável por realizar a transação em si, é quem emite a nota fiscal ao portador do cartão e etc. Ele deve estar credenciado na adquirente Stone e ser cliente Cappta.

  • Recebedor: É quem participa da prestação de serviço junto ao lojista e por isso recebe uma parte da transação. No seu credenciamento (via CheckoutCappta), ele será automaticamente vinculado ao lojista autenticado.

Como funciona o Split?

O cliente Cappta pode realizar uma transação e dividi-la em vários recebedores quando a transação for realizada pela adquirente Stone com as bandeiras Visa ou MasterCard. O valor total da transação será repartido entre os recebedores e o próprio lojista conforme a regra de divisão enviada na requisição do split.

Por exemplo:

Em uma transação cujo o valor total foi de 120,00, é solicitado um Split onde o Recebedor A irá receber 40,00 e o Recebedor B irá receber 60,00. O valor restante, neste exemplo 20,00, será o valor recebido pelo lojista, completando então o valor total da transação original.

Suggest Edits

Cadastrar um novo recebedor

 

Somente é possível indicar recebedores no Split se eles estiverem previamente cadastrados.

Para cadastrar um novo recebedor será necessário informar os dados:

Request

Propriedade Obrigatório Tipo Descrição
company_name Sim string Nome do recebedor. Deve ter no máximo 22 caracteres
document_type Sim int Tipo de Documento, podendo ser 1 para CNPJ e 2 para CPF.
document_number Sim String Número do documento sem formatação conforme o tipo informado. Deve conter 14 caracteres quando for CNPJ e 11 caracteres quando for CPF.
bank_account Sim RecipientBankAccount Dados bancários da conta em que o recebedor deseja receber o depósito dos valores dos Splits.
contact Sim RecipientContact Dados de contato do recebedor. Os dados informados poderão ser utilizados pela Cappta para entrar em contato com o recebedor.

RecipientBankAccount

Propriedade Obrigatório Tipo Descrição
bank_id Sim Int Código bancário conforme a tabela da Febrabran
account_number Sim Int Número da conta corrente sem o dígito
account_number_digit Sim Int Dígito da conta corrente.
branch_code Sim Int Número da agencia bancária sem o dígito
branch_code_digit Não Int Dígito da agência bancária, se existir.

RecipientContact

Propriedade Obrigatório Tipo Descrição
contact_name Sim string Nome da pessoa responsável pelo recebedor.
email Sim string e-mail para contato.
phone_number Sim string Número de telefone para contato.
mobile_phone_number Sim string Número de celular para contato.

NOTA: O prazo para que o recebedor esteja apto para utilizar o split é de até 48 horas a partir da solicitação.

// Create recipient 
var request = {
  company_name : “John Doe”,
  document_type : 2,
  document_number : “12345678911”,
  bank_account : {
    bank_id : 341,
    account_number : 12345,
    account_number_digit: 6,
    branch_code: 0012,
    branch_code_digit: 1
  }, 
  contact: {
    contact_name: “John Doe”,
    email: “john.doe@gmail.com”,
    phone_number: “1133339999”,
    mobile_phone_number: “11999999999”
  }
};

var success = function (response) {
  console.log(response);
};

var error = function (error) {
  console.log('Código: ' + error.reasonCode + '\n' + error.reason);
};

checkout.createRecipient(request, success, error);
{
  "company_name": "John Doe",
  "document_type": 2,
  "document_number": "12345678911",
  "recipient_key": "61d20222-270c-400f-be4c-2e8857c0d588",
  "status": "created",
  "dueDate": "2018-01-10T00:00:00",
  "bank_account" : {
    "bank_id" : 341,
    "account_number" : 12345,
    "account_number_digit" : 6,
    "branch_code" : 0012,
    "branch_code_digit" : null
  },
  "contact": {
    "contact_name": "John Doe",
    "email": "john.doe@gmail.com",
    "phone_number": "1133339999",
    "mobile_phone_number": "11999999999"
  }
}
Suggest Edits

Listar recebedores vinculados a um lojista

 

Um lojista por ter um ou mais recebedores vinculados, para listá-los basta enviar uma requisição para getRecipients, com isso será retornado uma array contendo todos os recebedores criados vinculados ao lojista.

var success = function (response) {
  console.log(response);
};

var error = function (error) {
  console.log('Código: ' + error.reasonCode + '\n' + error.reason);
};

checkout.getRecipients(success, error);
[
  {
    "company_name": "Peter Parker",
    "document_type": 2,
    "document_number": "12345678923",
    "recipient_key": "6a00c467-9253-4605-a839-4bf00810c0d8",
    "status": "created",
    "dueDate": "2018-01-10T00:00:00",
    "bank_account" : {
      "bank_id" : 341,
      "account_number" : 22347,
      "account_number_digit" : 6,
      "branch_code" : 0123,
      "branch_code_digit" : null
    },
    "contact": {
      "contact_name": "John Doe",
      "email": "john.doe@gmail.com",
      "phone_number": "1133339999",
      "mobile_phone_number": "11999999999"
    }
  },
  {
    "company_name": "Steve Rogers",
    "document_type": 2,
    "document_number": "12345671189",
    "recipient_key": "692c559a-05f6-4c2a-b065-63035fc71e75",
    "status": "created",
    "dueDate": "2018-01-12T00:00:00",
    "bank_account" : {
      "bank_id" : 001,
      "account_number" : 4312,
      "account_number_digit" : 2,
      "branch_code" : 0245,
      "branch_code_digit" : 0
    },
    "contact": {
      "contact_name": "Steve Rogers",
      "email": "capitao.america@gmail.com",
      "phone_number": "1133336666",
      "mobile_phone_number": "11999999898"
    }
  }
  ...
]
Suggest Edits

Obter um recebedor vinculado a um lojista pelo RecipientKey

 

Para obter os dados de um recebedor vinculado a um lojista basta enviar uma requisição para getRecipientById, passando como parâmentro o recipient_key do recebedor que deseja obter os dados.

Request

Propriedade Obrigatório Tipo Descrição
recipient_key Sim string Chave única do Recebedor
var recipient_key = "6a00c467-9253-4605-a839-4bf00810c0d8";

var success = function (response) {
  console.log(response);
};

var error = function (error) {
  console.log('Código: ' + error.reasonCode + '\n' + error.reason);
};

checkout.getRecipientById({recipient_key: recipient_key}, success, error);
{
  "company_name": "Peter Parker",
  "document_type": 2,
  "document_number": "12345678923",
  "recipient_key": "6a00c467-9253-4605-a839-4bf00810c0d8",
  "status": "created",
  "dueDate": "2018-01-10T00:00:00",
  "bank_account" : {
    "bank_id" : 341,
    "account_number" : 22347,
    "account_number_digit" : 6,
    "branch_code" : 0123,
    "branch_code_digit" : null
  },
  "contact": {
    "contact_name": "John Doe",
    "email": "john.doe@gmail.com",
    "phone_number": "1133339999",
    "mobile_phone_number": "11999999999"
  }
}
Suggest Edits

Desativar um recebedor vinculado a um lojista

 

Para inativar um recebedor vinculado a um lojista basta enviar uma requisição para disableRecipient, passando como parâmentro o recipient_key do recebedor.

Request

Propriedade Obrigatório Tipo Descrição
recipient_key Sim string Chave única do Recebedor
var recipient_key = "6a00c467-9253-4605-a839-4bf00810c0d8";

var success = function (response) {
  console.log(response);
};

var error = function (error) {
  console.log('Código: ' + error.reasonCode + '\n' + error.reason);
};

checkout.disableRecipient({recipient_key: recipient_key}, success, error);
{
  "company_name": "Peter Parker",
  "document_type": 2,
  "document_number": "12345678923",
  "recipient_key": "6a00c467-9253-4605-a839-4bf00810c0d8",
  "status": "undoing",
  "dueDate": "2018-01-10T00:00:00",
  "bank_account" : {
    "bank_id" : 341,
    "account_number" : 22347,
    "account_number_digit" : 6,
    "branch_code" : 0123,
    "branch_code_digit" : null
  },
  "contact": {
    "contact_name": "John Doe",
    "email": "john.doe@gmail.com",
    "phone_number": "1133339999",
    "mobile_phone_number": "11999999999"
  }
}
Suggest Edits

Callback de erros

 

Quando houver algum problema durante opereção de recebedor

Propriedade
Tipo
Descrição

reasonCode

number

Código que representa o motivo pelo qual a operação foi negada, as possibilidades deste código podem ser consultadas na tabela Códigos de motivo para operações negadas

reason

string

Descreve o motivo pelo qual a operação foi negada

Código de Erros

Codigo
Nome
Descrição

38

FieldValidationError

64

CreateRecipientError

65

DisableRecipientError

66

ListRecipientsError

67

GetRecipientError

Suggest Edits

Criar um split

 

Com os recebedores vinculados, já é possível realizar os splits, da seguinte forma:

Request

Propriedade Obrigatório Tipo Descrição
administrative_code Sim string Número de controle da transação. É retornado assim que uma transação é aprovada pelo CapptaGpPlus.
due_date Sim int Data de agendamento da liquidação dos recebíveis do split. Deve ser superior a data da transação.
amount_split_mode Sim string Modo de divisão do split, sendo absolute para valores específicos ou percentual para divisão em percentagem.
fee_liability Sim string Responsável pela taxa, podendo ser o lojista merchant, os recebedores recipients ou compartilhado entre todos shared
splits Sim Splits Dados dos recebedores do split.

Splits

Propriedade Obrigatório Tipo Descrição
recipient_key Sim string Chave única do recebedor, gerada no seu credenciamento.
amount Sim float Valor a ser enviado ao recebedor, com até duas casa decimais. Ex: 23.12.

Parâmetros válidos:

amount_split_mode

valor descrição
percentual Todos os valores devem de ser maior que 0 e inferior a 100 (%) e a somatória dos valores devem ser menor ou igual 100%.
absolute Todos os valores devem de ser maior que 0 e a somatória dos valores devem ser menor ou igual ao valor total da transação.

fee_liability

valor descrição
merchant A taxa da transação (MDR) ficará sobre a responsabilidade do Lojista.
recipient A taxa da transação (MDR) ficará sobre a responsabilidade dos Recebedores.
shared A taxa da transação (MDR) é dividida entre os todos os participantes do split (lojista e recebedores).
var request = {
  administrative_code : “000000000”
  due_date : “2018-01-15 00:00:00.000,
  amount_split_mode : “absolute”,
  fee_liability : “merchant”,
  splits : [{
     recipient_key : “fea34f66-79d9-461e-8cc4-c47ed4aaa9b4”,
     amount : 30.00	
  }, {
     recipient_key : “7ebd8600-3033-4c97-adc1-ad13d12c3c45”,
     amount : 20.00	
  }]
};

var success = function (response) {
  console.log(response);
};

var error = function (error) {
  console.log('Código: ' + error.reasonCode + '\n' + error.reason);
};

checkout.createSplit(request, success, error);
{
  "splitKey": "d1095f38-a458-42ce-9d14-e73d8b0d3c7b",
  "administrativeCode": "11012020015",
  "amountSplitMode": "absolute",
  "feeLiability": "merchant",
  "status": "created",
  "dueDate": "2018-01-10T00:00:00",
  "splits": [{
     "recipientKey": "fea34f66-79d9-461e-8cc4-c47ed4aaa9b4",
     "amount": 20
   }, {
     "recipientKey": "7ebd8600-3033-4c97-adc1-ad13d12c3c45",
     "amount": 20
   }]
}
Suggest Edits

Listar splits vinculados a um lojista

 

Para listar os splits realizados pelo lojista, basta enviar uma requisição para getSplits, com isso será retornado uma array contendo todos as ordens de splits vinculadas ao lojista.

var success = function (response) {
	console.log(response);
};

var error = function (error) {
  console.log('Código: ' + error.reasonCode + '\n' + error.reason);
};

checkout.getSplits(success, error);
[
  {
    "splitKey": "d1095f38-a458-42ce-9d14-e73d8b0d3c7b",
    "administrativeCode": "11012020015",
    "amountSplitMode": "absolute",
    "feeLiability": "merchant",
    "status": "created",
    "dueDate": "2018-01-10T00:00:00",
    "splits": [{
        "recipientKey": "fea34f66-79d9-461e-8cc4-c47ed4aaa9b4",
        "amount": 20
     }, {
        "recipientKey": "7ebd8600-3033-4c97-adc1-ad13d12c3c45",
        "amount": 20
     }]
  },
  {
    "splitKey": "6281d465-1083-4508-a099-25605a9bc134",
    "administrativeCode": "11012020015",
    "amountSplitMode": "percentual",
    "feeLiability": "merchant",
    "status": "created",
    "dueDate": "2018-01-10T00:00:00",
    "splits": [{
        "recipientKey": "fea34f66-79d9-461e-8cc4-c47ed4aaa9b4",
        "amount": 20
     }, {
        "recipientKey": "7ebd8600-3033-4c97-adc1-ad13d12c3c45",
        "amount": 20
     }]
  },
  ...
]
Suggest Edits

Obter um split vinculado a um lojista pelo SplitKey

 

Para obter um split vinculado a um lojista basta enviar uma requisição para getRecipientById, passando como parâmentro o split_key.

Request

Propriedade Obrigatório Tipo Descrição
split_key Sim string Chave única do Split
var split_key = "6281d465-1083-4508-a099-25605a9bc134";

var success = function (response) {        
  console.log(response);
};

var error = function (error) {
  console.log('Código: ' + error.reasonCode + '\n' + error.reason);
};

checkout.getSplitById({split_key: split_key}, success, error);
{
  "splitKey": "6281d465-1083-4508-a099-25605a9bc134",
  "administrativeCode": "11012020015",
  "amountSplitMode": "percentual",
  "feeLiability": "merchant",
  "status": "created",
  "dueDate": "2018-01-10T00:00:00",
  "splits": [{
      "recipientKey": "fea34f66-79d9-461e-8cc4-c47ed4aaa9b4",
      "amount": 20
   }, {
      "recipientKey": "7ebd8600-3033-4c97-adc1-ad13d12c3c45",
      "amount": 20
   }]
}
Suggest Edits

Cancelar um split

 

Para cancelar um split basta enviar uma requisição para cancelSplit, passando como parâmentro o split_key.

Request

Propriedade Obrigatório Tipo Descrição
split_key Sim string Chave única do Split

NOTA: Quando solicitado um cancelamento de split, o status retornado será undoing, pois será validado se o recebedor possui saldo suficiente para o cancelamento, isto é, ele não tenha solicitado uma antecipação dos recebíveis. Caso tenha saldo, será confirmado o cancelamento e status mudará para undone. Caso não tenha não tenha saldo o cancelamento do split será rejeitado e o status retornará para o anterior.

Além disso, caso seja solicitado o estorno do pagamento original, o split vinculado à ele será automaticamente cancelado.

var success = function (response) {
  console.log('Split cancelado com sucesso!');
};
var error = function (error) {
  console.log('Código: ' + error.reasonCode + '\n' + error.reason);
};

checkout.cancelSplit({split_key: split_key}, success, error);
{
  "splitKey": "6281d465-1083-4508-a099-25605a9bc134",
  "administrativeCode": "11012020015",
  "amountSplitMode": "percentual",
  "feeLiability": "merchant",
  "status": "undoing",
  "dueDate": "2018-01-10T00:00:00",
  "splits": [{
      "recipientKey": "fea34f66-79d9-461e-8cc4-c47ed4aaa9b4",
      "amount": 20
   },{
      "recipientKey": "7ebd8600-3033-4c97-adc1-ad13d12c3c45",
      "amount": 20
   }]
}
Suggest Edits

Callback de erros

 

Quando ocorrer algum problema durante operação com split payment será retornado

Propriedade
Tipo
Descrição

reasonCode

number

Código que representa o motivo pelo qual a operação foi negada, as possibilidades deste código podem ser consultadas na tabela Códigos de motivo para operações negadas

reason

string

Descreve o motivo pelo qual a operação foi negada

errors

Lista de erros identificados, quando houver.

Split Error

Propriedade
Tipo
Descrição

ErrorMessage

string

Mensagem descrevendo a causa do erro.

PropertyName

string

Propriedade relacionada ao erro.

Código de Erros

Código
Tipo
Descrição

38

FieldValidationError

Existem campos obrigatórios para a realização da operação que não foram preenchidos corretamente. Verifique a listagem de erros.

60

CreateSplitError

Ocorreu um erro ao processar a solicitação de criação do Split.

61

GetSplitError

Ocorreu um erro ao processar a solicitação para consultar o Split.

62

ListSplitError

Ocorreu um erro ao processar a solicitação para listar os Splits.

63

CancelSplitError

Ocorreu um erro ao processar a solicitação de cancelamento do Split.

64

CreateRecipientError

Ocorreu um erro ao processar a solicitação de criação do recebedor.

65

DisableRecipientError

Ocorreu um erro ao processar a solicitação para desabilitar o recebedor.

66

ListRecipientsError

Ocorreu um erro ao processar a solicitação para listar os recebedores.

67

GetRecipientError

Ocorreu um erro ao processar a solicitação para consultar o recebedor.

Suggest Edits

O que é a pré-autorização de crédito?

 

O crédito pré-autorizado ou pré-autorização de crédito funciona como um pagamento comum de crédito, porém, em vez do valor ser capturado na hora, ele fica reservado do limite do cartão até realizar a captura do valor final. Isso possibilita ao estabelecimento ter uma garantia de que, após utilizar o serviço, o cliente terá limite disponível para realizar o pagamento.

Portanto temos dois passos distintos para realizar o pagamento:

1. A solicitação do crédito pré-autorizado: É o momento em que o valor estimado do produto/serviço é reservado do limite do cartão do cliente.

2. A captura do crédito pré-autorizado: É o momento no qual é debitado o valor real do produto/serviço utilizado pelo cliente.

Suggest Edits

Criar crédito pré-autorizado

 

Para realizar a reserva do limite do cartão é necessário enviar uma requisição para o método createPreAuthorizedCreditPayment passando como parâmetro a quantia que deverá ser reservada do limite do cartão do cliente.

Atenção!

Normalmente uma pré-autorização de crédito possui uma validade, que pode variar em função da adquirente, bandeira e/ou emissor do cartão. Após esse prazo, o limite é liberado.

Requisição utilizada para realizar a solicitação do crédito pré-autorizado.

Parâmetro
Obrigatório
Tipo
Descrição

amount

Sim

number

Valor que deverá ser reservado do limite do cartão.

Retorno do método

var request = {
	amount: 560;
};

var success = function(response) {
    // callback para pre-autorizacao bem sucedida
  	console.log(response.administrativeCode);
    console.log(response.receipt.merchantReceipt);
};

var error = function(response) {
    // callback para  pre-autorizacao que falhou
  	console.log(response.reason);
};

checkout.createPreAuthorizedCreditPayment(request, success, error);
Suggest Edits

Capturar crédito pré-autorizado

 

Para capturar uma venda pré-autorizada é necessário enviar para o método capturePreAuthorizedCreditPayment o valor que deseja capturar e o administrativeCode que foi retornado do método de criar crédito pré-autorizado

Atenção!

Se o valor de captura for menor que o valor pré-autorizado, o restante do crédito pré-aprovado é liberado no limite do cartão automaticamente.

Requisição utilizada para realizar a captura do crédito pré-autorizado.

Parâmetro
Obrigatório
Tipo
Descrição

amount

sim

number

Valor a ser capturado.

administrativeCode

sim

String

Número de controle da transação retornado quando foi criado o crédito pré-autorizado.

var request = {
  amount: 480,
  administrativeCode: '01020676031';
};

var success = function(response) {
    // callback para captura de credito bem sucedidoa
  	console.log(response.administrativeCode);
    console.log(response.receipt.merchantReceipt);
};

var error = function(response) {
    // callback para captura que falhou
  	console.log(response.reason);
};

checkout.capturePreAuthorizedCreditPayment(request, success, error);
Suggest Edits

Cancelamento de crédito pré-autorizado

 

Cancelar um crédito pré-autorizado é como cancelar uma venda normal, basta enviar o administrativePassword e o administrativeCode para o método paymentReversal

Atenção!

Será possível cancelar somente créditos pré-aprovados que não foram capturados.

Request para cancelamento

Parâmetro
Obrigatório
Tipo
Descrição

administrativePassword

Sim

String

Senha para realizar o cancelamento de operações.

administrativeCode

Sim

String

Identificador único para pagamentos, é devolvido quando a transação é autorizada, mas também pode ser consultado no portal de transações Cappta.

//Não esqueça de realizar a autenticação aqui \o/

var request = {
    administrativePassword: 'cappta',
    administrativeCode: '000000000'
};

var success = function(response) {
    // callback para cancelamento bem sucedido
  	console.log(response.administrativeCode);
    console.log(response.receipt.merchantReceipt);
};

var error = function(response) {
    // callback para cancelamento que falhou
  	console.log(response.reason);
};

checkout.paymentReversal(request, success, error);
Suggest Edits

O que é MultiLoja?

 

Com a Cappta os clientes podem ter diversos CNPJs vinculados na mesma instalação do CapptaGpPlus e selecionar qual deseja utilizar no momento da venda.

Além de ter diversas lojas vinculadas, o Multi Loja permite ao lojista uma flexibilidade maior sobre suas vendas, possibilitando que ele as direcione para o CNPJ de sua escolha. Automaticamente o valor dessa venda será direcionado ao domicilio bancário do CNPJ selecionado.

Para fazer o cadastro de um ou mais CNPJs o mesmo deve entrar em contato diretamente com a Cappta.

Abaixo estão descritos os métodos necessários para utilizar a função Multi Loja.

Suggest Edits

Obtendo lista de lojas

 

O método abaixo é usado para se obter uma lista de todos os CNPJs que estão vinculados a instalação e disponiveis para ativação. Com essa lista você pode exibi-la para que o operador possa selecionar o CNPJ que deseja ativar.

checkout.getCheckouts(success, error)

Parâmetro
Tipo

success

callback

error

callback

Essa função possuí dois callbacks, uma executada em caso de sucesso e a outra em caso de erro. Ao lado pode se conferir o código necessário para se exibir todos as lojas em um combo chamado checkouList .

function getCheckouts() {
    var success = function (response) {
        var combo = document.getElementById("checkoutList");

        checkouts = response.checkouts;

        response.checkouts.map(function (checkout) {
            var option = document.createElement("option");
            option.text = checkout.MerchantCnpj;
            option.value = checkout.MerchantCnpj;
            combo.add(option, null);
        });
    };

    var error = function (response) {
        updateResult(response.reason);
    };

    checkout.getCheckouts(success, error);
}
Suggest Edits

Ativando uma loja

 

Após o operador selecionar a loja desejada, ele deve usar a função abaixo para ativá-la. Após essa função ser chamada, todas as transações, reimpressões e estornos serão referentes ao CNPJ ativo.

checkout.setCheckout(cnpj, success, error)

Parâmetro
Tipo

cnpj

String

success

Callback

error

Callback

O exemplo ao lado mostra o código necessário para setar uma loja com o valor do cnpj obtido de um combo chamado checkoutList.

function setCheckout() {
    var success = function (response, cnpj) {
        console.log("PDV ativado com sucesso");
    };

    var error = function (response) {
        console.log(response);
    };

    var cnpj = document.getElementById("checkoutList").value;
    checkout.setCheckout(cnpj, success, error);
}
Suggest Edits

Callbacks

 

Cada uma das operações do Multiloja possui dois callbacks sendo um para casos de sucesso e outro para casos de erro.

Callbacks da Operação de Listagem de Lojas

Exemplo de callback de sucesso

var success = function(response) {
//Código que será executado em caso de sucesso
}

O objeto response neste caso conterá uma lista de lojas ou checkouts cada um com as seguintes propriedades:

Propriedade
Tipo

CheckoutId

int

TradingName

string

MerchantCnpj

string

CheckoutNumber

int

Exemplo de callback de erro

var error = function(response) {
//Código que será executado em caso de erro
}

O objeto response neste caso contém as mesmas propriedades descritas aqui

Callbacks da Operação de Ativação de Loja

Exemplo do callback de sucesso

var success = function(response, cnpj) {
//Código que será executado no caso de sucesso
}

O objeto reponse será um objeto de SuccessResponse vazio, e o objeto CNPJ estará preenchido com o cnpj da loja a escolhida para ser ativada

Exemplo do callback de erro

var error = function(response) {
//Código que será executado no caso de erro
}

O objeto response neste caso contém as mesmas propriedades descritas aqui

Suggest Edits

Portfólio de Cartões de Testes

 

CAPPTA API WEB

Os cartões abaixo poderão ser utilizados para realização dos testes com a modalidade Crédito, todos são CARTÕES DE TESTES e NÃO SÃO VÁLIDOS para pagamentos reais.

Siga as instruções a seguir para correta utilização dos cartões:

✓ Todos cartões deverão ser utilizados na modalidade CRÉDITO;
✓ Aprenda a realizar vendas digitadas no Cappta na próxima página;
✓ Não divulgue por nenhum meio os dados dos cartões fornecidos para testes.

bandeira
número
senha
Código de segurança
data de validade

VISA

4073020000000002

1234

321

1219

VISA

4012001038443335

1234

321

1219

MASTER CARD

6011020000245045

NÃO É NECESSÁRIO

123

1219

MASTER CARD

5453010000066167

NÃO É NECESSÁRIO

123

1219

American Express

3477 324901 33253

NÃO É NECESSÁRIO

2719

1219

American Express

3706 648883 88027

NÃO É NECESSÁRIO

9230

1219

Fique atento!

Se por ventura ao realizar uma transação aparecer mensagem de erros "Bin não configurado", "Cartão não autorizado" utilize para teste estes cartões acima na modalidade credito, venda digitada.

Você também pode utilizar mais cartões clicando aqui!

 

Roteiro de testes obrigatório!

Este roteiro de testes tem a finalidade de comprovar o perfeito funcionamento entre os sistemas.

O Cumprimento dos testes é obrigatório, ficando sobre a responsabilidade da empresa desenvolvedora a entrega dos mesmos, caso contrário não emitiremos certificado bem como a chave de autenticação.

Suggest Edits

O que será analisado?

 

A Certificação com a Cappta é inteiramente remota, portanto é de suma importância a realização das Sequências de Testes contidas neste documento, precisamos dos resultados para validação do perfeito funcionamento entre os sistemas. As evidências necessárias são:

PRINTS: durante o roteiro solicitamos imagens que devem ser capturadas durante as transações, através dos prints avaliamos a usabilidade dos sistemas rodando de forma integrada.

COMPROVANTES: analisamos os comprovantes (scaneados/fotografados) para validar a quantidade de vias impressas, alinhamento das informações e comprovar de que a impressão está sendo feita sem alteração de conteúdo.

LOGS: através do Log verificamos detalhadamente as transações realizadas durante os testes, além de visualizar toda comunicação necessária entre os sistemas, determinada na documentação:

VÍDEO: Este tipo de mídia proporciona uma visão mais detalhada da integração e deve abranger todos os testes

Importante!

EM CADA SEQUÊNCIA É DESCRITO O QUE DEVE SER ARQUIVADO E ENVIADO A CAPPTA PARA ANÁLISE, PODENDO HAVER EM ALGUMAS SEQUÊNCIAS MAIS DE UM TIPO DE EVIDÊNCIA NECESSÁRIA.

Suggest Edits

Ambiente de Testes

 

O Ambiente de Testes que disponibilizamos está direcionado para servidores de certificação, que por sua vez simulam a autorização das transações, portanto as vendas realizadas não serão cobradas, caso esteja utilizando um cartão real.

É possível também utilizar cartões de testes de maneira digitada para aprovar as transações, explicaremos adiante como realizar vendas com estes cartões.

Suggest Edits

Realizando Vendas Digitadas

 

1. Lance uma venda através da Automação Comercial;

2. Selecione a forma de pagamento que acione o Cappta Integrado;

3. A mensagem “Insira ou Passe o Cartão” deverá ser exibida na tela e no visor do pinpad, então aperte uma vez o botão “ANULA” (botão VERMELHO do Pinpad);

4. Nas telas a seguir insira os dados do cartão de Testes.

5. insira a data de validade e código de segurança. Após a inserção destas informações a venda será aprovada.

IMPORTANTE

SENHAS: PARA CARTÕES COM CHIP, SERÁ NECESSÁRIO INFORMAR A SENHA CORRETA DO CARTÃO, POIS AS VALIDAÇÕES DA SENHA PARA ESTE TIPO DE CARTÃO SÃO REALIZADAS PELO PRÓPRIO CHIP. JÁ PARA OS CARTÕES DE TARJA, A INSERÇÃO DA SENHA CORRETA NÃO SE FAZ NECESSÁRIA, NESTE CASO PODE-SE INSERIR 4 DÍGITOS ALEATÓRIOS PARA PROSSEGUIR COM A TRANSAÇÃO.

Suggest Edits

Estrutura de Pastas para envio de evidências

 

Esta é a estrutura de pastas sugerida para envio das evidências de testes, seguindo tal padrão conseguiremos analisar perfeitamente cada sequência efetuada.

Suggest Edits

Testes de Usabilidade

 

Os testes de usabilidade visam validar se o funcionamento entre o Checkout Cappta e Automação ocorrem de maneira fluída, tornando o processo de venda simples ao usuário, exibindo todas as informações necessárias para que o lojista transacione sem transtornos.

Suggest Edits

Sequência 1 – Desconectando o PINPAD

 

Sequência Obrigatória

PREPAROS

  • Desconecte o PINPAD Antes de iniciar uma operação.

PASSOS DE EXECUÇÃO

  1. Inicie a Automação comercial com o Gerenciador iniciado e pronto para uso;
  2. Desconecte o PINPAD e Inicie uma operação de Transação;
  3. Selecione ‘Não’ para que o TEF não tente configurar o PINPAD automaticamente;

RESULTADOS ESPERADOS

  1. O CapptaGpPlus irá mostrar uma mensagem ao usuário.

    OBS.: O TEF irá devolver o retorno descrito acima que deverá ser exibido sem alterações de conteúdo.

EVIDÊNCIAS NECESSÁRIAS (RESULTADO OBTIDO)

Capture Print ou vídeo deste tratamento de erro

Suggest Edits

Testes de Abstração

 

Os Testes de Abstração têm como objetivo elucidar o conhecimento dos retornos do Cappta na prática, tornando assim mais simples o entendimento de como o sistema de Automação deverá receber, tratar e realizar a impressão dos comprovantes através de Impressora Térmica Fiscal ou Não-Fiscal, ou até mesmo enviar os comprovantes por e-mail.
Além disso, precisamos saber como configurar seu Software de Automação para se comunicar com o Checkout Cappta. Nas Sequências de Testes a seguir solicitaremos que nos mostre as telas de configuração e parametrização e como acessá-las.

Suggest Edits

Sequência. 2 – Configurando o TEF no PDV

 

Atenção

O CapptaGpPLus possui duas formas de autenticação:
AutenticarPdv(CNPJ, PDV, Chave) ou AutenticarPdv(Chave)

O teste abaixo se refere a primeira forma de autenticação, caso escolha a segunda esta evidencia não é necessária

PREPAROS

  • Vá até a tela do seu sistema onde o Cappta é configurado.

PASSOS DE EXECUÇÃO

  1. Na tela de Configuração, os itens parametrizáveis deverão ser: CNPJ e PDV;

  2. Verifique o nº de PDV clicando em “Sobre” no CapptaGpPlus instalado em sua máquina.
    OBS: A Chave de Autenticação não deverá ser parametrizável, devendo ser fixa para o Software, independente da loja.

RESULTADOS ESPERADOS

  1. O Software deverá conter uma tela de fácil acesso, que permita configurar os dados de instalação do Cappta.
    OBS: Deixar claro o caminho dentro do software ou arquivo para configurar os dados de configuração que serão enviados na autenticação.

EVIDÊNCIAS NECESSÁRIAS (RESULTADO OBTIDO)

  • Capture prints de todas as etapas da sequência, mostrando como acessar a tela de configurações ou grave um vídeo

Suggest Edits

Testes com Transações

 

Realize os testes com Transações variadas, estes testes deverão simular ao máximo o Ambiente de uma loja, onde diariamente várias vendas com diversos cartões diferentes são realizadas.

Lembre-se de utilizar os cartões de testes que disponibilizamos na página 6.

Suggest Edits

Sequência. 3 – Transação Visa Crédito à Vista

 

Sequência Obrigatória

PREPAROS

  • Realize uma transação com cartão de Crédito da bandeira Visa;
  • Se possível, R$ 50,00 reais

PASSOS DE EXECUÇÃO

  1. Realize uma venda através da Automação Comercial;
  2. Selecione a forma de pagamento na Automação que acione o CapptaGPPlus;
  3. Siga a transação até a finalização.

RESULTADOS ESPERADOS

  1. A transação deverá ocorrer sem travamentos ou impedimentos até sua aprovação;
  2. O sistema deverá realizar a tratativa dos campos de retorno e realizar a impressão de 2 comprovantes TEF (vias), Cliente e Loja respectivamente.

EVIDÊNCIAS NECESSÁRIAS (RESULTADO OBTIDO)

  • Enviar log da transação;
    Obs: o log encontra-se no seguinte caminho:
    C:\Program Files (x86)\CAPPTA\CapptaGpPlus\integration-adapter

Suggest Edits

Sequência 4 – Transação Master Card Crédito Parcelado Lojista

 

Sequência Obrigatória

Atenção para parcelado lojista deve ser informado, o número de parcelas, tipo de parcelamento (lojista)

PREPAROS

  • Realize uma transação com cartão de Crédito de bandeira Master;
  • Se possível valor de R$ 100,00 reais
  • Parcelamento em 3 vezes

PASSOS DE EXECUÇÃO

  1. Realize uma venda através da Automação Comercial;
  2. Selecione a forma de pagamento na Automação que acione o CapptaGpPlus;
  3. Siga a transação até a finalização.

RESULTADOS ESPERADOS

  1. A transação deverá ocorrer sem travamentos ou impedimentos até sua aprovação;
  2. O sistema deverá realizar a tratativa dos campos de retorno e realizar a impressão de 2 comprovantes TEF (vias), Cliente e Loja respectivamente.

EVIDÊNCIAS NECESSÁRIAS (RESULTADO OBTIDO)

  • Enviar log da transação;

Suggest Edits

Sequência. 5 – Transação Visa Crédito Parcelado Administradora (Com Juros)

 

Sequência Obrigatória

Atenção para parcelado administradora deve ser informado, o número de parcelas, tipo de parcelamento (administradora)

PREPAROS

  • Realize uma transação com cartão de Crédito de bandeira Visa;
  • Se possível valor de R$ 100,00 reais
  • Parcelamento em 3 vezes

PASSOS DE EXECUÇÃO

  1. Realize uma venda através da Automação Comercial;
  2. Selecione a forma de pagamento na Automação que acione o CapptaGpPlus;
  3. Siga a transação até a finalização.

RESULTADOS ESPERADOS

  1. A transação deverá ocorrer sem travamentos ou impedimentos até sua aprovação;
  2. O sistema deverá realizar a tratativa dos campos de retorno e realizar a impressão de 2 comprovantes TEF (vias), Cliente e Loja respectivamente.

EVIDÊNCIAS NECESSÁRIAS (RESULTADO OBTIDO)

  • Enviar log da transação;

Suggest Edits

Sequência. 6 – Transação Visa

 

Sequência Obrigatória

PREPAROS

  • Realize 3 transações na sequência (avista, parcelado loja e parcelado administradora)
  • Se possível nos seguintes valores (R$ 10.00, R$ 100,00, R$ 100,00)
  • Parcelamento em 3 vezes

PASSOS DE EXECUÇÃO

  1. Realize uma venda através da Automação Comercial;
  2. Selecione a forma de pagamento na Automação que acione o CapptaGpPlus;
  3. Siga a transação até a finalização.

RESULTADOS ESPERADOS

  1. A transação deverá ocorrer sem travamentos ou impedimentos até sua aprovação;
  2. O sistema deverá realizar a tratativa dos campos de retorno e realizar a impressão de 2 comprovantes TEF (vias), Cliente e Loja respectivamente.

EVIDÊNCIAS NECESSÁRIAS (RESULTADO OBTIDO)

  • Enviar log da transação;

Suggest Edits

Sequência. 7 – Transação Master

 

Sequência Obrigatória

PREPAROS

  • Realize 3 transações na sequência (avista, parcelado loja e parcelado administradora)
  • Se possível nos seguintes valores (R$ 10.00, R$ 100,00, R$ 100,00)
  • Parcelamento em 3 vezes

PASSOS DE EXECUÇÃO

  1. Realize uma venda através da Automação Comercial;
  2. Selecione a forma de pagamento na Automação que acione o CapptaGpPlus;
  3. Siga a transação até a finalização.

RESULTADOS ESPERADOS

  1. A transação deverá ocorrer sem travamentos ou impedimentos até sua aprovação;
  2. O sistema deverá realizar a tratativa dos campos de retorno e realizar a impressão de 2 comprovantes TEF (vias), Cliente e Loja respectivamente.

EVIDÊNCIAS NECESSÁRIAS (RESULTADO OBTIDO)

  • Enviar log da transação;

Suggest Edits

Sequência. 8 – Transação Visa Débito

 

Sequência Obrigatória

PREPAROS

  • Realize uma transação com cartão de Débito da bandeira Visa;
  • Se possível, R$ 80,00 reais

PASSOS DE EXECUÇÃO

  1. Realize uma venda através da Automação Comercial;
  2. Selecione a forma de pagamento na Automação que acione o CapptaGPPlus;
  3. Siga a transação até a finalização.

RESULTADOS ESPERADOS

  1. A transação deverá ocorrer sem travamentos ou impedimentos até sua aprovação;
  2. O sistema deverá realizar a tratativa dos campos de retorno e realizar a impressão de 2 comprovantes TEF (vias), Cliente e Loja respectivamente.

EVIDÊNCIAS NECESSÁRIAS (RESULTADO OBTIDO)

  • Enviar log da transação;

Suggest Edits

Testes com Múltiplos Cartões

 

Uma sessão Múltiplos Cartões torna possível que sejam autorizadas até 9 transações sem a necessidade de confirma-los no final de cada transação, porém ao executar a função de finalização (confirmação ou desfazimento) todos os pagamentos serão afetados. Ou seja, ao confirmar, confirma-se todos pagamentos dentro da sessão e ao desfazer, cancela-se todos os pagamentos.

IMPORTANTE

CASO NÃO SEJA POSSÍVEL QUE O USUÁRIO INDIQUE A QUANTIDADE DE CARTÕES ANTES DO INÍCIO DOS PAGAMENTOS, DEFINIR COMO PADRÃO A QAUNTIDADE = 9 QUE É A QUANTIDADE MÁXIMA, PORÉM A SESSÃO PODE SER INTERROMPIDA A QUALQUER MOMENTO.

Suggest Edits

Sequência. 9 – Introdução a Múltiplos Cartões

 

Sequência Obrigatória

Se for utilizar MultiTef a mesma torna-se obrigatória

PREPAROS

  • Realize uma transação com dois cartões de qualquer bandeira;
  • Se possível utilize um valor de R$ 150,00 reais

PASSOS DE EXECUÇÃO

  1. Realize uma venda através da Automação Comercial;
  2. O valor da primeira transação deverá ser de R$75,00;
  3. Selecione a forma de pagamento na Automação que acione o CapptaGPPlus;
  4. Ao finalizar o primeiro pagamento, a Automação deverá enviar os parâmetros da segunda transação com o valor de R$75,00.

RESULTADOS ESPERADOS

  1. O TEF deverá retornar a Automação Comercial 4 vias, 2 para cada venda que deverão ser impressas sem travamentos.

EVIDÊNCIAS NECESSÁRIAS (RESULTADO OBTIDO)

  • Enviar log da transação.

Suggest Edits

Sequência. 10 – Transação Múltiplos Cartões com falha

 

Sequência Obrigatória

Se for utilizar MultiTef a mesma torna-se obrigatória

PREPAROS

  • Realize uma transação com dois cartões de qualquer bandeira;
  • Valor da transação: R$50,00.
PASSOS DE EXECUÇÃO
  1. Inicie uma venda através da Automação Comercial;
  2. O valor da primeira transação deverá ser de R$25,00;
  3. Selecione a forma de pagamento na Automação que acione o CapptaGPPlus;
  4. Ao finalizar o primeiro pagamento, a Automação deverá enviar os parâmetros da segunda transação com o valor de R$25,00.
  5. Provoque erro na segunda venda propositalmente.
RESULTADOS ESPERADOS
  1. O sistema de vendas devera exibir a mensagem de erro
  2. Solicitar outro cartão.
  3. Finalizar a venda

EVIDÊNCIAS NECESSÁRIAS (RESULTADO OBTIDO)

  • Enviar log da transação

Suggest Edits

Sequência 10.1 – Transação MultiTEF com falha (2)

 

Sequência Obrigatória

Se for utilizar MultiTef a mesma torna-se obrigatória

PREPAROS

  • Realize uma transação com 3 cartões de qualquer bandeira;
  • Valor da transação: R$100,00.

PASSOS DE EXECUÇÃO

  1. Inicie uma venda através da Automação Comercial;
  2. Selecione a forma de pagamento na Automação que acione o CapptaGPPlus;
  3. O valor da primeira transação deverá ser de R$25,00;
  4. O valor da segunda transação deverá ser de R$25,00;
  5. Provoque erro na terceira venda propositalmente.

RESULTADOS ESPERADOS

  1. O sistema de vendas devera exibir a mensagem de erro
  2. Solicitar outra forma de pagamento?
  3. Escolha não
  4. As 3 vendas devem ser desfeitas
    Obs. Com o Tef Cappta, quando desfazer uma venda todas dentro do fluxo de Multtef serão desfeitas também

EVIDÊNCIAS NECESSÁRIAS (RESULTADO OBTIDO)

  • Enviar log da transação

Suggest Edits

Testes com Funções Administrativas

 

Os testes com as Funções Administrativas têm como finalidade garantir que o sistema de Automação Comercial tem capacidade de consultar o endpoint para realizar Reimpressão e enviar requisições corretamente para realizar Cancelamentos.

Importante!

A realização das sequências de número 19 a 22 são indispensáveis para certificação.

Estamos quase terminando os testes!

Suggest Edits

Sequência. 11 – Reimpressão de Comprovante

 

Sequência Opcional

PREPAROS

  • Apesar de não ter no Checkout Cappta à função para reimpressão, sabemos que é possível armazenar os dados em um banco para futura reimpressão.

PASSOS DE EXECUÇÃO

  1. Vá até o menu de Reimpressão pela Automação;
  2. Utilize uma forma de filtro

RESULTADOS ESPERADOS

  1. O sistema de Automação Comercial deverá receber o retorno em 2 vias e realizar a impressão do comprovante Cliente e Lojista.

EVIDÊNCIAS NECESSÁRIAS (RESULTADO OBTIDO)

Imagem do comprovante, e-mail caso ao invés de impressão seja emitido e-mail, PDF

Suggest Edits

Sequência. 12 – Cancelando uma Transação

 

Sequência Obrigatória

PREPAROS

  • Tenha em mãos um comprovante e ou número de controle

PASSOS DE EXECUÇÃO

  1. Vá até o menu de Reimpressão/Cancelamento pela Automação;
  2. Selecione a opção Cancelamento;
  3. Insira a senha Administrativa que é: cappta;
  4. Insira o número de CONTROLE da transação;
  5. Insira ou digite os dados do Cartão utilizado nesta transação.

RESULTADOS ESPERADOS

  1. O sistema de Automação Comercial deverá receber o retorno e realizar a impressão do comprovante de solicitação de estorno para o Cliente e Lojista.

EVIDÊNCIAS NECESSÁRIAS (RESULTADO OBTIDO)

  • Enviar log da transação

Suggest Edits

Sequência 13 -Capturando todos os passos de uma operação administrativa

 

Sequência Obrigatória

PREPAROS

  • Tenha em mãos um comprovante qualquer

PASSOS DE EXECUÇÃO

  1. Vá até o menu de Reimpressão/Cancelamento pela Automação;
  2. Selecione a opção Cancelamento ;
  3. Insira a senha Administrativa que é: cappta;
  4. Insira o número de CONTROLE da transação;
  5. Insira ou digite os dados do Cartão

RESULTADOS ESPERADOS

1- Capture os prints de todas as etapas
2- Dê mais atenção aos prints que mostram exatamente onde encontrar as opções administrativas

EVIDÊNCIAS NECESSÁRIAS (RESULTADO OBTIDO)

  • Enviar prints ou vídeo

Suggest Edits

Operações Não Finalizadas

 

Os testes de Operações Não Finalizadas foram elaborados com o objetivo de validar o funcionamento entre o TEF e a Automação Comercial, quando o fluxo de operação é quebrado por algum motivo. Dentre os motivos que finalizam o fluxo da operação podemos citar: a falta de saldo de um cartão ou até mesmo o pressionar de um botão cancelar no Pinpad pelo usuário.

Estes testes também têm como finalidade garantir que o Software de Automação reconhece o retorno enviado pelo TEF quando o uso é interrompido por falha, interação do usuário ou motivos adversos.

Sequências de Testes Obrigatórias!

Suggest Edits

Sequência 14 - Cancelando uma Operação

 

Sequência Obrigatória para integração Invisível

PREPAROS

  • Realize uma transação qualquer.

PASSOS DE EXECUÇÃO

  1. Inicie uma venda através da Automação Comercial;
  2. Selecione a forma de pagamento na Automação que acione o CapptaGPPlus;
  3. Quando a mensagem “Insira ou Passe o Cartão” surgir, pressione o botão ANULA (botão Vermelho do Pinpad);
  4. Confirme o cancelamento da operação “Operação Cancelada? selecione 1- Sim”.

RESULTADOS ESPERADOS

  1. A Automação deverá interpretar a resposta de operação negada de código “4- Operação Cancelada”;
  2. A mensagem “Operação Cancelada pelo Operador” deverá ser exibida.

EVIDÊNCIAS NECESSÁRIAS (RESULTADO OBTIDO)

  • Enviar log da operação;
Suggest Edits

Testes de captura de informações

 

Os testes a seguir têm como finalidade testar o uso de informações contidas no retorno do CAPPTAÍ, tais informações podem ser utilizadas pelo Software de Automação, visando facilitar a usabilidade dos sistemas, proporcionar praticidade aos lojistas e agregar funcionalidades a integração entre os sistemas.

IMPORTANTE!

PARA REALIZAÇÃO DOS TESTES 31 A 33 O SOFTWARE DE AUTOMAÇÃO DEVERÁ REALIZAR O USO DOS RETORNOS DO CAPPTAÍ, USANDO AS INFORMAÇÕES OBTIDAS ATRAVÉS DO ENDPOINT QUE A INTEGRAÇÃO OFERECE PARA CONSULTAR OS DADOS DAS TRANSAÇÕES.

Fique atento!

A realização das sequências de número 31 a 33 são opcionais. Estes recursos permitem a Automação Comercial gerar relatórios com os retornos informados pelo CAPPTAÍ e Interpretar a forma de pagamento que foi utilizada na transação.

Suggest Edits

Sequência 15 –Tratamento de venda pendente

 

Sequência Obrigatória

PREPAROS

  • Realize uma transação qualquer.

PASSOS DE EXECUÇÃO

  1. Inicie uma venda através da Automação Comercial;
  2. Selecione a forma de pagamento na Automação que acione o CapptaGpPlus;
  3. Antes da confirmação da venda fechar o CapptaGpPlus e ou Sistema
  4. Inicie uma nova transação

RESULTADOS ESPERADOS

  1. Verifique se o CapptaGpPlus mostra ao usuário a venda que esta Pendente
  2. Clique em Sim

EVIDÊNCIAS NECESSÁRIAS (RESULTADO OBTIDO)

  • Enviar log da operação;
  • Print da mensagem
Suggest Edits

Testes de captura de CPF

 

Os Testes referente a captura de CPF tem o intuito de testar a integração entre o CAPPTAÍ e a Automação durante a entrada do CPF para a aplicação diretamente do PINPAD, proporcionando ao usuário a facilidade no momento de buscar cadastro ou cadastrar novos clientes do estabelecimento, além de facilitar a inserção do CPF na nota.

Agregue diferenciais a sua Automação Comercial adotando o input do CPF através do PINPAD! A validação do CPF é por nossa conta...

A realização das sequências de número 34 a 36 são opcionais. Estes recursos permitem a Automação Comercial solicite ao CAPPTAÍ que abra comunicação com o Pinpad, para receber número de CPF, Telefone e Senha, que será retornado à Automação.

Suggest Edits

Sequência 16 – Captura de número de CPF pelo PINPAD

 

Sequência Não Obrigatória

PREPAROS

  • Realize um novo cadastro de cliente dentro da Automação Comercial.

PASSOS DE EXECUÇÃO

  1. Acesse a janela de Cadastro de novos clientes na Automação comercial;
  2. Alimente o banco com um novo cliente;
  3. Em uma área da Automação Comercial deixe explicito ao usuário a possibilidade de inserir o CPF pelo PINPAD;
  4. Introduza o CPF através do PINPAD;
  5. Mostre ao usuário que foi cadastrado com sucesso o novo cliente.

RESULTADOS ESPERADOS

  1. O Software deverá coletar o CPF através do PINPAD

EVIDÊNCIAS NECESSÁRIAS (RESULTADO OBTIDO)

Enviar o log

Suggest Edits

Sequência 17 – Captura de número de CPF inválido pelo PINPAD

 

Sequência Não Obrigatória

PREPAROS

  • Realize uma consulta de clientes já inserido no banco de clientes cadastrados.

PASSOS DE EXECUÇÃO

  1. Acesse a janela de Consulta de clientes dentro Automação comercial;
  2. Realize uma consulta de um cliente já cadastrado através de seu CPF;
  3. Em uma área da Automação Comercial deixe explicito ao usuário a possibilidade de inserir o CPF pelo PINPAD;
  4. Introduza o CPF através do PINPAD.
  5. Mostre o cadastro do cliente do CPF informado

RESULTADOS ESPERADOS

  1. O Software deverá coletar o CPF através do PINPAD para buscar no banco o cadastro do cliente.

EVIDÊNCIAS NECESSÁRIAS (RESULTADO OBTIDO)

Enviar log

Suggest Edits

Sequência 18 – Falha Com PINPAD durante captura de CPF

 

Sequência Não Obrigatória

PREPAROS

  • Realize um novo Cadastro de cliente dentro da Automação comercial.

PASSOS DE EXECUÇÃO

  1. Acesse a janela de Cadastro de novos clientes na Automação comercial;
  2. Alimente o banco com um novo cliente;
  3. Em uma área da Automação Comercial deixe explicito ao usuário a possibilidade de inserir o CPF pelo PINPAD;
  4. Desconecte o PINPAD do computador.

RESULTADOS ESPERADOS

  1. A Aplicação deverá interpretar o Retorno do TEF, exibindo ao Usuário a mensagem.

EVIDÊNCIAS NECESSÁRIAS (RESULTADO OBTIDO)

  • Enviar print’s das telas durante a falha de comunicação com o PINPAD durante o cadastro de um novo cliente.

Suggest Edits

Contingência em caso de Falha na Transação

 

Para garantir que a Automação não irá impedir o usuário de finalizar uma venda em cartão com o Cappta, caso esteja sem internet ou motivo adverso, é necessário a caráter de contingência, adicionar de uma forma de pagamento no Software, pois assim, o operador utilizará este finalizador e após a dificuldade ser sanada, o mesmo poderá voltar a utilizar o Cappta normalmente. Desta maneira o operador de caixa não precisará acessar nenhuma configuração da automação para desativar o Cappta e ativar outra forma de pagamento.

Atenção!

Agregue diferenciais a sua Automação Comercial adotando nossas sugestões de melhores práticas!

Suggest Edits

Sequência 19 – Forma de Pagamento em Contingência

 

Sequência Obrigatória!

PREPAROS

  • Realize uma transação qualquer;
  • Desconecte propositalmente a internet durante a venda TEF.

PASSOS DE EXECUÇÃO

  1. Inicie uma venda através da Automação Comercial;
  2. Selecione a forma de pagamento na Automação que acione o CapptaGPPlus;
  3. Desconecte a internet da máquina antes da inserção de senha;
  4. Serviço Indisponível, por favor verifique sua conexão com a internet. “Deseja tentar novamente?” Selecione: Não.

RESULTADOS ESPERADOS

  1. O sistema deverá retornar as formas de pagamento;
  2. Na tela de formas de pagamento deverá existir uma opção em que a venda é finalizada em POS (termos sugeridos: POS Crédito, POS Débito), Dinheiro.

EVIDÊNCIAS NECESSÁRIAS (RESULTADO OBTIDO)

  • Enviar print’s de todas etapas da venda.

Atenção!

Este teste tem a intenção de mostrar ao usuário que o Cappta esta indisponível, caso de falta de internet. Mas ele pode finalizar sua venda de outra forma. Evitando assim que o mesmo tenha prejuizos

Suggest Edits

Estorno após cancelamento de Cupom Fiscal

 

O próximo teste tem a finalidade de realizar estorno da última transação sem a necessidade de acessar as funções Administrativas. Para isso deve ser utilizado o método de cancelar pagamento. Dessa forma a Automação comercial pode cancelar o documento fiscal e logo em seguida estornar a venda junto a adquirente.
Assim facilitando o usuário no momento de realizar o cancelamento de uma venda já concluída, encurtando o passo de após cancelar o cupom fiscal entrar nas funções ADM para estornar a transação juntamente a rede adquirente em que a venda foi aprovada.

Importante!

A sequência a seguir deve ser realizada para garantir que ao ser cancelado o documento fiscal da venda, também será estornada a transação no Cappta.

Suggest Edits

Sequência 20 – Cancelamento após cancelar documento fiscal

 

Fique atento!

A sequência a seguir deve ser realizada caso utilize impressora fiscal, para garantir que ao ser cancelado o cupom a transação também será estornada a venda no TEF.

PREPAROS

  • Realize uma transação qualquer;

PASSOS DE EXECUÇÃO

  1. Realize uma venda através da Automação Comercial;
  2. Cancele seu cupom fiscal após sua finalização;
  3. Na mesma janela após cancelar o cupom fiscal envie uma requisição de Cancelamento de Pagamento, com a senha administrativa e nº de Controle da venda que teve o Cupom Fiscal Cancelado;
  4. Finalize o estorno pelo TEF. OBS PARA INTEGRAÇÃO API VISIVEL: Para que usuário possa ter acesso ao número de Controle com maior facilidade, recomendamos que armazene o controle da transação da última venda que é retornado no objeto com os detalhes da transação, para que seja exibido na tela para o usuário, para auxiliá-lo no momento de ser solicitada a digitação do número de controle no Gerenciador Padrão.

RESULTADOS ESPERADOS

  1. A transação deverá ser cancelada com sucesso após o cancelamento do Cupom fiscal.

EVIDÊNCIAS NECESSÁRIAS (RESULTADO OBTIDO)

  • Coletar e enviar o arquivo integration-adapter.log contendo os arquivos trocados durante a operação.
  • Enviar print’s ou vídeo de todas etapas da operação.

Suggest Edits

Sequência 21 - Experiência do usuário

 

Sequência Obrigatória

Este teste tem a função de capturar a experiência do usuário através de um vídeo.

Finalidade

A simples observação de fotos não nos revela a real experiência do usuário, gostaríamos de ver como é o comportamento do software com nossa aplicação.

Preparos

Utilize uma ferramenta de captura de vídeo, podendo utilizar uma que mais se familiariza, mas se não tiver indico esta: Atube Catcher

Grave todos os passos de uma transação qualquer.

Como instalar

Após o download execute o instalador e siga os passos para instalação.

Aceite os termos, em seguida click em avançar

Click em Concluir

Escolha o Idioma

Click na aba Screen Record

Escolha a área a ser gravada no botão (Traçar Área) e depois em iniciar

Suggest Edits

Considerações Finais

 

Envie os resultados obtidos em todas as sequências contidas neste Roteiro de Testes para a Cappta através do e-mail: homologa@cappta.com.br

Contatos equipe técnica:

Telefone direto: (11)4302-6179
WhatsApp 11 94315-2638
skype homologa.cappta | homologa.cappta1
e-mail: homologa@cappta.com.br