Como usar a API para criar uma cobrança com descontos?
Criar cobrança com descontos via API
Para criar uma cobrança Pix com descontos, você utiliza o endpoint /api/v1/charge
da API.
Você pode acessar aqui a documentação referente a esse endpoint.
Os campos obrigatórios para criar uma cobrança Pix com descontos são os seguintes:
type
: O tipo de cobrança Pix (Apenas o tipoOVERDUE
é considerado para essa modalidade).customer
: O cliente que será destinado a essa cobrança Pix.daysForDueDate
: O número de dias para vencimento da cobrança.value
: O valor em centavos da cobrança Pix a ser criado.correlationID
: Um identificador único para a cobrança Pix. CorrelationIDdiscountSettings
: O objeto que contém as configurações de descontos da cobrança Pix.
Exemplo
O body da sua requisição será semelhante a este exemplo:
{
"correlationID": "c782e0ac-833d-4a89-9e73-9b60b2b41d3a",
"value": 1600,
"type": "OVERDUE",
"daysForDueDate": 15,
"customer": {
"name": "Jonh Doe",
"taxID": "123.456-789-10",
"address": {
"zipcode": "00000000",
"street": "Rua 00",
"number": "0",
"neighborhood": "Bairro",
"city": "São Paulo",
"state": "SP"
}
},
"discountSettings": {
"modality": "PERCENTAGE_UNTIL_SPECIFIED_DATE",
"discountFixedDate": [
{
"daysActive": 5,
"value": 150
},
{
"daysActive": 15,
"value": 100
}
]
}
}
O modality
dentro do objeto discountSettings
é o tipo de desconto que será aplicado na cobrança. No exemplo acima, o desconto será aplicado em valor fixo até a data especificada. Todavia, você também pode aplicar desconto em porcetagem até a data especificada também.
Atualmente contamos com os seguintes enums para especificar a modalidade do desconto:
FIXED_VALUE_UNTIL_SPECIFIED_DATE
(Valor fixo até a data especificada)PERCENTAGE_UNTIL_SPECIFIED_DATE
(Porcentagem até a data especificada)
O discountFixedDate
é um array de objetos que contém os seguintes campos:
value
: descreve o valor do desconto em centavos.daysActive
: descreve o número de dias que o desconto será aplicado.- Exemplo: Hoje é dia 20/02/2024, eu quero aplicar um desconto de R$ 1,50 caso o meu cliente pague antecipado até o dia 28/02/2024. Então o
daysActive
será de8
e ovalue
será150
.
- Exemplo: Hoje é dia 20/02/2024, eu quero aplicar um desconto de R$ 1,50 caso o meu cliente pague antecipado até o dia 28/02/2024. Então o
Exemplos em código
- Shell + cURL
- JavaScript + Fetch
curl 'https://api.openpix.com.br/api/v1/charge' -X POST \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "user-agent: node-fetch" \
--data-binary '{
"correlationID": "c782e0ac-833d-4a89-9e73-9b60b2b41d3a",
"value": 1600,
"type": "OVERDUE",
"daysForDueDate": 15,
"customer": {
"name": "Jonh Doe",
"taxID": "123.456-789-10",
"address": {
"zipcode": "00000000",
"street": "Rua 00",
"number": "0",
"neighborhood": "Bairro",
"city": "São Paulo",
"state": "SP"
}
},
"discountSettings": {
"modality": "PERCENTAGE_UNTIL_SPECIFIED_DATE",
"discountFixedDate": [
{
"daysActive": 5,
"value": 150
},
{
"daysActive": 15,
"value": 100
}
]
}
}'
fetch('https://api.openpix.com.br/api/v1/charge', {
method: 'POST',
body: JSON.stringify({
correlationID: 'c782e0ac-833d-4a89-9e73-9b60b2b41d3a',
value: 1600,
type: 'OVERDUE',
daysForDueDate: 15,
customer: {
name: 'Jonh Doe',
taxID: '123.456-789-10',
address: {
zipcode: '00000000',
street: 'Rua 00',
number: '0',
neighborhood: 'Bairro',
city: 'São Paulo',
state: 'SP',
},
},
discountSettings: {
modality: 'PERCENTAGE_UNTIL_SPECIFIED_DATE',
discountFixedDate: [
{
daysActive: 5,
value: 150,
},
{
daysActive: 15,
value: 100,
},
],
},
}),
headers: {
Authorization: 'AUTHORIZATION',
'Content-Type': 'application/json',
},
}).then((res) => res.json());