❔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": teste@teste.com.br,
"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": "teste@teste.com.br",
"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": "teste@teste.com.br",
"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 10 months ago