Buy Now Pay Later, ou, em tradução livre, “Compre agora, pague depois”, é um método de pagamento digital parcelado semelhante a um crediário digital, para compras online mais comum em e-commerces. Alguns também têm chamado o modelo de parcelamento inteligente.
A grande diferença entre o BNPL e o crediário convencional é a tecnologia por trás deste produto, que permite fazer a análise e a liberação de crédito de forma instantânea e digital, inclusive, utilizando na análise, informações da própria transação como os produtos que estão sendo comprados. Não é mais uma operação física, mas também funciona para transações em estabelecimentos físicos.
Brasileiros estão acostumados a pagar em parcelas, mas a grande maioria da população ainda não é atendida pelos modelos existentes de pagamento além do cartão de crédito. O modelo de Buy Now Pay Later impacta principalmente pessoas que não tem cartão de crédito (como geração Z), pessoas que tem cartão de crédito, mas o limite é baixo e pessoas que não querem, ou preferem não usar, cartão de crédito.
O produto BNPL Background Trust foi desenvolvido para que no momento da jornada de pagamento no modelo de BNPL,
o tomador de decisão para aprovação de crédito ou averiguação de fraude, possa interagir com o nosso serviço e se beneficiar de todo know-how que a Clear Sale pode oferecer.
Através de uma cominicação via HTTP - API REST entregamos scores e outras informações de apoio para que a análise de aprovação possa ser a mais robusta e satisfatória possível.
Queremos entregar um produto que otimize a jornada no modelo BNPL, oferecendo uma forma unificada, segura e ágil de solução.
E que auxilie no crescimento das vendas através deste meio de pagamento
Para isso, entendemos que nossa abordagem traz consigo vários ganhos nesse processo:
Todas as requisições submetidas à nossa API devem conter um token de autenticação gerado através de um usuário e senha
que devem ser fornecidos pela ClearSale. Neste processo, além do token retornamos seu tempo de expiração em segundos
e é necessário que contemple no seu desenvolvimento o gerenciamento da vida útil do token com base nesse tempo de expiração.
Além disso, também aplicamos uma configuração de restrição de IP em nossos serviços
para que somente um escopo conhecido de endereços cadastrados possa ter seu acesso garantido, assim,
em produção, é necessário realizar previamente o cadastros dos IPs. Devido a esta camada de segurança, toda a integração com a nossa API deve ser feita via Backend.
As transações analizadas dentro desse contexto, retornam um conjunto de informações que servem de apoio à averiguação de possível fraude.
Solicita as informações de análise de fraude informando os dados da transação de compra.
POST https://bnpl-backgroundtrust.clear.sale/api/v1/fraud/transactions HTTP/1.1
Content-Type: application/json
Accept:application/json
Authorization: Bearer {Token}
{
"consumer": {
"document": "112.174.320-00",
"dateOfBirth": "2023-06-29T17:30:47.949Z",
"email": "user@example.com",
"phone": "+55 (32) 91234-5678",
"ip": "192.158.1.38",
"deviceId": "string",
"address": {
"zipCode": "12345678",
"street": "Nome da rua",
"number": "1",
"complement": "Casa/Apartamento",
"district": "Meu bairro",
"city": "São Paulo/Rio de Janeiro...",
"state": "MG/SP/RJ ....",
"country": "Brasil"
}
},
"order": {
"price": 50,
"items": [
{
"code": "A34RF-76",
"name": "Meu item....",
"description": "descrição do meu item....",
"price": 50,
"quantity": 3
}
],
"shipping": {
"receiverName": "João da Silva",
"price": 87.5,
"address": {
"zipCode": "12345678",
"street": "Nome da rua",
"number": "1",
"complement": "Casa/Apartamento",
"district": "Meu bairro",
"city": "São Paulo/Rio de Janeiro...",
"state": "MG/SP/RJ ....",
"country": "Brasil"
},
"note": "Realizar a entrega somente depois das 18:00h"
}
},
"merchant": {
"document": "12.345.678/0001-99",
"corporateName": "Vendendor de produtos LTDA.",
"email": "user@example.com",
"phone": "+55 (32) 91234-5678",
"address": {
"zipCode": "12345678",
"street": "Nome da rua",
"number": "1",
"complement": "Casa/Apartamento",
"district": "Meu bairro",
"city": "São Paulo/Rio de Janeiro...",
"state": "MG/SP/RJ ....",
"country": "Brasil"
}
}
}
POST https://bnpl-backgroundtrust-hml.clear.sale/api/v1/fraud/transactions HTTP/1.1
Content-Type: application/json
Accept:application/json
Authorization: Bearer {Token}
{
"consumer": {
"document": "112.174.320-00",
"dateOfBirth": "2023-06-29T17:30:47.949Z",
"email": "user@example.com",
"phone": "+55 (32) 91234-5678",
"ip": "192.158.1.38",
"deviceId": "string",
"address": {
"zipCode": "12345678",
"street": "Nome da rua",
"number": "1",
"complement": "Casa/Apartamento",
"district": "Meu bairro",
"city": "São Paulo/Rio de Janeiro...",
"state": "MG/SP/RJ ....",
"country": "Brasil"
}
},
"order": {
"price": 50,
"items": [
{
"code": "A34RF-76",
"name": "Meu item....",
"description": "descrição do meu item....",
"price": 50,
"quantity": 3
}
],
"shipping": {
"receiverName": "João da Silva",
"price": 87.5,
"address": {
"zipCode": "12345678",
"street": "Nome da rua",
"number": "1",
"complement": "Casa/Apartamento",
"district": "Meu bairro",
"city": "São Paulo/Rio de Janeiro...",
"state": "MG/SP/RJ ....",
"country": "Brasil"
},
"note": "Realizar a entrega somente depois das 18:00h"
}
},
"merchant": {
"document": "12.345.678/0001-99",
"corporateName": "Vendendor de produtos LTDA.",
"email": "user@example.com",
"phone": "+55 (32) 91234-5678",
"address": {
"zipCode": "12345678",
"street": "Nome da rua",
"number": "1",
"complement": "Casa/Apartamento",
"district": "Meu bairro",
"city": "São Paulo/Rio de Janeiro...",
"state": "MG/SP/RJ ....",
"country": "Brasil"
}
}
}
Requisição realizada com sucesso.
HTTP/1.1 200 Created
Content-Type: application/json; charset=utf-8
{
"data": {
"id": "705fc42d-1e43-4d07-b159-331b35b8c03a",
"referenceDate": "2024-05-29T13:06:08.3551704+00:00",
"type": 1,
"document": "12345678999",
"documentType": "CPF",
"areaCode": "32",
"phone": "+55 (32) 912345678",
"verifiedPhone": false,
"sendOption": "",
"address": {
"zipCode": "12345678",
"street": "Johathan Key",
"number": "99",
"complement": "Laborum sunt dolore et assumenda aut et quis.",
"district": "East Robin",
"city": "Yuba City",
"state": "SP",
"country": "",
"physicalDelivery": ""
},
"email": "Freddy33@yahoo.com",
"verifiedEmail": false,
"sessionId": "",
"additionalInformation": {
"transaction": null,
"item": null,
"price": null,
"customerName": null,
"other": null
},
"creationDate": "2024-05-29T13:06:08.355077+00:00",
"results": {
"score": {
"value": 59.79,
"reason": "Initial",
"date": "0001-01-01T00:00:00",
"timeline": ""
},
"validation": {
"smsVerification": false,
"emailVerification": false,
"tokenSms": "",
"tokenEmail": ""
},
"ratings": [
{
"value": 1.0,
"reason": "Initial",
"date": "0001-01-01T00:00:00",
"relatedTo": [
"Email",
"ZipCode"
],
"timeline": ""
},
{
"value": 3.0,
"reason": "Initial",
"date": "0001-01-01T00:00:00",
"relatedTo": [
"Phone",
"ZipCode"
],
"timeline": ""
},
{
"value": 2.0,
"reason": "Initial",
"date": "0001-01-01T00:00:00",
"relatedTo": [
"Document",
"Phone"
],
"timeline": ""
},
],
"insights": [
{
"code": "GER2106",
"description": "O CPF já foi envolvido em fraude pela última vez há mais de 3 anos ",
"type": "CPF",
"category": "Fraude CPF",
"relevance": "Alerta",
"relatedTo": [
"Document"
]
},
{
"code": "GER2152",
"description": "CPF com alta incidência de transações positivas",
"type": "CPF",
"category": "Característica CPF",
"relevance": "Positivo",
"relatedTo": [
"Document"
]
},
{
"code": "GER2117",
"description": "Estado de emissão do CPF: SP",
"type": "CPF",
"category": "Característica CPF",
"relevance": "Neutro",
"relatedTo": [
"Document"
]
},
]
},
"clientIpAddress": "195.17.236.199"
}
}
Existem parâmetros inválidos na requisição.
HTTP/1.1 400 Bad Request
Requisição com token expirado ou inválido.
HTTP/1.1 401 Unauthorized
Content-Type: application/json; charset=utf-8
Unauthorized request
O usuário não tem permissão para acessar o recurso desejado.
HTTP/1.1 403 Forbidden
Content-Type: application/json; charset=utf-8
Forbidden request
Ocorreu algum erro interno durante a criação da requisição.
HTTP/1.1 500 Internal Server Error
Nome | Descrição | Tipo | Tamanho | Obrigatório |
---|---|---|---|---|
Document | Número do CPF do consumidor. | String | [ 11 .. 15 ] | Sim |
DateOfBirth | Data de nascimento do consumidor. | DateTime | Não | |
Endereço de email do consumidor. | String | [ 0 .. 19 ] | Não | |
IP | Número de IP do dispositivo do consumidor. | String | [ 0 .. 30 ] | Não |
DeviceId | Identificador do dispositivo utilizado. | String | [ 0 .. 30 ] | Não |
Address | Endereço residencial do consumidor. | Address | Não |
Nome | Descrição | Tipo | Tamanho | Obrigatório |
---|---|---|---|---|
Price | Valor total do pedido. | Decimal | Não | |
Items | Lista de items do pedido. | Items | Sim | |
Shipping | Informações sobre o envio do pedido. | Shipping | Não |
Nome | Descrição | Tipo | Tamanho | Obrigatório |
---|---|---|---|---|
Document | Número de CNPJ do estabelecimento. | String | [ 14 .. 20 ] | Sim |
CorporateName | Razão social do estabelecimento. | String | 200 | Não |
Endereço de email do estabelecimento. | String | [ 0 .. 19 ] | Não | |
Phone | Número do telefone do estabelecimento no formato +55 (32) 91234-5678 | String | 19 | Não |
Address | Endereço do estabelecimento. | Address | Não |
Nome | Descrição | Tipo | Tamanho | Obrigatório |
---|---|---|---|---|
Code | Código de identificação do item | String | Sim | |
Name | Nome do item. | String | Sim | |
Description | Descrição do item. | String | Não | |
Price | Valor do item. | Decimal | Sim | |
Quantity | Quantidade do item. | Int | Não |
Nome | Descrição | Tipo | Tamanho | Obrigatório |
---|---|---|---|---|
ReceiverName | Nome de uma pessoa que também poderá receber o produto | String | Não | |
Price | Valor do frete. | Decimal | Não | |
Note | Campo para alguma observação relativa a entrega. | String | Não | |
Address | Endereço de entrega. | Address | Sim |
Nome | Descrição | Tipo | Tamanho | Obrigatório |
---|---|---|---|---|
ZipCode | Código postal (Sem pontuação) | String | 8 | Sim |
Street | Nome da rua ou avenida. | String | Não | |
Number | Número da residência. | String | Não | |
Complement | Complemento do endereço. | String | Não | |
District | Nome do bairro, logradouro ou distrito. | String | Não | |
City | Cidade. | String | Não | |
State | Estado. | String | Não | |
Country | País. | String | Não |
Nome | Descrição | Tipo |
---|---|---|
Message | Campo para alguma mensagem de erro ou alerta. | String |
Success | Campo indicando se a requisição ocorreu com sucesso. | Boolean |
Result | Identificador único da transação. | Guid |
As transações analizadas dentro desse contexto, retornam um conjunto de scores que servem de apoio a tomada de decisão na concessão de crédito.
Solicita as informações de análise de concessão de crédito informando os dados da transação de compra.
POST https://bnpl-backgroundtrust.clear.sale/api/v1/credit/transactions HTTP/1.1
Content-Type: application/json
Accept:application/json
Authorization: Bearer {Token}
{
"consumer": {
"document": "112.174.320-00",
"dateOfBirth": "2023-06-29T17:30:47.949Z",
"email": "user@example.com",
"phone": "+55 (32) 91234-5678",
"ip": "192.158.1.38",
"deviceId": "string",
"address": {
"zipCode": "12345678",
"street": "Nome da rua",
"number": "1",
"complement": "Casa/Apartamento",
"district": "Meu bairro",
"city": "São Paulo/Rio de Janeiro...",
"state": "MG/SP/RJ ....",
"country": "Brasil"
}
},
"order": {
"price": 50,
"items": [
{
"code": "A34RF-76",
"name": "Meu item....",
"description": "descrição do meu item....",
"price": 50,
"quantity": 3
}
],
"shipping": {
"receiverName": "João da Silva",
"price": 87.5,
"address": {
"zipCode": "12345678",
"street": "Nome da rua",
"number": "1",
"complement": "Casa/Apartamento",
"district": "Meu bairro",
"city": "São Paulo/Rio de Janeiro...",
"state": "MG/SP/RJ ....",
"country": "Brasil"
},
"note": "Realizar a entrega somente depois das 18:00h"
}
},
"merchant": {
"document": "12.345.678/0001-99",
"corporateName": "Vendendor de produtos LTDA.",
"email": "user@example.com",
"phone": "+55 (32) 91234-5678",
"address": {
"zipCode": "12345678",
"street": "Nome da rua",
"number": "1",
"complement": "Casa/Apartamento",
"district": "Meu bairro",
"city": "São Paulo/Rio de Janeiro...",
"state": "MG/SP/RJ ....",
"country": "Brasil"
}
}
}
POST https://bnpl-backgroundtrust-hml.clear.sale/api/v1/credit/transactions HTTP/1.1
Content-Type: application/json
Accept:application/json
Authorization: Bearer {Token}
{
"consumer": {
"document": "112.174.320-00",
"dateOfBirth": "2023-06-29T17:30:47.949Z",
"email": "user@example.com",
"phone": "+55 (32) 91234-5678",
"ip": "192.158.1.38",
"deviceId": "string",
"address": {
"zipCode": "12345678",
"street": "Nome da rua",
"number": "1",
"complement": "Casa/Apartamento",
"district": "Meu bairro",
"city": "São Paulo/Rio de Janeiro...",
"state": "MG/SP/RJ ....",
"country": "Brasil"
}
},
"order": {
"price": 50,
"items": [
{
"code": "A34RF-76",
"name": "Meu item....",
"description": "descrição do meu item....",
"price": 50,
"quantity": 3
}
],
"shipping": {
"receiverName": "João da Silva",
"price": 87.5,
"address": {
"zipCode": "12345678",
"street": "Nome da rua",
"number": "1",
"complement": "Casa/Apartamento",
"district": "Meu bairro",
"city": "São Paulo/Rio de Janeiro...",
"state": "MG/SP/RJ ....",
"country": "Brasil"
},
"note": "Realizar a entrega somente depois das 18:00h"
}
},
"merchant": {
"document": "12.345.678/0001-99",
"corporateName": "Vendendor de produtos LTDA.",
"email": "user@example.com",
"phone": "+55 (32) 91234-5678",
"address": {
"zipCode": "12345678",
"street": "Nome da rua",
"number": "1",
"complement": "Casa/Apartamento",
"district": "Meu bairro",
"city": "São Paulo/Rio de Janeiro...",
"state": "MG/SP/RJ ....",
"country": "Brasil"
}
}
}
A transação foi criada com sucesso.
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"message": "",
"success": true,
"result": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"date": "2023-06-29T19:16:46.431Z",
"document": "12345678900",
"score": 500,
"digital": true,
"rank": "g",
"varietyIndex": 100,
"behaviourIndex": 200,
"profileIndex": 300,
"statusIndex": 400,
"postalIndex": 500,
"rapportIndex": 600
}
}
Existem parâmetros inválidos na requisição.
HTTP/1.1 400 Bad Request
Content-Type: application/json; charset=utf-8
{
"message": "The inputs supplied to the API are invalid",
"success": false,
"result": [
"Document is required",
"Document must be between 11 and 15 characters"
]
}
Requisição com token expirado ou inválido.
HTTP/1.1 401 Unauthorized
Content-Type: application/json; charset=utf-8
Unauthorized request
O usuário não tem permissão para acessar o recurso desejado.
HTTP/1.1 403 Forbidden
Content-Type: application/json; charset=utf-8
Forbidden request
Ocorreu algum erro interno durante a criação da requisição.
HTTP/1.1 500 Internal Server Error
Content-Type: application/json; charset=utf-8
{
"message": "Mensagem de erro",
"success": false,
"result": ""
}
Nome | Descrição | Tipo | Tamanho | Obrigatório |
---|---|---|---|---|
Document | Número do CPF do consumidor. | String | [ 11 .. 15 ] | Sim |
DateOfBirth | Data de nascimento do consumidor. | DateTime | Não | |
Endereço de email do consumidor. | String | [ 0 .. 19 ] | Não | |
IP | Número de IP do dispositivo do consumidor. | String | [ 0 .. 30 ] | Não |
DeviceId | Identificador do dispositivo utilizado. | String | [ 0 .. 30 ] | Não |
Address | Endereço residencial do consumidor. | Address | Não |
Nome | Descrição | Tipo | Tamanho | Obrigatório |
---|---|---|---|---|
Price | Valor total do pedido. | Decimal | Não | |
Items | Lista de items do pedido. | Items | Sim | |
Shipping | Informações sobre o envio do pedido. | Shipping | Não |
Nome | Descrição | Tipo | Tamanho | Obrigatório |
---|---|---|---|---|
Document | Número de CNPJ do estabelecimento. | String | [ 14 .. 20 ] | Sim |
CorporateName | Razão social do estabelecimento. | String | 200 | Não |
Endereço de email do estabelecimento. | String | [ 0 .. 19 ] | Não | |
Phone | Número do telefone do estabelecimento no formato +55 (32) 91234-5678 | String | 19 | Não |
Address | Endereço do estabelecimento. | Address | Não |
Nome | Descrição | Tipo | Tamanho | Obrigatório |
---|---|---|---|---|
Code | Código de identificação do item | String | Sim | |
Name | Nome do item. | String | Sim | |
Description | Descrição do item. | String | Não | |
Price | Valor do item. | Decimal | Sim | |
Quantity | Quantidade do item. | Int | Não |
Nome | Descrição | Tipo | Tamanho | Obrigatório |
---|---|---|---|---|
ReceiverName | Nome de uma pessoa que também poderá receber o produto | String | Não | |
Price | Valor do frete. | Decimal | Não | |
Note | Campo para alguma observação relativa a entrega. | String | Não | |
Address | Endereço de entrega. | Address | Sim |
Nome | Descrição | Tipo | Tamanho | Obrigatório |
---|---|---|---|---|
ZipCode | Código postal (Sem pontuação) | String | 8 | Sim |
Street | Nome da rua ou avenida. | String | Não | |
Number | Número da residência. | String | Não | |
Complement | Complemento do endereço. | String | Não | |
District | Nome do bairro, logradouro ou distrito. | String | Não | |
City | Cidade. | String | Não | |
State | Estado. | String | Não | |
Country | País. | String | Não |
Nome | Descrição | Tipo |
---|---|---|
Document | Número do CPF do consumidor. | String |
Score | Pontuação relacionada ao número do documento. | Int |
Digital | Parâmetro de classificação que indica se o cliente tem ou não presença digital. | Boolean |
Rank | Total de compras, tipos de cartões usados e CEPs relacionados ao cliente | String |
VarietyIndex | Qualidade e variedade do que o cliente compra. | Int |
BehaviourIndex | Formas de pagamento utilizadas e frequência de compra do cliente. | Int |
RapportIndex | Scores dos CPF relacionados ao cliente. | Int |
ProfileIndex | Tipo de endereço, tipo de device, categoria do cartão do cliente. | Int |
StatusIndex | Características fixas como data e local de nascimento do cliente. | Int |
PostalIndex | Valor e frequência de compras nos CEPs relacionados ao cliente. | Int |
O Ambiente de homologação deve ser utilizado somente para fims de desenvolvimento, pois o mesmo pode apresentar alguma lentidão, e por restringir as transações a determinados números de CPF.
Todas as requisições submetidas à nossa API devem conter um token de autenticação gerado através de um usuário e senha que devem ser fornecidos pela ClearSale. Neste processo, além do token retornamos seu tempo de expiração em segundos e é necessário que contemple no seu desenvolvimento o gerenciamento da vida útil do token com base nesse tempo de expiração.
Aplicamos uma configuração de restrição de IP em nossos serviços para que somente um escopo conhecido de endereços cadastrados possa ter seu acesso garantido, assim, em produção, é necessário realizar previamente o cadastros dos IPs.
Para realizar testes e validações por faixa de score principal, no contexto de crédito utilize os respectivos CPF:
Para realizar testes e validações por faixa de score principal, no contexto de fraude utilize os respectivos CPF:
Em caso de dúvidas ou problemas técnicos, fale com a gente através do e-mail suporte.bnpl@clear.sale