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:

  1. Consulta de limites: primeiro, é feita uma solicitação GET em : /recipients/:recipient_id/bulk_anticipations/limits para obter o valor máximo antecipável.
  2. 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:

PropriedadeDescriçã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`