❔Dúvidas Frequentes
Sobre Pagamento Customizado
Versão Completa
A versão Completa da URL é utilizada para pagamentos customizados mais robustos, onde temos funcionalidades como Cartões salvos, HTML customizado, Scripts customizados e Parcelamento customizado.
São 5 requisições feitas pela plataforma.
Abaixo apresentamos os modelos de Requisição, com o objeto enviado, e o modelo de Response, esperado pela plataforma:
Modelos de Requisição e de Response - v2
Modelo esperado quando se é utilizada a versão Completa da URL.
Na versão Completa da URL, você poderá utilizar features customizadas e a plataforma irá enviar a requisição para o endpoint utilizando como base o endereço cadastrado no campo Url, juntamente com os headers cadastrados na seção "Headers", no formato de chave e valor. Toda requisição vai acompanhada dos headers cadastrados.
No processo temos 5 requisições (Payment details, card, payment, capture e chargeback) que são feitas para a Url base no seguinte estrutura {urlbase}/payment-details, por exemplo.
Para melhor entendimento neste tópico vamos apresentar o modelo de requisição e o modelo de response na sequencia, separado pelas requisições:
Payment Details
Quando é utilizada?
Quando o usuário seleciona a opção de pagamento customizada no Checkout.
Estrutura da chamada
{urlbase}/payment-details
utiliza método POST enviando os dados do carrinho + headers e espera receber o objeto de retorno informado abaixo.
Modelo de Requisição da Payment Details
Estrutura do objeto enviado e seus dados:
{
"Loja": "Nome da Loja",
"PedidoId": 41282742,
"ValorFrete": 13.27,
"ValorTotal": 130.79,
"Usuario": {
"IdUsuario": 899988,
"Nome": "nome cliente",
"CPF": "11111111111",
"CNPJ": "",
"Email": [email protected],
"Telefone": "41999999999",
"Endereco": {
"Logradouro": "Nunes Machado",
"Numero": "68",
"Complemento": "902",
"Bairro": "Batel",
"Cep": "80420120",
"Cidade": "Curitiba",
"Estado": "PR"
}
},
"Produtos": [
{
"Codigo": 257442,
"Nome": "Kit de Cervejas em Lata - Compre 6 e Leve 10",
"Valor": 119.9,
"Quantidade": 1,
"Personalizacao": [
{
"Nome": "Número",
"Valor": "12",
"Custo": 5.0
}
}
]
}
Tabela de detalhamento dos campos da requisição da Payment Details:
Campo | Tipo | Obrigatoriedade | Descrição |
---|---|---|---|
Loja | string | obrigatório | Nome da loja cadastrado no admin da Wake Commerce. |
PedidoId | inteiro | obrigatório | Código identificador do Pedido. |
ValorFrete | decimal | opcional | Valor de frete do pedido. O campo pode ser zerado. |
ValorTotal | decimal | obrigatório | Valor total cobrado no pedido considerando todos os ajustes. |
Usuario / IdUsuario | inteiro | obrigatório | Código de identificação do usuário. |
Usuario / Nome | string | obrigatório | Nome do usuário. |
Usuario / CPF | string | opcional | CPF do usuário. Obrigatório para usuários Pessoa Física. Pode vir vazio caso o usuário seja Pessoa Jurídica. |
Usuario / CNPJ | string | opcional | CNPJ do usuário. Obrigatório para usuários Pessoa Jurídica. Pode vir vazio caso o usuário seja Pessoa Física. |
Usuario / Email | string | obrigatório | E-mail do usuário. |
Usuario / Telefone | string | obrigatório | Telefone do usuário. |
Usuario / Endereco / Logradouro | string | obrigatório | Logradouro / Rua / Avenida / Estrada do endereço do usuário. |
Usuario / Endereco / Numero | string | obrigatório | Número do endereço do usuário. |
Usuario / Endereco / Complemento | string | opcional | Complemento do endereço do usuário. Pode vir vazio. |
Usuario / Endereco / Bairro | string | obrigatório | Barrio do endereço do usuário. |
Usuario / Endereco / Cep | string | obrigatório | CEP do endereço do usuário. |
Usuario / Endereco / Cidade | string | obrigatório | Cidade do endereço do usuário. |
Usuario / Endereco / Estado | string | obrigatório | Estado do endereço do usuário. |
Produtos / Codigo | inteiro | obrigatório | Código identificador do produto cadastrado na plataforma. |
Produtos / Nome | string | obrigatório | Nome do produto cadastrado na plataforma. |
Produtos / Valor | decimal | opcional | Valor do produto cadastrado na plataforma. |
Produtos / Quantidade | inteiro | obrigatório | Quantidade do produtos no pedido. |
Produtos / Personalizacao / Nome | string | opcional | Nome da personalização do produto, quando o produto permitir algum tipo de personalização. Pode vir vazio. |
Produtos / Personalizacao / Valor | string | opcional | Valor da personalização do produto, quando o produto permitir algum tipo de personalização. Pode vir vazio. |
Produtos / Personalizacao / Custo | decimal | opcional | Custo da personalização do produto, quando o produto permitir algum tipo de personalização. Pode vir vazio. |
Modelo do response esperado da Payment Details:
{
"html": "<div data-gateway-cartao>\n <div class='forminline'>\n <input type=\"hidden\" name=\"paymentMethod\" value=\"1\" />\n </div>\n</div>",
"scriptUrls": ["https://dominio.com.br/scripts/custom.js","https://domínio.com;br/scripts/custom-v3.js"],
"cartoesSugeridos": [
{
"chave": "1234567",
"nome": "JOAO SILVA",
"numero": "411111XXXXXX1111",
"bandeira": "visa"
},
{
"chave": "1236547",
"nome": "JOAO SILVA",
"numero": "511111XXXXXX1122",
"bandeira": "mastercard"
}
],
"parcelamento": [{
"parcelas": 6,
"valor": 20.0,
"ajuste": 0.0
}]
}
É possível utilizar as funcionalidades separadamente
Para isso, basta retornar "null" nos objetos e a plataforma irá utilizar o padrão.
Ou seja, caso o HTML seja enviado como "null", a plataforma irá verificar o campo Editor HTML e apresentar o que está configurado neste campo.
O mesmo se aplica para as demais funcionalidades "scriptUrls", "cartoesSugeridos" e "parcelamento".
Tabela de detalhamento dos campos do response da Payment Details:
Campo | Tipo | Obrigatoriedade | Descrição |
---|---|---|---|
html | javascript | opcional | Retorna o HTML do formulário de pagamento. Pode ser enviado como "null" e a plataforma irá utilizar o padrão. |
scriptUrls | javascript | opcional | Retorna as URLs de Scripts necessários no checkout. Pode ser enviado como "null" e a plataforma irá utilizar o padrão. |
cartoesSugeridos | javascript | opcional | Objeto que retorna os cartões salvos dos clientes para exibição, utilização e exclusão via front. Pode ser enviado como "null" e a plataforma não irá mostrar os cartões salvos. |
cartoesSugeridos / chave | string | mandatório | Token do perfil de pagamento informado pelo gateway (Mandatório se retornado o objeto cartoesSugeridos). |
cartoesSugeridos / nome | string | mandatório | Nome do cliente no cartão salvo (Mandatório se retornado o objeto cartoesSugeridos). |
cartoesSugeridos / numero | inteiro | mandatório | Número do cartão salvo. Deve estar mascarado. Ex: 4567 xxxx xxxx 6975 (Mandatório se retornado o objeto cartoesSugeridos). |
cartoesSugeridos / bandeira | string | mandatório | Bandeira do cartão salvo (Mandatório se retornado o objeto cartoesSugeridos). |
parcelamento | inteiro | opcional | Objeto que retorna a quantidade de parcelas e juros disponíveis para o carrinho. Essas informações devem estar de acordo com o parcelamento configurado em Grupos e Pagamentos. Pode ser enviado como "null" e a plataforma irá utilizar o padrão. |
parcelamento / parcelas | inteiro | mandatório | Retorna a quantidade de parcelas (Mandatório se retornado o objeto Parcelamento). |
parcelamento / valor | decimal | mandatório | Retorno o valor da parcela (Mandatório se retornado o objeto Parcelamento). |
parcelamento / ajuste | decimal | mandatório | Retorna os ajustes do parcelamento (Mandatório se retornado o objeto Parcelamento). |
Importante
O Parcelamento deve ser o mesmo configurado no Admin > Pagamentos > Grupos e Parcelamentos > Parcelamentos.
Card
Quando é utilizada?
Quando o usuário exclui o cartão salvo que está sendo apresentado na opção de pagamento customizado no Checkout.
Para isso, será necessário criar o botão de "excluir" via front-end vinculado ao cartão salvo, permitindo ao usuário excluir, caso seja estratégico para o lojista.
Estrutura da chamada
{urlbase}/card
utiliza método DELETE enviando o token do cartão que o usuário deseja remover dos cartões salvos.
Modelo de requisição da Card
Estrutura do objeto enviado e seus dados:
{
"loja": "string",
"idUsuario": "string",
"email": "string",
"chaveCartao": "string"
}
Tabela de detalhamento dos campos da requisição da Card
Campo | Tipo | Obrigatoriedade | Descrição |
---|---|---|---|
loja | string | obrigatório | Nome da loja cadastrada no admin da plataforma. |
idUsuario | string | obrigatório | Código de identificação do usuário que está vinculado ao cartão. |
string | obrigatório | E-mail do usuário que está vinculado ao cartão. | |
chaveCartao | string | obrigatório | Chave de identificação do cartão. |
Modelo de Response esperado da Card:
200
Em caso de erro
Caso o retorno não seja 200, basta retornar o outro código relacionado com o erro em questão.
Tabela de detalhamento dos campos esperados no response da Card:
Campo | Tipo | Obrigatoriedade | Descrição |
---|---|---|---|
200 | HTTP | obrigatório | Sucesso na operação. |
400,500,etc | HTTP | obrigatório | Falha na operação. |
Payment
Quando é utilizada?
Quando o usuário fecha o pedido utilizando o pagamento customizado no checkout.
Estrutura da chamada
{urlbase}/payment
utiliza método POST enviando os dados do carrinho + headers + pagamento para realizar a cobrança do pedido.
Modelo de Requisição da Payment
Estrutura do objeto enviado e seus dados:
{
"id": 189539,
"loja": "Nome da Loja",
"chave": "2D39FE37-611E-4015-1AF6-F62A2223B8D7",
"pedido": 41282742,
"frete": 13.27,
"desconto": 0,
"total": 130.79,
"primeiroPedidoAssinatura": false,
"assinatura": {
"id": 1,
"tipo": "recorrencia"
},
"usuario": {
"nome": "nome cliente",
"cpf": "11111111111",
"cnpj": "",
"email": "[email protected]",
"endereco": {
"logradouro": "Nunes Machado",
"numero": "68",
"complemento": "902",
"bairro": "Batel",
"cep": "80420120",
"cidade": "Curitiba",
"estado": "PR"
},
"telefone": "41999999999"
},
"produtos": [
{
"codigo": 257442,
"nome": "Kit de Cervejas em Lata - Compre 6 e Leve 10",
"cd": 123,
"sku": "5784545",
"valor": 119.9,
"quantidade": 1,
"personalizacao": [
{
"nome": "Número",
"valor": "12",
"custo": 5.0
},
{
"codigo": 257440,
"nome": "Kit de Cervejas em Lata 2",
"cd": 321,
"sku": "",
"valor": 0.0,
"quantidade": 1,
"personalizacao": [
{
"nome": "Número",
"valor": "",
"custo":
}
]
}
],
"pagamento": {
"parcelas": 2,
"valor": 130.79,
"ajuste": 0.0,
"total": 130.79,
"ip": "",
"endereco": {
"logradouro": "Nunes Machado",
"numero": "68",
"complemento": "902",
"bairro": "Batel",
"cep": "80420120",
"cidade": "Curitiba",
"estado": "PR"
},
"form": {
"cpf": "111.111.111-11",
"number": "5555 5555 5555 5555",
"name": "nome cliente",
"month": "1",
"year": "2222",
"expiry": "10/2222",
"cvc": "222",
"saveCard": true
}
}
}
Salvar e Excluir cartões
Para utilizar a funcionalidade de Cartões Salvos, é necessário permitir ao usuário Salvar o Cartão através do formulário do Novo Cartão de Crédito. A plataforma irá enviar o campo "saveCard" na requisição como "true" ou "false".
Os cartões salvos são de responsabilidade da aplicação responsável pela integração.
É recomendado que somente o cartão tokenizado junto ao Gateway/Adquirente seja salvo na base, juntamente com os dados básicos para utilização visual no checkout.É possível permitir ao usuário Excluir o cartão salvo apresentado no método de pagamento customizado.
Como informado na Requisição Card para deletar o cartão.
Boa prática
Como boa prática e para manter um padrão da plataforma, somente os tokens dos cartões que retornaram com a transação aprovada devem ser salvos na base, garantindo assim que somente cartões válidos serão salvos na aplicação e utilizados com sucesso pelos consumidores posteriormente.
Objeto "form" padrão
O objeto "form" padrão é composto somente pelo "cpf" e "saveCard" de forma nativa.
No caso do campo "saveCard", por padrão ele estará oculto e desabilitado no checkout. Para mostrar o campo no checkout e determinar se deve ou não estar sempre marcado por padrão, basta inserir o input abaixo no "Editor HTML":
Alterando o value para "true", o campo sempre abrirá marcado por padrão.As demais informações devem ser inseridas via script no checkout. No exemplo acima, a aplicação responsável pela integração necessita de todos esses dados para cartão de crédito.
Modelo de Objeto "form" para Boleto e Pix
No exemplo de requisição acima, temos um formulário com informações necessárias para cartão de crédito. Porém o formulário é flexível e pode ser alterado de acordo com o método de pagamento utilizado. Segue abaixo um exemplo de "form" para Boleto:
"form": {
"cpf": "111.111.111-11",
"Loja": "nome da loja",
"paymentMethod": "3"
}
Tabela de detalhamento dos campos da requisição de Payment:
Campo | Tipo | Obrigatoriedade | Descrição |
---|---|---|---|
id | inteiro | obrigatório | Código identificador do conector na base de dados da plataforma. |
loja | string | obrigatório | Nome da loja cadastrado no admin da Wake Commerce. |
chave | guid | obrigatório | Chave de identificação da transação. Essa chave é dinâmica, alterada a cada pedido. |
pedido | inteiro | obrigatório | Código identificador do Pedido. |
frete | decimal | obrigatório | Valor de frete do pedido. O campo pode ser zerado. |
desconto | decimal | obrigatório | Valor de desconto do pedido. O campo pode ser zerado. |
total | decimal | obrigatório | Valor total cobrado no pedido considerando todos os ajustes. |
primeiroPedidoAssinatura | boolean | obrigatório | Campo destinado para primeiro pedido de uma assinatura. Deve ser "true" ou "false". |
assinatura / id | inteiro | obrigatório | Código identificador da Assinatura cadastrada no admin da Wake Commerce. |
assinatura / tipo | string | obrigatório | Texto que identifica o tipo de assinatura. Podem ser retornados os valores Admin, Null ou Recorrência, conforme o tipo do pedido: - Admin: para pedidos gerados a partir do admin na tela de assinaturas; - Null: para o primeiro pedido em que a assinatura será originada, o objeto assinatura será Null. Isso ocorre, pois a assinatura só é criada depois do request para API Custom; - Recorrência: pedido de assinatura. |
usuario / nome | string | obrigatório | Nome do usuário. |
usuario / cpf | string | obrigatório | CPF do usuário. Obrigatório para usuários Pessoa Física. Pode vir vazio caso o usuário seja Pessoa Jurídica. |
usuario / cnpj | string | obrigatório | CNPJ do usuário. Obrigatório para usuários Pessoa Jurídica. Pode vir vazio caso o usuário seja Pessoa Física. |
usuario /email | string | obrigatório | E-mail do usuário. |
usuario / endereco / logradouro | string | obrigatório | Logradouro / Rua / Avenida / Estrada do endereço do usuário. |
usuario / endereco / numero | string | obrigatório | Número do endereço do usuário. |
usuario / endereco / complemento | string | opcional | Complemento do endereço do usuário. Pode vir vazio. |
usuario / endereco / bairro | string | obrigatório | Barrio do endereço do usuário. |
usuario / endereco / cep | string | obrigatório | CEP do endereço do usuário. |
usuario / endereco / cidade | string | obrigatório | Cidade do endereço do usuário. |
usuario / endereco / estado | string | obrigatório | Estado do endereço do usuário. |
usuario / telefone | string | obrigatório | Telefone do usuário. |
produtos / codigo | inteiro | obrigatório | Código identificador do produto cadastrado na plataforma. |
produtos / nome | string | obrigatório | Nome do produto cadastrado na plataforma. |
produtos / cd | inteiro | obrigatório | Centro de Distribuição de origem do produto. |
produtos / sku | string | obrigatório | SKU do produto cadastrado na plataforma. |
produtos / valor | decimal | obrigatório | Valor do produto cadastrado na plataforma. |
produtos / quantidade | inteiro | obrigatório | Quantidade do produtos no pedido. |
produtos / personalizacao / nome | string | opcional | Nome da personalização do produto, quando o produto permitir algum tipo de personalização. Pode vir vazio. |
produtos / personalizacao / valor | string | opcional | Valor da personalização do produto, quando o produto permitir algum tipo de personalização. Pode vir vazio. |
produtos / personalizacao / custo | decimal | opcional | Custo da personalização do produto, quando o produto permitir algum tipo de personalização. Pode vir vazio. |
pagamento / parcelas | inteiro | obrigatório | Quantidade de parcelas do pedido em cima do valor total do pedido. |
pagamento / valor | decimal | obrigatório | Valor total cobrado no pedido sem os descontos/ajustes aplicados. |
pagamento / ajuste | decimal | obrigatório | Ajustes do pedido considerando descontos. Pode vir vazio. |
pagamento / total | decimal | obrigatório | Valor total cobrado no pedido considerando todos os ajustes. |
pagamento / ip | string | opcional | IP do dispositivo que o usuário utilizou para finalizar o pedido. |
pagamento / endereco / logradouro | string | obrigatório | Logradouro / Rua / Avenida / Estrada do endereço de pagamento do pedido. |
pagamento / endereco / numero | string | obrigatório | Número do endereço de pagamento do pedido. |
pagamento / endereco / complemento | string | opcional | Complemento do endereço de pagamento do pedido. Pode vir vazio. |
pagamento / endereco / bairro | string | obrigatório | Bairro do endereço de pagamento do pedido. |
pagamento / endereco / cep | string | obrigatório | CEP do endereço de pagamento do pedido. |
pagamento / endereco / cidade | string | obrigatório | Cidade do endereço de pagamento do pedido. |
pagamento / endereco / estado | string | obrigatório | Estado do endereço de pagamento do pedido. |
pagamento / form / cpf | string | obrigatório | CPF utilizado no pagamento do pedido. |
pagamento / form / saveCard | boolean | obrigatório | Campo responsável por informar se o cartão utilizado no pagamento do pedido deve ser salvo para compras futuras. Deve ser "true" ou "false". Obs: Este campo só é utilizado quando utilizada a versão Completa. |
Modelo do response esperado da Payment
{
"statusId":1,
"message":"Minha mensagem"
}
{
"statusId":2,
"message":"Minha mensagem"
}
{
"statusId":3,
"message":"Minha mensagem"
}
{
"statusId":4,
"message":"Minha mensagem"
}
Tabela de detalhamento dos campos do response acima:
Campo | Tipo | Obrigatoriedade | Descrição |
---|---|---|---|
statusId | inteiro | obrigatório | Informa o status da transação em tempo real. (Tabela de status informada abaixo) |
message | string | obrigatório | Retorna a mensagem do status da transação. |
Tabela de Status:
StatusId | Nome status | Ação |
---|---|---|
1 | Aguardando Pagamento | Mantém o pedido como aguardando pagamento na plataforma. |
2 | Não autorizado | Nega a transação. O Pop-up do checkout online é exibido na tela do usuário e a compra é bloqueada. |
3 | Pago | Atualiza o status do pedido para Pago na plataforma. |
4 | Autorizado | Atualiza o status do pedido para Autorizado na plataforma. Usado em processamento Two-steps (Autorização separada da Captura). |
Nesse modelo, quando no response for enviado "statusId":2, que se refere a um pagamento "Não Autorizado", será exibido o pop-up do checkout online para que o comprador corrija os dados do cartão e refaça o pagamento.
Lembrando que o retorno exibido no pop-up é padrão e o texto não pode ser personalizado.
Processamento Two-Steps
No processamento "two-steps", a Autorização é feita separada da Captura do pagamento no cartão. Por tanto, deve-se responder nossa requisição com o status 4 e, posteriormente quando o pedido for "Aprovado", será feita uma nova requisição solicitando a Captura.
Aviso em Tempo Real
Com o JSON recebido na URL cadastrada, o pagamento pode ser capturado e o retorno do status para informar o comprador pode ser em tempo real, via response ou posteriormente, via postback.
Quando realizada integração via postback, a plataforma sempre informará no pedido o status de "aguardando pagamento" até que um novo status seja enviado.
Veja como utilizar o Modelo Postback.
Authorize (Autorização)
Quando é utilizada?
Quando o usuário deseja que o pedido seja processado em Two-steps, onde a transação deverá ser primeiro Autorizada e, após o Antifraude aprovar, a transação seja Capturada junto a aplicação do terceiro.
Essa requisição será enviada pela plataforma usando a estrutura abaixo.
Estrutura da chamada
{urlbase}/authorize
utiliza método POST enviando os dados do carrinho + headers + pagamento para realizar a cobrança do pedido.
Modelo de Requisição da Authorize
Estrutura do objeto enviado e seus dados:
{
"id": 189539,
"loja": "Nome da Loja",
"chave": "2D39FE37-611E-4015-1AF6-F62A2223B8D7",
"pedido": 41282742,
"frete": 13.27,
"desconto": 0,
"total": 130.79,
"primeiroPedidoAssinatura": false,
"assinatura": {
"id": 1,
"tipo": "recorrencia"
},
"usuario": {
"nome": "nome cliente",
"cpf": "11111111111",
"cnpj": "",
"email": "[email protected]",
"endereco": {
"logradouro": "Nunes Machado",
"numero": "68",
"complemento": "902",
"bairro": "Batel",
"cep": "80420120",
"cidade": "Curitiba",
"estado": "PR"
},
"telefone": "41999999999"
},
"produtos": [
{
"codigo": 257442,
"nome": "Kit de Cervejas em Lata - Compre 6 e Leve 10",
"cd": 123,
"sku": "5784545",
"valor": 119.9,
"quantidade": 1,
"personalizacao": [
{
"nome": "Número",
"valor": "12",
"custo": 5.0
},
{
"codigo": 257440,
"nome": "Kit de Cervejas em Lata 2",
"cd": 321,
"sku": "",
"valor": 0.0,
"quantidade": 1,
"personalizacao": [
{
"nome": "Número",
"valor": "",
"custo":
}
]
}
],
"pagamento": {
"parcelas": 2,
"valor": 130.79,
"ajuste": 0.0,
"total": 130.79,
"ip": "",
"endereco": {
"logradouro": "Nunes Machado",
"numero": "68",
"complemento": "902",
"bairro": "Batel",
"cep": "80420120",
"cidade": "Curitiba",
"estado": "PR"
},
"form": {
"cpf": "111.111.111-11",
"number": "5555 5555 5555 5555",
"name": "nome cliente",
"month": "1",
"year": "2222",
"expiry": "10/2222",
"cvc": "222",
"saveCard": true
}
}
}
Salvar e Excluir cartões
Para utilizar a funcionalidade de Cartões Salvos, é necessário permitir ao usuário Salvar o Cartão através do formulário do Novo Cartão de Crédito. A plataforma irá enviar o campo "saveCard" na requisição como "true" ou "false".
Os cartões salvos são de responsabilidade da aplicação responsável pela integração.
É recomendado que somente o cartão tokenizado junto ao Gateway/Adquirente seja salvo na base, juntamente com os dados básicos para utilização visual no checkout.É possível permitir ao usuário Excluir o cartão salvo apresentado no método de pagamento customizado.
Como informado na Requisição Card para deletar o cartão.
Boa prática
Como boa prática e para manter um padrão da plataforma, somente os tokens dos cartões que retornaram com a transação aprovada devem ser salvos na base, garantindo assim que somente cartões válidos serão salvos na aplicação e utilizados com sucesso pelos consumidores posteriormente.
Objeto "form" padrão
O objeto "form" padrão é composto somente pelo "cpf" e "saveCard" de forma nativa.
No caso do campo "saveCard", por padrão ele estará oculto e desabilitado no checkout. Para mostrar o campo no checkout e determinar se deve ou não estar sempre marcado por padrão, basta inserir o input abaixo no "Editor HTML":
Alterando o value para "true", o campo sempre abrirá marcado por padrão.As demais informações devem ser inseridas via script no checkout. No exemplo acima, a aplicação responsável pela integração necessita de todos esses dados para cartão de crédito.
Importante
Este fluxo de Antifraude, no Pagamento Customizado, é exclusivamente compatível com o modelo completo de integração e não é suportado no modelo simplificado. Certifique-se de que sua integração esteja configurada conforme o modelo completo para garantir o funcionamento correto deste fluxo de Antifraude.
Modelo de Objeto "form" para Boleto e Pix
No exemplo de requisição acima, temos um formulário com informações necessárias para cartão de crédito. Porém o formulário é flexível e pode ser alterado de acordo com o método de pagamento utilizado. Segue abaixo um exemplo de "form" para Boleto:
"form": {
"cpf": "111.111.111-11",
"Loja": "nome da loja",
"paymentMethod": "3"
}
Tabela de detalhamento dos campos da requisição de Authorize:
Campo | Tipo | Obrigatoriedade | Descrição |
---|---|---|---|
id | inteiro | obrigatório | Código identificador do conector na base de dados da plataforma. |
loja | string | obrigatório | Nome da loja cadastrado no admin da Wake Commerce. |
chave | guid | obrigatório | Chave de identificação da transação. Essa chave é dinâmica, alterada a cada pedido. |
pedido | inteiro | obrigatório | Código identificador do Pedido. |
frete | decimal | obrigatório | Valor de frete do pedido. O campo pode ser zerado. |
desconto | decimal | obrigatório | Valor de desconto do pedido. O campo pode ser zerado. |
total | decimal | obrigatório | Valor total cobrado no pedido considerando todos os ajustes. |
primeiroPedidoAssinatura | boolean | obrigatório | Campo destinado para primeiro pedido de uma assinatura. Deve ser "true" ou "false". |
assinatura / id | inteiro | obrigatório | Código identificador da Assinatura cadastrada no admin da Wake Commerce. |
assinatura / tipo | string | obrigatório | Texto que identifica o tipo de assinatura. Podem ser retornados os valores Admin, Null ou Recorrência, conforme o tipo do pedido: - Admin: para pedidos gerados a partir do admin na tela de assinaturas; - Null: para o primeiro pedido em que a assinatura será originada, o objeto assinatura será Null. Isso ocorre, pois a assinatura só é criada depois do request para API Custom; - Recorrência: pedido de assinatura. |
usuario / nome | string | obrigatório | Nome do usuário. |
usuario / cpf | string | obrigatório | CPF do usuário. Obrigatório para usuários Pessoa Física. Pode vir vazio caso o usuário seja Pessoa Jurídica. |
usuario / cnpj | string | obrigatório | CNPJ do usuário. Obrigatório para usuários Pessoa Jurídica. Pode vir vazio caso o usuário seja Pessoa Física. |
usuario /email | string | obrigatório | E-mail do usuário. |
usuario / endereco / logradouro | string | obrigatório | Logradouro / Rua / Avenida / Estrada do endereço do usuário. |
usuario / endereco / numero | string | obrigatório | Número do endereço do usuário. |
usuario / endereco / complemento | string | opcional | Complemento do endereço do usuário. Pode vir vazio. |
usuario / endereco / bairro | string | obrigatório | Barrio do endereço do usuário. |
usuario / endereco / cep | string | obrigatório | CEP do endereço do usuário. |
usuario / endereco / cidade | string | obrigatório | Cidade do endereço do usuário. |
usuario / endereco / estado | string | obrigatório | Estado do endereço do usuário. |
usuario / telefone | string | obrigatório | Telefone do usuário. |
produtos / codigo | inteiro | obrigatório | Código identificador do produto cadastrado na plataforma. |
produtos / nome | string | obrigatório | Nome do produto cadastrado na plataforma. |
produtos / cd | inteiro | obrigatório | Centro de Distribuição de origem do produto. |
produtos / sku | string | obrigatório | SKU do produto cadastrado na plataforma. |
produtos / valor | decimal | obrigatório | Valor do produto cadastrado na plataforma. |
produtos / quantidade | inteiro | obrigatório | Quantidade do produtos no pedido. |
produtos / personalizacao / nome | string | opcional | Nome da personalização do produto, quando o produto permitir algum tipo de personalização. Pode vir vazio. |
produtos / personalizacao / valor | string | opcional | Valor da personalização do produto, quando o produto permitir algum tipo de personalização. Pode vir vazio. |
produtos / personalizacao / custo | decimal | opcional | Custo da personalização do produto, quando o produto permitir algum tipo de personalização. Pode vir vazio. |
pagamento / parcelas | inteiro | obrigatório | Quantidade de parcelas do pedido em cima do valor total do pedido. |
pagamento / valor | decimal | obrigatório | Valor total cobrado no pedido sem os descontos/ajustes aplicados. |
pagamento / ajuste | decimal | obrigatório | Ajustes do pedido considerando descontos. Pode vir vazio. |
pagamento / total | decimal | obrigatório | Valor total cobrado no pedido considerando todos os ajustes. |
pagamento / ip | string | opcional | IP do dispositivo que o usuário utilizou para finalizar o pedido. |
pagamento / endereco / logradouro | string | obrigatório | Logradouro / Rua / Avenida / Estrada do endereço de pagamento do pedido. |
pagamento / endereco / numero | string | obrigatório | Número do endereço de pagamento do pedido. |
pagamento / endereco / complemento | string | opcional | Complemento do endereço de pagamento do pedido. Pode vir vazio. |
pagamento / endereco / bairro | string | obrigatório | Bairro do endereço de pagamento do pedido. |
pagamento / endereco / cep | string | obrigatório | CEP do endereço de pagamento do pedido. |
pagamento / endereco / cidade | string | obrigatório | Cidade do endereço de pagamento do pedido. |
pagamento / endereco / estado | string | obrigatório | Estado do endereço de pagamento do pedido. |
pagamento / form / cpf | string | obrigatório | CPF utilizado no pagamento do pedido. |
pagamento / form / saveCard | boolean | obrigatório | Campo responsável por informar se o cartão utilizado no pagamento do pedido deve ser salvo para compras futuras. Deve ser "true" ou "false". Obs: Este campo só é utilizado quando utilizada a versão Completa. |
Modelo do response esperado da Authorize
{
"statusId":1,
"message":"Minha mensagem"
}
{
"statusId":2,
"message":"Minha mensagem"
}
{
"statusId":3,
"message":"Minha mensagem"
}
{
"statusId":4,
"message":"Minha mensagem"
}
Tabela de detalhamento dos campos do response acima:
Campo | Tipo | Obrigatoriedade | Descrição |
---|---|---|---|
statusId | inteiro | obrigatório | Informa o status da transação em tempo real. (Tabela de status informada abaixo) |
message | string | obrigatório | Retorna a mensagem do status da transação. |
Tabela de Status:
StatusId | Nome status | Ação |
---|---|---|
1 | Aguardando Pagamento | Mantém o pedido como aguardando pagamento na plataforma. |
2 | Não autorizado | Nega a transação. O Pop-up do checkout online é exibido na tela do usuário e a compra é bloqueada. |
3 | Pago | Atualiza o status do pedido para Pago na plataforma. |
4 | Autorizado | Atualiza o status do pedido para Autorizado na plataforma. Usado em processamento Two-steps (Autorização separada da Captura). |
Nesse modelo, quando no response for enviado "statusId":2, que se refere a um pagamento "Não Autorizado", será exibido o pop-up do checkout online para que o comprador corrija os dados do cartão e refaça o pagamento.
Lembrando que o retorno exibido no pop-up é padrão e o texto não pode ser personalizado.
Processamento Two-Steps
No processamento "two-steps", a Autorização é feita separada da Captura do pagamento no cartão. Por tanto, deve-se responder nossa requisição com o status 4 e, posteriormente quando o pedido for "Aprovado", será feita uma nova requisição solicitando a Captura.
Aviso em Tempo Real
Com o JSON recebido na URL cadastrada, o pagamento pode ser autorizado e o retorno do status para informar o comprador pode ser em tempo real, via response ou posteriormente, via postback.
Quando realizada integração via postback, a plataforma sempre informará no pedido o status de "aguardando pagamento" até que um novo status seja enviado.
Veja como utilizar o Modelo Postback.
Capture (Captura)
Quando é utilizada?
Quando o usuário deseja que o pedido Aprovado pós Antifraude seja Capturado junto a aplicação do terceiro.
Essa requisição será enviada pela plataforma usando a estrutura abaixo.
Estrutura da chamada
{urlbase}/capture
utiliza método POST enviando o id do pedido, nome da loja, chave da transação e número do pedido em uma estrutura json.
Modelo de requisição da Capture
Estrutura do objeto enviado e seus dados:
{
"id": 189539,
"loja": "Nome da Loja",
"chave": "2D39FE37-611E-4015-1AF6-F62A2223B8D7",
"pedido": 41282742,
}
Tabela de detalhamento dos campos da requisição da Capture
Campo | Tipo | Obrigatoriedade | Descrição |
---|---|---|---|
id | inteiro | obrigatório | Código identificador do conector na base de dados da plataforma. |
loja | string | obrigatório | Nome da loja cadastrado no admin da Wake Commerce. |
chave | guid | obrigatório | Chave de identificação da transação. Essa chave é dinâmica, alterada a cada pedido. |
pedido | inteiro | obrigatório | Código identificador do Pedido. |
Modelo de Response esperado da Capture:
{
"statusId":3,
"message":"Minha mensagem"
}
Tabela de detalhamento dos campos do response acima:
Campo | Tipo | Obrigatoriedade | Descrição |
---|---|---|---|
statusId | inteiro | obrigatório | Informa o status da transação em tempo real. (Tabela de status informada abaixo) |
message | string | obrigatório | Retorna a mensagem do status da transação. |
Tabela de Status:
StatusId | Nome status | Ação |
---|---|---|
1 | Aguardando Pagamento | Mantém o pedido como aguardando pagamento na plataforma. |
2 | Não autorizado | Nega a transação. O Pop-up do checkout online é exibido na tela do usuário e a compra é bloqueada. |
3 | Pago | Atualiza o status do pedido para Pago na plataforma. |
4 | Autorizado | Atualiza o status do pedido para Autorizado na plataforma. Usado em processamento Two-steps (Autorização separada da Captura). |
Processamento Two-Steps
No processamento "two-steps", a Autorização é feita separada da Captura do pagamento no cartão. Por tanto, deve-se responder á nossa requisição /capture com o status 2 (Não autorizado) ou 3 (Pago), conforme response esperado.
Chargeback (Estorno)
Quando é utilizada?
Quando o usuário deseja que o estorno parcial ou total do seu pedido seja realizado.
Este processo é feito via API Pública, usando uma aplicação externa para solicitar o estorno através de um post no endpoint https://api.fbits.net/pedidos/estorno/{pedidoId}.
Uma vez solicitado o estorno via API Pública, a plataforma irá enviar uma requisição usando a estrutura abaixo para o endpoint cadastrado no campo "URL" e aguardando o retorno da aplicação.
Estrutura da chamada
{urlbase}/chargeback
utiliza método POST enviando o número do pedido e o valor a ser estornado em uma estrutura json.
Modelo de requisição da Chargeback
Estrutura do objeto enviado e seus dados:
{
"Pedido": 123456,
"Valor": 10.50
}
Tabela de detalhamento dos campos da requisição da Chargeback
Campo | Tipo | Obrigatoriedade | Descrição |
---|---|---|---|
Pedido | inteiro | obrigatório | Número do pedido gerado no admin da plataforma. |
Valor | decimal | obrigatório | Valor menor ou igual ao total do pedido. |
Modelo de Response esperado da Chargeback:
200
Em caso de erro
Caso o retorno não seja 200, basta retornar o outro código relacionado com o erro em questão.
Tabela de detalhamento dos campos esperados no response da Chargeback:
Campo | Tipo | Obrigatoriedade | Descrição |
---|---|---|---|
200 | HTTP | obrigatório | Sucesso na operação. |
400,500,etc | HTTP | obrigatório | Falha na operação. |
Agora vamos deixar a opção de pagamento visível no Checkout!
Após o desenvolvimento da aplicação no Pagamento Customizado, é necessário realizar as configurações no Admin para que as opções de Pagamento Customizado sejam disponibilizadas no Checkout da loja.
Para isso, acesse nossas documentações funcionais clicando aqui.
Updated 6 months ago