Simulação
Disponibilizamos duas rotas que retornam informações sobre a antecipação sem que seja preciso solicitá-la. O processo de simulação de uma antecipação acontece em duas etapas:
- Consulta de limites: primeiro, é feita uma solicitação GET em :
/recipients/:recipient_id/bulk_anticipations/limits
para obter o valor máximo antecipável. - Simulação: em seguida, é feita uma solicitação em
/recipients/:recipient_id/bulk_anticipations/simulate
para obter previsões precisas sobre o valor a ser recebido, os custos envolvidos na operação, e a data de pagamento.
Caso a sua empresa possua autorização para realizar antecipações de recebíveis, é possível obter previsões precisas sobre o valor a ser recebido, os custos envolvidos na operação e a data de pagamento seguindo os seguintes passos:
1. Consulta de Limites
Para consultar quais os limites liberados para antecipar, utilize a rota /recipients/:recipient_id/bulk_anticipations/limits
.
curl -X GET https://api.pagar.me/1/recipients/re_a123sd18das9d164/bulk_anticipations/limits -H 'content-type: application/json' -d '{
"api_key": "SUA_API_KEY",
"payment_date": "1462999741870",
"timeframe": "start"
}'
Após a requisição, o retorno será algo parecido com:
{
"maximum": {
"amount": 1923458,
"anticipation_fee": 36281,
"fee": 124924
},
"minimum": {
"amount": 9,
"anticipation_fee": 0,
"fee": 1
}
}
2. Simulação
Para iniciar a simulação da antecipação, é necessário fornecer os seguintes parâmetros:
curl -X GET https://api.pagar.me/1/recipients/re_a123sd18das9d164/bulk_anticipations/simulate -H 'content-type: application/json' -d '{
"api_key": "SUA_API_KEY",
"requested_amount": 211803
"payment_date": "1683082800000",
"timeframe": "start"
}'
require 'pagarme'
PagarMe.api_key = 'SUA_API_KEY'
PagarMe::Recipient.default.simulate(
timeframe: :start,
payment_date: Date.new(2016, 12, 25),
requested_amount: 10000 # in cents
)
<?php
require("vendor/autoload.php");
$pagarme = new PagarMe\Client('SUA_CHAVE_DE_API');
$anticipation = $pagarme->bulkAnticipations()->simulate([
'recipient_id' => 're_cjeptpdyg03u3cb6elj68p5ej',
'payment_date' => '1536883200000',
'requested_amount' => '300000',
'timeframe' => 'start'
]);
PagarMeService.DefaultApiKey = "SUA_API_KEYzende";
var recipient = PagarMeService.GetDefaultService().Recipients.Find("re_ci7nhf1ay0007n016wd5t22nl");
var bulkAnticipation = new BulkAnticipation() {
Timeframe = TimeFrame.Start,
PaymentDate = DateTime.Today.AddDays(3),
RequestedAmount = 561599
};
recipient.SimulateAnticipation(bulkAnticipation);
import pagarme from 'pagarme'
pagarme.client.connect({ api_key: 'SUA_API_KEY' })
.then(client => client.bulkAnticipations.simulate({
payment_date: '1462999741870',
timeframe: 'start',
requested_amount: '100000',
}))
import pagarme
pagarme.authentication_key('SUA_API_KEY')
params = {
'payment_date': '1462999741870',
'timeframe': 'start',
'requested_amount': '100000'
}
bulk_anticipation = pagarme.bulk_anticipation.simulate('RECIPIENT_ID', params)
print(bulk_anticipation)
Sendo:
Propriedade | Descrição |
---|---|
timeframe Tipo: String obrigatório | Período de onde os recebíveis irão sair — ou seja, do ínicio ou do fim da sua agenda de recebíveis. Ex: Caso você escolha do começo (start ), o custo é menor, mas há maior impacto no seu fluxo de caixa. Valores possíveis: start , end |
payment_date Tipo: String obrigatório | Data de pagamento da antecipação. Em unixtimestamp e milisegundos. |
requested_amount obrigatório | Valor líquido, em centavos, que você deseja receber na antecipação. |
Após a requisição, o retorno da simulação será algo parecido com:
{
"amount": 219513,
"fee": 5231,
"fraudCoverageFee": 0,
"anticipationAmount": 211803,
"anticipationFee": 2479,
"timeframe": "start",
"paymentDate": "2023-05-03T03:00:00.000Z",
"startIntervalDate": "2023-05-18T03:00:00.000Z",
"endIntervalDate": "2023-06-01T03:00:00.000Z"
}
Atenção
É importante notar que o campo payment_date utiliza unixTimeStamp como valor. Para gerar o unixTimeStamp de uma data, é possível utilizar o console do Google Chrome com o seguinte código em Javascript: new Date("2017-12-25T02:00:00.000Z").getTime() que, neste caso, retorna 1514167200000`
Updated 5 months ago