Acesse o novo portal de desenvolvedores E-commerce docs.cielo.com.br.
Atenção: O conteúdo desta página está sendo descontinuado e não receberá atualizações a partir de 14/08/2024. Visite a nova documentação em docs.cielo.br.
O que é Buy Now, Pay Later?
Buy Now, Pay Later, mais conhecido pela sigla BNPL, é um tipo de financiamento de curto prazo, com ou sem taxas para o comprador, que considera uma avaliação de crédito instantânea permitindo o parcelamento de compras sem o uso de cartão de crédito. Esse meio de pagamento é uma oferta complementar que pode impulsionar a conversão de vendas e aumentar o ticket médio de estabelecimentos comerciais, oferecendo maior poder de compra aos consumidores.
Exemplos de aplicação do BNPL
Para ambos os fluxos é importante que você tenha uma URL de Notificação configurada em sua loja do Pagador, para que possamos informar que a transação teve seu status alterado. Saiba como configurar essa URL na documentação do Post de Notificação.
A Koin é uma empresa de meios de pagamento que oferece a solução Boleto Parcelado. O Boleto Parcelado permite que os compradores realizem pagamentos em lojas virtuais usando a experiência do BNPL.
Para a integração com a Koin, você irá usar os endpoints da API do Pagador, e da API de Consulta de Parcelas.
Sandbox
Base da URL | Descrição |
---|---|
API do Pagador (transacional) | https://apisandbox.braspag.com.br |
API de Consulta de Parcelas | https://paymentinstallmentoptionsapisandbox.braspag.com.br |
Produção
Base da URL | Descrição |
---|---|
API do Pagador (transacional) | https://api.braspag.com.br |
API de Consulta de Parcelas | https://paymentinstallmentoptionsapi.braspag.com.br |
A integração com a Koin consiste em três passos:
Confira os números de CPF disponíveis para os testes de solicitação, para que possa simular alguns tipos de retorno em ambiente sandbox:
CPF | ProviderReturnCode | ProviderReturnMessage |
---|---|---|
354.574.310-10 731.143.850-01 054.920.250-15 555.030.660-30 486.269.590-60 |
200.3 | Aprovado automaticamente |
898.914.640-24 451.625.980-03 420.003.140-07 192.236.580-71 983.579.360-32 |
304.1 | Reprovado automaticamente |
546.723.960-02 133.588.530-71 943.303.990-40 121.190.460-18 585.587.770-12 |
312.23 | Análise Manual |
A Koin necessita de algumas informações sobre o comprador para consultar as parcelas disponíveis e finalizar o pedido. Para isso, você deverá incluir em seu checkout os Termos e Condições da Koin e o script para obtenção do FraudID
.
A sua página de checkout precisa exibir ou oferecer acesso aos Termos e Condições da Koin para que o comprador fique ciente sobre como funciona essa política de crédito.
O link para o Termos de Condições da Koin é: https://www.koin.com.br/termos-e-condicoes/.
Você deve configurar o seu checkout de forma que a transação só possa prosseguir após o aceite dos termos.
O FraudID
é a identificação digital do dispositivo do comprador, e é composto por uma série de dados coletados na página de checkout. O FraudID
deverá ser informado na requisição de autorização à API do Pagador no campo FingerprintId
(passo 3). Cada requisição de autorização deverá conter um FraudID
diferente.
A Koin usa as informações contidas no FraudID
para analisar o comprador e oferecer a melhor condição de parcelamento.
Para gerar o FraudID
, você deve inserir um script em JavaScript com a URL da Koin:
Acesse o nosso GitHub para visualizar e copiar o modelo JavaScript.
Para que você possa exibir a opção de parcelamento em seu checkout é necessário que a sua aplicação faça uma requisição à API de Consulta de Parcelas.
A resposta da requisição apresentará as opções de parcelamento, identificadas pelo campo Options.Id
. Cada opção irá apresentar o número de parcelas disponíveis, o valor de cada parcela, a data de vencimento da primeira parcela e taxas.
Como o comprador vai visualizar as parcelas?
Uma opção é inserir em seu checkout um botão para exibição de parcelas, como “Consultar parcelas”.
Caso qualquer um dos itens da requisição seja alterado pelo comprador será necessário realizar uma nova consulta.
{
"Provider": "koin",
"Customer": {
"Email": "teste@braspag.com.br",
"IpAddress": "127.0.0.1",
"Identity": "05492025015"
},
"UseDate": "2022-04-07",
"Amount": 10010,
"AcceptedTerms": true
}
Propriedade | Descrição | Tipo | Tamanho | Obrigatório |
---|---|---|---|---|
MerchantId |
Identificador da loja na Braspag. | Guid | 36 | Sim |
MerchantKey |
Chave pública para autenticação dupla na Braspag. | Texto | 40 | Sim |
Payment.Provider |
Nome da provedora do meio de pagamento. | Texto | 15 | Sim |
Customer.Email |
Email do comprador. | Texto | 255 | Sim |
Customer.IpAddress |
Endereço de IP do comprador. Suporte a IPv4 | Texto | 45 | Sim |
Customer.Identity |
Número do CPF ou CNPJ do cliente. | Texto | 14 | Sim |
UseDate |
Previsão de entrega do produto ou de utilização do serviço. Formato AAAA-MM-DD. | Data | 10 | Sim |
Amount |
Valor do pedido, em centavos. | Número | 15 | Sim |
AcceptedTerms |
Indica se houve o aceite dos termos de uso da Koin. | Booleano | - | Sim |
{
"ReturnCode": "12200",
"ReturnMessage": "Autorizado",
"Status": 1,
"Installments": 2,
"Options": [
{
"Id": "Q5a9i65h7pA34TdAoVcX1lZYvWXZghXvst/UpfjnankRA+drdpRTzDdzIrUKiEyN",
"Installment": 1,
"Description": "À Vista",
"OriginalAmount": 10010,
"TotalAmount": 10010,
"FirstExpirationDate": "2022-05-11"
},
{
"Id": "CqEQjSgSB0w34TdAoVcX1lZYvWXZghXvst/UpfjnankRA+drdpRTzDdzIrUKiEyN",
"Installment": 2,
"Description": "2 x de R$ 51,40",
"OriginalAmount": 10010,
"TotalAmount": 10280,
"FirstExpirationDate": "2022-05-11",
"InstallmentAmount": 5140,
"Rates": 3.89,
"Iof": 0.53,
"DailyIof": 0.0082,
"AdditionalIof": 0.38,
"Cet": 70.07
}
]
}
Propriedade | Descrição | Tipo | Tamanho | Formato |
---|---|---|---|---|
ReturnCode |
Código retornado pelo provedor do meio de pagamento. | Texto | 32 | Ex.: “12200” |
ReturnMessage |
Mensagem retornada pelo provedor do meio de pagamento. | Texto | 512 | “Autorizado” |
Status |
Status da transação. | Byte | 02 | Ex.: 1 |
Installments |
Quantidade máxima de parcelas possíveis para o estabelecimento. | Número | 2 | Ex.: 12 |
Options.Id |
Código que informará a opção de parcelamento no próximo passo, de geração do pedido. Cada opção de parcelamento retornada terá um código diferente e único. | Texto | 65 | - |
Options.Installment |
Quantidade de Parcelas da opção. | Número | 2 | Ex.: 12 |
Options.Description |
Descrição por extenso da quantidade de parcelas e do valor de cada uma delas. | Texto | 25 | 2 x de R$ 51,35 |
Options.OriginalAmount |
Valor original do pedido. | Número | 10 | 10010 |
Options.TotalAmount |
Valor total do pedido. | Número | 10 | 10280 |
Options.FirstExpirationDate |
Data de expiração do primeiro pagamento. | Data | 10 | AAAA-MM-DD |
Options.InstallmentAmount |
Valor de cada parcela. | Número | 10 | 5140 |
Options.Rates |
Valor das taxas cobradas pela operação. | Texto | 10 | 3.89 |
Options.Iof |
Imposto sobre Operações Financeiras. | Texto | 10 | 0.53 |
Options.DailyIof |
Valor do IOF diário. | Texto | 10 | 0.0082 |
Options.AdditionalIof |
Valor adicional do IOF. | Texto | 10 | 0.38 |
Options.Cet |
Custo Efetivo Total, isto é, encargos, tributos, taxas e despesas dessa transação. | Texto | 10 | 70.07 |
Após o comprador escolher a opção de parcelamento, envie o valor do
Options.Id
correspondente à opção escolhida na requisição de autorização no campoInstallmentOptionId
, conforme detalharemos no passo 3.
Após o aceite dos Termos e Condições, da obtenção do FraudId
e da consulta das opções de parcelamento, chegou a hora de submeter os dados da transação para a criação da transação em si e para a solicitação de autorização da Koin.
Para essa autorização, o Payment.Type
será “BuyNowPayLater” e o Payment.Provider
será “Koin”.
Nessa etapa, você deverá enviar dois valores obtidos no passos anteriores:
FraudID
obtido no passo 1 no campo FingerprintId
;OptionsId
(obtido no passo 2) escolhido pelo comprador no campo InstallmentOptionId
.
Aplicando multas e descontos
Você pode informar valores de sua escolha para multas e descontos em campos opcionais. Você pode informar valores de sua escolha para multas e descontos em campos opcionais.
Multas: envie o campoPayment.FineRate
para multa sobre o valor da transação ou envie o campoPayment.FineAmount
para multa sobre o valor total. Atenção: você deve enviar apenas um dos campos referentes à multa.
Descontos:envie o campoPayment.DiscountRate
para desconto sobre o valor da transação ou envie o campoPayment.DiscountAmount
para desconto sobre o valor total. Atenção: você deve enviar apenas um dos campos referentes ao desconto.
Para submeter à autorização, envie a requisição da transação para a API do Pagador.
{
"MerchantOrderId": "401904531",
"Customer": {
"Name": "Cliente Teste",
"Identity": "054.920.250-15",
"IdentityType": "CPF",
"Email": "comprador@braspag.com.br",
"PhoneAreaCode": "11",
"Phone": "5521976781114",
"Birthdate": "1991-01-02",
"IpAddress": "127.0.0.1",
"Address": {
"Street": "Alameda Xingu",
"Number": "512",
"Complement": "27 andar",
"ZipCode": "12345987",
"City": "São Paulo",
"State": "SP",
"Country": "BR",
"District": "Alphaville",
"AddressType": "Business"
},
"DeliveryAddress": {
"Street": "Alameda Xingu",
"Number": "512",
"Complement": "27 andar",
"ZipCode": "12345987",
"City": "São Paulo",
"State": "SP",
"Country": "BR",
"District": "Alphaville",
"AddressType": "Business"
},
},
"Payment": {
"Type": "BuyNowPayLater",
"Amount": 10280,
"Provider": "Koin",
"FingerprintId": "9a6ce08d275bj4106396f2aa982fc2158254k",
"InstallmentOptionId": "CqEQjSgSB0w34TdAoVcX1lZYvWXZghXvst/UpfjnankRA+drdpRTzDdzIrUKiEyN",
"FineRate": 0,
"FineAmount": 0,
"DiscountRate": 0,
"DiscountAmount": 0,
"MerchantIdentification": "12.456.789/0001-01",
"MerchantCorporateName": "BP Tests",
"Shipping": {
"Amount": 1098,
"DeliveryEstimateDate": "2022-11-04"
},
"Cart": [
{
"Reference": "1234568",
"Description": "Tenis Preto Tamanho 42",
"Quantity": 1,
"UnitPrice": 9128
}
]
}
}
Propriedade | Descrição | Tipo | Tamanho | Obrigatório |
---|---|---|---|---|
MerchantId |
Identificador da loja na Braspag. | Guid | 36 | Sim |
MerchantKey |
Chave pública para autenticação dupla na Braspag. | Texto | 40 | Sim |
Payment.Type |
Nome do tipo do meio de pagamento. | Texto | 15 | Sim |
Payment.Amount |
Valor total da transação (Options.TotalAmount do passo anterior) para ser submentido para a aprovação (em centavos). |
Número | 10 | Sim |
Payment.Provider |
Nome da provedora do meio de pagamento. | Texto | 15 | Sim |
Payment.MerchantIdentification |
CNPJ da loja. | Texto | 18 | Não |
Payment.MerchantCorporateName |
Nome fantasia da loja. | Texto | 50 | Não |
Payment.FingerprintId |
‘FraudID’ obtido junto à Koin via JavaScript (Passo 1 desse manual). | Texto | 255 | Sim |
Payment.InstallmentOptionId |
‘Options.ID’ escolhido como o plano a ser autorizado obtido na consulta (Passo 2 desse manual) | Texto | 255 | Sim |
Payment.FineRate |
Valor da multa após o vencimento, em percentual, com base no valor da transação(%)Não envie junto com Payment.FineAmount . |
Número | 2 | Não |
Payment.FineAmount |
Valor da multa após o vencimento sobre o valor total. Não envie junto com Payment.FineRate . |
Número | 10 | Não |
Payment.DiscountRate |
Valor do desconto, em percentual, com base no valor da transação(%). Não envie junto com Payment.DiscountAmount . |
Número | 2 | Não |
Payment.DiscountAmount |
Valor do desconto sobre o valor total. Não envie junto com Payment.DiscountRate . |
Número | 10 | Não |
Shipping.Amount |
Valor estimado para a entrega (em centavos). | Número | 10 | Sim |
Shipping.DeliveryEstimateDate |
Data estimado para a entrega. Formato: YYYY-MM-DD | Data | 10 | Sim |
Cart.Reference |
SKU do produto ou serviço. | Texto | 50 | Sim |
Cart.Description |
Descrição do produto ou serviço. | Texto | 50 | Sim |
Cart.Quantity |
Quantidade comprada daquele produto. | Número | 100 | Sim |
Cart.UnitPrice |
Preço unitário do produto (em centavos). | Número | 100 | Sim |
{
"MerchantOrderId": "401904531",
"Customer": {
"Name": "Cliente Teste",
"Identity": "054.920.250-15",
"IdentityType": "CPF",
"Email": "comprador@braspag.com.br",
"PhoneAreaCode": "11",
"Phone": "5521976781114",
"Birthdate": "1991-01-02",
"IpAddress": "127.0.0.1",
"Address": {
"Street": "Alameda Xingu",
"Number": "512",
"Complement": "27 andar",
"ZipCode": "12345987",
"City": "São Paulo",
"State": "SP",
"Country": "BR",
"District": "Alphaville",
"AddressType": "Business"
},
"DeliveryAddress": {
"Street": "Alameda Xingu",
"Number": "512",
"Complement": "27 andar",
"ZipCode": "12345987",
"City": "São Paulo",
"State": "SP",
"Country": "BR",
"District": "Alphaville",
"AddressType": "Business"
},
},
"Payment": {
"FingerprintId": "9a6ce08d275bj4106396f2aa982fc2158254k",
"InstallmentOptionId": "CqEQjSgSB0w34TdAoVcX1lZYvWXZghXvst/UpfjnankRA+drdpRTzDdzIrUKiEyN",
"AcquirerTransactionId": "977162",
"Shipping": {
"Amount": 1098,
"DeliveryEstimateDate": "2022-11-04"
},
"Cart": [
{
"Reference": "1234568",
"Description": "Tenis Preto Tamanho 42",
"Quantity": 1,
"UnitPrice": 9128
}
],
"PaymentId": "3c814db0-a10e-4363-ab2d-91df83c57304",
"Type": "BuyNowPayLater",
"Amount": 10280,
"ReceivedDate": "2022-05-11 12:03:06",
"Currency": "BRL",
"Country": "BRA",
"Provider": "Koin",
"ReasonCode": 0,
"ReasonMessage": "Successful",
"Status": 2,
"ProviderReturnCode": "200",
"ProviderReturnMessage": "Sua compra foi APROVADA! Obrigado por comprar com a KOIN.",
"Links": [
{
"Method": "GET",
"Rel": "self",
"Href": "https://apiquerysandbox.braspag.com.br/v2/sales/3c814db0-a10e-4363-ab2d-91df83c57304"
}
]
}
},
Propriedade | Descrição | Tipo | Tamanho | Formato |
---|---|---|---|---|
PaymentId |
Campo identificador do pedido. | GUID | 36 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx |
ReturnCode |
Código retornado pelo provedor do meio de pagamento. | Texto | 32 | Ex.: “200” |
ReturnMessage |
Mensagem retornada pelo provedor do meio de pagamento. | Texto | 512 | “Sua compra foi APROVADA! Obrigado por comprar com a KOIN.” |
Status |
Status da transação. | Byte | 02 | Ex.: 2 |
Visando aumentar a segurança e a conversão das aprovações de suas transações, a Koin disponibiliza formas de enviar mais detalhes da transação que você está submetendo para autorização. São diversas informações disponíveis sobre os produtos vendidos e/ou serviços prestados, como educação, aluguel de carros e hospedagem. Para cada um dos segmentos é necessário incluir as informações inerentes àquela transação.
Utilize os nós concatenávies ProductTypes
e AdditionalData
para indicar os segmentos que irá submeter e que estão envolvidos nesse pedido de autorização.
{
"MerchantOrderId": "2017166516111329",
"Customer": {
"Name": "Cliente Teste",
"Identity": "054.920.250-15",
"IdentityType": "CPF",
"Email": "milton@braspag.com.br",
"PhoneAreaCode": "11",
"Phone": "5521976781114",
"Birthdate": "1991-01-02",
"IpAddress": "127.0.0.1",
"Address": {
"Street": "Alameda Xingu",
"Number": "512",
"Complement": "27 andar",
"ZipCode": "12345987",
"City": "São Paulo",
"State": "SP",
"Country": "BR",
"District": "Alphaville",
"AddressType": "Business"
},
"DeliveryAddress": {
"Street": "Alameda Xingu",
"Number": "512",
"Complement": "27 andar",
"ZipCode": "12345987",
"City": "São Paulo",
"State": "SP",
"Country": "BR",
"District": "Alphaville",
"AddressType": "Business"
},
},
"Payment": {
"Type": "BuyNowPayLater",
"Amount": 10000,
"Provider": "Koin",
"FingerprintId": "9a6ce08d275bj4106396f2aa982fc2158254k",
"InstallmentOptionId": "CqEQjSgSB0w34TdAoVcX1lZYvWXZghXvst/UpfjnankRA+drdpRTzDdzIrUKiEyN",
"ProductTypes": [
"Segmento1",
"Segmento2",
"Segmento3"
],
"OfferExpirationDate": "2022-11-07 12:00:00",
"ShippingData": {
"Amount": 10000,
"DeliveryEstimateDate": "2020-11-04"
},
"Cart": [
{
"Reference": "1234568",
"Description": "Tenis Preto Tamanho 42",
"Quantity": 1,
"UnitPrice": 9128
}
],
"AdditionalData": {
"Segmento1": [...],
"Segmento2": [...],
"Segmento3": [...]
}
}
}
ProductTypes disponíveis atualmente:
Nome do Segmento | Valor Esperado |
---|---|
Dados do usuário | “UserAccountData” * |
Educação | Class |
Aluguel de Carros | CarRental |
Passagens aéreas | Airline |
Hospedagem | Lodging |
Serviços no Destino | DestinationService |
Seguro de telefone | CellphoneInsurance |
Débitos Veiculares | CarPenaltyFee |
"UserAccountData": {
"Name": "Nome Usuário Logado",
"Email": "account_user@koin.com.br",
"Document": {
"Key": "CPF",
"Value": "36264448800"
},
"Phone": {
"AreaCode": 11,
"Number": "98588-8888",
"PhoneType": 4
},
"Address": {
"Country": "BRA",
"State": "SP",
"City": "São Paulo",
"District": "Jd, Matarazzo",
"ZipCode": "03813310",
"Street": "Rua, Japichaua",
"Number": "100",
"Complement": "Casa casa",
"AddressType": 1
}
},
Propriedade | Descrição | Tipo | Tamanho | Obrigatório |
---|---|---|---|---|
UserAccountData.Name | Nome do usuário logado na loja. | Texto | 100 | Sim |
UserAccountData.Email | E-mail do usuário logado na loja. | Texto | 300 | Sim |
UserAccountData.Document.Key | Documento do usuário logado. | Texto | 14 | Sim |
UserAccountData.Document.Value | Número do CPF do usuário logado. | Texto | 14 | Sim |
UserAccountData.Phone.AreaCode | Código de área. | Número | - | Sim |
UserAccountData.Phone.Number | Número de telefone. | Texto | 10 | Sim |
UserAccountData.Phone.PhoneType | Tipo de telefone do pagador: 2 = Residencial / 3= Comercial / 4= Celular. | Número | - | Sim |
UserAccountData.Address.ZipCode | CEP do usuário logado. | Texto | 10 | Não |
UserAccountData.Address.Street | Rua do endereço. | Texto | 100 | Não |
UserAccountData.Address.Number | Número do endereço. | Texto | 10 | Não |
UserAccountData.Address.Complement | Complemento do endereço. | Texto | 300 | Não |
UserAccountData.Address.District | Bairro do endereço. | Texto | 50 | Sim |
UserAccountData.Address.City | Cidade do endereço. | Texto | 50 | Não |
UserAccountData.Address.State | Estado do endereço. | Texto | 2 | Não |
UserAccountData.Address.Country | País do endereço. | Texto | 50 | Não |
UserAccountData.Address.AdressType | Tipo do endereço: 1 = Residencial / 2 = Comercial. | Texto | 1 | Não |
"ClassData": {
"ClassDetails": [
{
"ClassName": "Nome do Curso",
"ClassFinanceType": "1",
"ClassSchoolName": "Nome da Escola",
"ClassCourseLoad": "1800",
"ClassSchoolCampus": "Campus Mooca",
"ClassSchoolCampusCity": "Campus Mooca",
"ClassStartDate": "2020-07-27",
"ClassEndDate": "2021-07-27",
"ClassIsPresential": "Y",
"ClassPeriod": "3",
"ClassType": {
"Category": "1",
"SubCategory": "2",
"Segment": "Administração de Empre"
},
"ClassMonthlyFee": "2000.99",
"ClassScholarship": "25"
}
],
"Students": [
{
"StudentName": "Nome Completo do Aluno",
"StudentId": "123456789",
"StudentRegistration": "123456789",
"StudentBondPayer": "1",
"StudentEmail": "caio.moniro@braspag.com.br",
"StudentPhone": "552133665591",
"StudentBirthDate": "1988-07-27",
"StudentDocuments": {
"Key": "CPF",
"Value": "00234638625"
},
"StudentRegisterDate": "1988-07-27",
"StudentAddress": {
"ZipCode": "03813310",
"Country": "BRA",
"State": "SP",
"City": "São Paulo",
"District": "Jd, Matarazzo",
"Street": "Rua, Japichaua",
"Number": "100",
"Complement": "Casa casa"
}
}
]
}
Propriedade | Descrição | Tipo | Tamanho | Obrigatório |
---|---|---|---|---|
ClassData.ClassDetails.ClassName | Nome do Curso. | Texto | 100 | Sim |
ClassData.ClassDetails.ClassFinanceType | ClassData.ClassDetails.ClassFinanceType | Número | 1 | Sim |
ClassData.ClassDetails.ClassSchoolName | Instituição de Ensino. | Texto | 100 | Sim |
ClassData.ClassDetails.ClassCourseLoad | Carga Horária do Curso (em horas). | Número | 20 | Sim |
ClassData.ClassDetails.ClassSchoolCampus | Nome do campus/local do curso. | Texto | 100 | Não |
ClassData.ClassDetails.ClassSchoolCampusCity | Cidade do campus/local do curso. | Texto | 100 | Não |
ClassData.ClassDetails.ClassStartDate | Data de início do curso. | Data (formato: yyyy-MM-dd) | 10 | Sim |
ClassData.ClassDetails.ClassEndDate | Data prevista para finalização do curso. | Data (formato: yyyy-MM-dd) | 10 | Sim |
ClassData.ClassDetails.ClassIsPresential | Aulas são presenciais. | Texto (Y) | 1 | Sim |
ClassData.ClassDetails.ClassPeriod | Período do curso. | Número | 1 | Não |
ClassData.ClassDetails.ClassType.Category | Categoria do curso. | Número | 10 | Sim |
ClassData.ClassDetails.ClassType.SubCategory | Subcategoria do curso. | Número | 10 | Sim |
ClassData.ClassDetails.ClassType.Segment | Segmento do curso. | Número | 100 | Não |
ClassData.ClassDetails.ClassMonthlyFee | Mensalidade do curso. | Decimal (0000.00) | 7 | Não |
ClassData.ClassDetails.ClassScholarship | Porcentagem da bolsa. | Número | 10 | Não |
ClassData.Students.StudentName | Nome do aluno. | Texto | 100 | Sim |
ClassData.Students.StudentId | ID do estudande no MEC. | Texto | 50 | Não |
ClassData.Students.StudentRegistration | RA do aluno (registro na instituição). | Texto | 100 | Sim |
ClassData.Students.StudentBondPayer | Vínculo do aluno com o comprador. | Número | 1 | Sim |
ClassData.Students.StudentEmail | E-mail do aluno. | Texto | 255 | Sim |
ClassData.Students.StudentPhone | Telefone do aluno. | Texto | 15 | Sim |
ClassData.Students.StudentBirthDate | Data de nascimento do aluno. | Data yyyy-MM-dd | 10 | Sim |
ClassData.Students.StudentDocuments.Type | Tipo de documento do aluno. | Texto | 14 | Sim |
ClassData.Students.StudentDocuments.Number | Número do documento do aluno. | Texto | 14 | Sim |
ClassData.Students.StudentRegisterDate | Data da matrícula do aluno. | Data yyyy-MM-dd | 10 | Não |
ClassData.Students.ZipCode | CEP do endereço do aluno. | Texto | 20 | Sim |
ClassData.Students.Country | País do endereço do aluno. | Texto | 20 | Sim |
ClassData.Students.State | Estado do endereço do aluno. | Texto | 2 | Sim |
ClassData.Students.City | Cidade do endereço do aluno. | Texto | 20 | Sim |
ClassData.Students.District | Bairro do endereço do aluno. | Texto | 20 | Sim |
ClassData.Students.Street | Rua do endereço do aluno. | Texto | 20 | Sim |
ClassData.Students.Number | Número da casa do aluno. | Texto | 10 | Sim |
ClassData.Students.Complement | Complemento do endereço do aluno. | Texto | 200 | Não |
"CarRentalData": [
{
"CarRentalCompany": "Unidas",
"CarDescription": "Volkswagen T-Cross Automática",
"CarCategory": "CA",
"PickUpDateTime": "2019-12-25 16:30:00",
"ReturnDateTime": "2019-12-27 16:30:00",
"PickUpLocation": {
"ZipCode": "01310-300",
"Street": "Av. Paulista",
"Number": "2421",
"Complement": "",
"District": "Bela Vista",
"City": "São Paulo",
"State": "SP",
"Country": "Brasil"
},
"ReturnLocation": {
"ZipCode": "01310-300",
"Street": "Av. Paulista",
"Number": "2421",
"Complement": "",
"District": "Bela Vista",
"City": "São Paulo",
"State": "SP",
"Country": "Brasil"
},
"Drivers": [
{
"DriverName": "Nome do Condutor Principal",
"DriverEmail": "email_condutor_principal@dominio.com.br",
"DriverBirthDate": "1988-07-27",
"DriverPhone": "552133665591",
"DriverGender": "2",
"DriverDocuments": {
"Key": "CPF",
"Value": "00132618605"
}
},
{
"DriverName": "Nome do Segundo Condutor ",
"DriverEmail": "email__segundo_condutor@dominio.com.br",
"DriverBirthDate": "1985-02-15",
"DriverPhone": "552133665577",
"DriverGender": "1",
"DriverDocuments": {
"Key": "CPF",
"Value": "00234638625"
}
}
]
}
]
Propriedade | Descrição | Tipo | Tamanho | Obrigatório |
---|---|---|---|---|
CarRentalData.CarRentalCompany | Nome da locadora. | Texto | 300 | Sim |
CarRentalData.CarDescription | Descrição do veículo. | Texto | 300 | Sim |
CarRentalData.CarCategory | Categoria do veículo. | Texto | 50 | Sim |
CarRentalData.PickUpDateTime | Data e hora da retirada do veículo. | Data (yyyy-MM-dd HH:mm:ss) | 10 | Sim |
CarRentalData.ReturnDateTime | Data e hora da devolução do veículo. | Data (yyyy-MM-dd HH:mm:ss) | 10 | Sim |
CarRentalData.PickUpLocation.ZipCode | CEP do endereço de retirada. | Texto | 10 | Não |
CarRentalData.PickUpLocation.Street | Rua do endereço de retirada. | Texto | 100 | Sim |
CarRentalData.PickUpLocation.Number | Número do endereço de retirada. | Texto | 10 | Não |
CarRentalData.PickUpLocation.Complement | Complemento do endereço de retirada. | Texto | 300 | Não |
CarRentalData.PickUpLocation.District | Bairro do endereço de retirada. | Texto | 100 | Não |
CarRentalData.PickUpLocation.City | Cidade do endereço de retirada. | Texto | 100 | Sim |
CarRentalData.PickUpLocation.State | Estado do endereço de retirada. | Texto | 2 | Sim |
CarRentalData.PickUpLocation.Country | País do endereço de retirada. | Texto | 100 | Sim |
CarRentalData.ReturnLocation.ZipCode | CEP do endereço de devolução. | Texto | 10 | Não |
CarRentalData.ReturnLocation.Street | Rua do endereço de devolução. | Texto | 100 | Sim |
CarRentalData.ReturnLocation.Number | Número do endereço de devolução. | Texto | 10 | Não |
CarRentalData.ReturnLocation.Complement | Complemento do endereço de devolução. | Texto | 300 | Não |
CarRentalData.ReturnLocation.District | Bairro do endereço de devolução. | Texto | 100 | Não |
CarRentalData.ReturnLocation.City | Cidade do endereço de devolução. | Texto | 100 | Sim |
CarRentalData.ReturnLocation.State | Estado do endereço de devolução. | Texto | 2 | Sim |
CarRentalData.ReturnLocation.Country | País do endereço de devolução. | Texto | 100 | Sim |
CarRentalData.Drivers.DriverName | Nome do condutor. | Texto | 100 | Sim |
CarRentalData.Drivers.DriverEmail | E-mail do condutor. | Texto | 300 | Sim |
CarRentalData.Drivers.DriverBirthDate | Data de nascimento do condutor. | Data (formato: yyyy-MM-dd) | 10 | Sim |
CarRentalData.Drivers.DriverPhone | Telefone do condutor. | Texto | 15 | Não |
CarRentalData.Drivers.DriverGender | Sexo do condutor (1= Feminino / 2= Masculino). | Número | 1 | Não |
CarRentalData.Drivers.DriverDocuments.Type | Tipo do documento do condutor. | Texto | 14 | Sim |
CarRentalData.Drivers.DriverDocuments.Number | Número do documento do condutor. | Texto | 14 | Sim |
"AirlineData": {
"Legs": [
{
"LegNumber": "1",
"Origin": "CGH",
"Destination": "REC",
"FlightNumber": "1063",
"DepartureTime": "2019-04-06 06:20:00",
"StopOverAllowed": "Y",
"IdClass": "F",
"AirlineRefund": "N"
}
],
"Passengers": [
{
"PassengerName": "Nome Completo do Passageiro 1",
"PassengerEmail": "caio.monteiro@braspag.com.br",
"PassengerPhone": "552133665591",
"PassengerBirthDate": "1958-12-22",
"PassengerRating": "Adult",
"PassengerStatus": "Gold",
"PassengerNationality": "Brasil",
"PassengerDocuments": [
{
"Key": "CPF",
"Value": "396.469.778-80"
}
]
},
{
"PassengerName": "Nome Completo do Passageiro 2",
"PassengerEmail": "caio.monteiro2@braspag.com.br",
"PassengerPhone": "552133665599",
"PassengerBirthDate": "1988-12-22",
"PassengerRating": "Adult",
"PassengerStatus": "Gold",
"PassengerNationality": "Brasil",
"PassengerDocuments": [
{
"Key": "CPF",
"Value": "463.109.140-14"
}
]
}
]
}
Propriedade | Descrição | Tipo | Tamanho | Obrigatório |
---|---|---|---|---|
AirlineData.Legs.LegNumber | Identificação sequencial da leg. | Número | 2 | Sim |
AirlineData.Legs.Origin | Sigla do aeroporto de origem do voo. | Texto | 3 | Sim |
AirlineData.Legs.Destination | Sigla do aeroporto de destino do voo. | Texto | 3 | Sim |
AirlineData.Legs.FlightNumber | Numero do voo. | Texto | 10 | Sim |
AirlineData.Legs.DepartureTime | Data e hora da partida do voo. | Data (yyyy-MM-dd HH:mm:ss) | 10 | Sim |
AirlineData.Legs.IdClass | Id da classe da viagem. | Texto - F / J / Y / W | 1 | Sim |
AirlineData.Legs.StopOverAllowed | Stop Over é permitido? | Texto - Y = Yes / N = No | 1 | Sim |
AirlineData.Legs.AirlineRefund | Indica se passagem é reembolsável. | Texto - Y = Yes / N = No | 1 | Não |
AirlineData.Passengers.PassengerName | Nome do passageiro. | Texto | 100 | Sim |
AirlineData.Passengers.PassengerEmail | E-mail do passageiro. | Texto | 300 | Sim |
AirlineData.Passengers.PassengerPhone | Telefone do passageiro. | Texto | 15 | Sim |
AirlineData.Passengers.PassengerBirthDate | Data de nascimento do passageiro. | Data (yyyy-MM-dd HH:mm:ss) | 10 | Sim |
AirlineData.Passengers.PassengerRating | Classificação do passageiro. | Texto | 10 | Não |
AirlineData.Passengers.PassengerStatus | Classificação do passageiro na companhia aérea. | Texto | 10 | Não |
AirlineData.Passengers.PassengerNationality | Nacionalidade do passageiro. | Texto | 50 | Não |
AirlineData.Passengers.PassengerDocuments.Type | Tipo do documento do passageiro. | Texto | 14 | Sim |
AirlineData.Passengers.PassengerDocuments.Number | Número do documento do passageiro. | Texto | 50 | Sim |
"LodgingData": {
"Lodgings": [
{
"LodgingName": "Pousada Porto Mar",
"CheckInDate": "2019-04-06",
"CheckOutDate": "2019-04-13",
"Duration": "7",
"LodgingRefund": "N",
"LodgingAddress": {
"ZipCode": "01311-300",
"Street": "Av. Paulista",
"Number": "1728",
"Complement": "7 andar",
"District": "Bela Vista",
"City": "São Paulo",
"State": "SP",
"Country": "Brasil",
"Type": "1"
}
},
{
"LodgingName": "Pousada Recanto do Mar",
"CheckInDate": "2019-04-06",
"CheckOutDate": "2019-04-13",
"Duration": "7",
"LodgingRefund": "N",
"LodgingAddress": {
"ZipCode": "01311-300",
"Street": "Av. Paulista",
"Number": "1728",
"Complement": "7 andar",
"District": "Bela Vista",
"City": "São Paulo",
"State": "SP",
"Country": "Brasil",
"Type": "1"
}
}
],
"Lodgers": [
{
"LodgerName": "Nome Completo do Passageiro 1",
"LodgerEmail": "caio.montediro@braspag.com.br",
"LodgerPhone": "552133665591",
"LodgerDocuments": [
{
"Key": "CPF",
"Value": "396.469.778-80"
}
]
}
]
}
Propriedade | Descrição | Tipo | Tamanho | Obrigatório |
---|---|---|---|---|
LodgingData.LodgingName | Nome do hotel/pousada. | Texto | 100 | Sim |
LodgingData.CheckInDate | Data de checkin. | Data (yyyy-MM-dd) | 10 | Sim |
LodgingData.CheckOutDate | Data de checkout. | Data(yyyy-MM-dd) | 10 | Sim |
LodgingData.Duration | Duração da hospedagem (noites). | Texto | 5 | Não |
LodgingData.LodgingRefund | Indica se hospedagem é reembolsável. | Texto - Y = Yes / N = No | 1 | Sim |
LodgingData.Address.ZipCode | CEP do hotel/pousada. | Texto | 10 | Sim |
LodgingData.Address.Street | Rua do hotel/pousada. | Texto | 100 | Sim |
LodgingData.Address.Number | Número do hotel/pousada. | Texto | 10 | Sim |
LodgingData.Address.Complement | Complemento do hotel/pousada. | Texto | 100 | Sim |
LodgingData.Address.District | Bairro do hotel/pousada. | Texto | 100 | Sim |
LodgingData.Address.City | Cidade do hotel/pousada. | Texto | 100 | Sim |
LodgingData.Address.State | Estado do hotel/pousada. | Texto | 2 | Sim |
LodgingData.Address.Country | País do hotel/pousada. | Texto | 100 | Sim |
LodgingData.Lodger.LodgerName | Nome do hóspede. | Texto | 100 | Sim |
LodgingData.Lodger.LodgerEmail | E-mail do hóspede. | Texto | 300 | Não |
LodgingData.Lodger.LodgerPhone | Telefone do hóspede. | Texto | 15 | Não |
LodgingData.Lodger.LodgerDocument.Type | Tipo de documento do hóspede. | Texto | 14 | Sim |
LodgingData.Lodger.LodgerDocument.Number | Número de documento hóspede. | Texto | 14 | Sim |
CarData.CarOwnerDocument.Key | Documento do proprietário do veículo. | Texto | 14 | Sim |
CarData.CarOwnerDocument.Value | Número do documento do proprietário do veículo. | Texto | 14 | Sim |
CarData.CarMake | Marca do veículo. | Texto | 50 | Não |
CarData.CarModel | Modelo do veículo. | Texto | 50 | Não |
CarData.CarModelYear | Ano do modelo do veículo. | Data (formato: YYYY) | 10 | Não |
CarPendencies.PenaltyValue | Somatória do valor das multas. | Número | 12 | Sim |
CarPendencies.LicensingValue | Somatória do valor do licenciamento. | Número | 12 | Sim |
CarPendencies.IpvaValue | Somatória do valor das parcelas do IPVA. | Número | 12 | Sim |
CarPendencies.InsuranceValue | Somatória do valor do seguro. | Número | 12 | Sim |
CarPendencies.PendenciesReferenceYear | Ano de referência de cada pendência. | Data (formato: YYYY) | 4 | Sim |
"DestinationServiceData": {
"DSDetails": [
{
"DSId": "",
"DSType": "1",
"DSName": "P.172 INDISSIMA CLASICA, TRINAGULO DE ORO",
"DSDescription": "DELHIJAIPURAGRA",
"DSDateStart": "2020-07-27",
"DSDateEnd": "2020-09-27",
"DSDuration": "2",
"DSOrigin": "DELHI",
"DSDestination": "AGRA",
"DSPenaltyDate": "2020-07-10",
"DSQtPax": "1"
}
],
"PaxDetails": [
{
"PaxName": "Nome Completo do Passageiro",
"PaxBirthDate": "1988-07-27",
"PaxEmail": "",
"PaxPhone": "",
"PaxDocuments": {
"Key": "CPF",
"Value": "00234638625"
},
"PaxAddress": {
"ZipCode": "03813310",
"Country": "BRA",
"State": "SP",
"City": "São Paulo",
"District": "Jd, Matarazzo",
"Street": "Rua, Japichaua",
"Number": "100",
"Complement": "Casa casa"
}
}
]
}
Propriedade | Descrição | Tipo | Tamanho | Obrigatório |
---|---|---|---|---|
LodgingData.LodgingName | Nome do hotel/pousada. | Texto | 100 | Sim |
LodgingData.CheckInDate | Data do checkin. | Data (YYYY-MM-DD) | 10 | Sim |
LodgingData.CheckOutDate | Data do checkout. | Data (YYYY-MM-DD) | 10 | Sim |
LodgingData.Duration | Duração da hospedagem (noites). | Texto | 5 | Não |
LodgingData.LodgingRefund | Indica se hospedagem é reembolsável. | Texto - Y = Yes / N = No | 1 | Sim |
LodgingData.Address.ZipCode | CEP do hotel/pousada. | Texto | 10 | Sim |
LodgingData.Address.Street | Rua do hotel/pousada. | Texto | 100 | Sim |
LodgingData.Address.Number | Número do hotel/pousada. | Texto | 10 | Sim |
LodgingData.Address.Complement | Complemento do hotel/pousada. | Texto | 100 | Sim |
LodgingData.Address.District | Bairro do hotel/pousada. | Texto | 100 | Sim |
LodgingData.Address.City | Cidade do hotel/pousada. | Texto | 100 | Sim |
LodgingData.Address.State | Estado do hotel/pousada. | Texto | 2 | Sim |
LodgingData.Address.Country | País do hotel/pousada. | Texto | 100 | Sim |
LodgingData.Lodger.LodgerName | Nome do hóspede. | Texto | 100 | Sim |
LodgingData.Lodger.LodgerEmail | E-mail do hóspede. | Texto | 300 | Não |
LodgingData.Lodger.LodgerPhone | Telefone do hóspede. | Texto | 15 | Não |
LodgingData.Lodger.LodgerDocument.Type | Tipo de documento do hóspede. | Texto | 14 | Sim |
LodgingData.Lodger.LodgerDocument.Number | Número de documento hóspede. | Texto | 14 | Sim |
"CarPenaltyFeeData": {
"CarData": {
"CarDocument": "987",
"LicensePlate": "ABC1234",
"Renavam": 12345678910,
"CarOwnerName": "Dono do Carro",
"CarOwnerDocument": {
"Key": "CPF",
"Value": "362.644.488-00"
},
"CarMake": "Toyota",
"CarModel": "Corolla",
"CarModelYear": "2008"
},
"CarPendencies": [
{
"PenaltyValue": 09876,
"LicensingValue": 20,
"IpvaValue": 100,
"InsuranceValue": 1000,
"PendenciesReferenceYear": "2020"
},
{
"PenaltyValue": 50,
"LicensingValue": 50,
"IpvaValue": 50,
"InsuranceValue": 50,
"PendenciesReferenceYear": "2013"
}
]
}
Propriedade | Descrição | Tipo | Tamanho | Obrigatório |
---|---|---|---|---|
CarData.LicensePlate | Placa do carro. | Texto | 15 | Sim |
CarData.Renavam | Número RENAVAM. | Texto | 15 | Sim |
CarData.CarOwnerName | Nome do proprietário do veículo. | Texto | 100 | Sim |
CarData.CarOwnerDocument.Key | Documento do proprietário do veículo. | Texto | 14 | Sim |
CarData.CarOwnerDocument.Value | Número do documento do proprietário do veículo. | Texto | 14 | Sim |
CarData.CarMake | Marca do veículo. | Texto | 50 | Não |
CarData.CarModel | Modelo do veículo. | Texto | 50 | Não |
CarData.CarModelYear | Ano do modelo do veículo. | Data (formato: YYYY) | 4 | Não |
CarPendencies.PenaltyValue | Somatória do valor das multas. | Número | 12 | Sim |
CarPendencies.LicensingValue | Somatória do valor do licenciamento. | Número | 12 | Sim |
CarPendencies.IpvaValue | Somatória do valor das parcelas do IPVA. | Número | 12 | Sim |
CarPendencies.InsuranceValue | Somatória do valor do seguro. | Número | 12 | Sim |
CarPendencies.PendenciesReferenceYear | Ano de referência de cada pendência. | Data (formato: YYYY) | 4 | Sim |
"CellphoneInsuranceData": {
"Imei": "123456789123456",
"DeviceModel": "Iphone XR",
"DeviceCode": "XR125152",
"SubscriptionDate": "2020-10-21",
"InsuranceInstallment": 315.4,
"ExpirationDate": "2021-10-21",
"Type": "Seguro anti furto"
},
Propriedade | Descrição | Tipo | Tamanho | Obrigatório |
---|---|---|---|---|
IMEI | IMEI do celular segurado. | Número | 15 | Sim |
DevideModel | Nome do modelo do celular. | Texto | 80 | Sim |
DeviceCode | Código do celular. | Texto | 80 | Sim |
SubscriptionDate | Data de aquisição do seguro. | Data (YYYY-MM-DD) | 10 | Sim |
InsuranceInstallment | valor da parcela do seguro. | Decimal | 3 | Sim |
ExpirationDate | Data de expiração do seguro. | Data (YYYY-MM-DD) | 10 | Sim |
Type | Tipo do seguro (Ex.: Seguro anti-furto). | Texto | 100 | Sim |
Para facilitar e automatizar eventuais estornos nós disponbilizamos a conexão com a funcionalidade de estorno direto ao comprador via API do Pagador. Para conseguir efetuar estornos parciais ou completos, envie a requisão a seguir:
{
"Reason": "Desistencia da compra",
"AdditionalData": {
"NonCompliance": false,
"ValuePenalty": 15000,
"BankData": {
"BankCode": "001",
"BankName": "Banco do Brasil",
"Agency": "1234-5",
"Account": "678901-2",
"AccountType": "1"
}
}
}
Propriedade | Descrição | Tipo | Tamanho | Obrigatório |
---|---|---|---|---|
Amount | Valor em centavos a ser cancelado/estornado. | Número | 10 | Sim |
Reason | Motivo do cancelamento. | Texto | 255 | Sim |
AdditionalData.ValuePenalty | Valor da multa (este será o novo valor cobrado do cliente). | Texto | 255 | Não |
AdditionalData.NonCompliance | Indica se houve cancelamento por inadimplência (Y = sim /N = não). | Texto | 255 | Sim |
AdditionalData.BankData.BankCode | Código do banco. | Texto | 10 | Sim |
AdditionalData.BankData.BankName | Nome do banco. | Texto | 100 | Sim |
AdditionalData.BankData.Agency | Número de agência bancária. | Texto | 50 | Sim |
AdditionalData.BankData.Account | Número da conta bancária. | Texto | 50 | Sim |
AdditionalData.BankData.AcccountType | Tipo da Conta Bancária. Sendo: 1 = Conta Corrente e 2 = Conta Poupança. | Número | 1 | Sim |
{
"Status": 11,
"ReasonCode": 0,
"ReasonMessage": "Successful",
"ProviderReturnCode": "12100",
"ProviderReturnMessage": "Processamento realizado com sucesso.",
"Links": [
{
"Method": "GET",
"Rel": "self",
"Href": "https://apiquerysandbox.braspag.com.br/v2/sales/97289024-fbd7-438f-a76b-b5b22c7ef29e"
}
]
}
Propriedade | Descrição | Tipo | Tamanho |
---|---|---|---|
Status | Status da transação. | Byte | 2 |
ReasonCode | Código de retorno da operação. | Texto | 32 |
ReasonMessage | Mensagem de retorno da operação. | Texto | 512 |
ProviderReturnCode | Código retornado pela Koin. | Texto | 255 |
ProviderReturnMessage | Mensagem retornada pela Koin. | Texto | 512 |