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/limitspara obter o valor máximo antecipável.
- Simulação: em seguida, é feita uma solicitação em  /recipients/:recipient_id/bulk_anticipations/simulatepara 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 over 1 year ago
