Simular Antecipação de Recebíveis

Para simular uma antecipação de recebível e conhecer as taxas a serem aplicadas é necessário realizar uma chamada na api Simular Antecipação de Recebíves utilizando o método POST, onde precisa ser preenchido algumas informações relacionadas as releases e bandeiras que serão antecipadas. Os dados necessários estão no quadro "Parâmetros do Body"

Regras de Negócio:

RegraFuncionamento
Janela de OperaçãoAs solicitações de simulação e antecipação devem ser realizadas das 07h às 14h. Requisições fora desta janela serão rejeitadas.
Validade da SimulaçãoTodas as simulações geradas possuem validade diária limite e expiram impreterivelmente às 14h do mesmo dia.
Simulações SimultâneasÉ permitida apenas uma simulação com status Ativa por vez para cada conta. A criação de uma nova simulação cancelará automaticamente a anterior.
Carência de RecebíveisSomente são elegíveis recebíveis cujas datas de pagamento sejam superiores a 5 dias corridos a partir da data da solicitação.
Critério de SeleçãoCaso o montante disponível ultrapasse o valor solicitado, o sistema selecionará a combinação de recebíveis mais próximos do vencimento (respeitando a carência de 5 dias) cujo valor total consolidado seja menor ou igual ao solicitado.
Status da simulaçãoSTART, PROCCESSING, ERROR, SUCCESS, EXPIRED, PAYED, REFUSED.

Mocks de simulação em Sandbox

Para simular os cenários específicos de erro, sucesso e negativa é necessário que seja feita a requisição com os valores abaixo.

 R$ 10.000,00 → 201 Created → Simulação aprovada.
R$ 20.000,00 → 422 Unprocessable Content → Antecipação indisponível para conta.
R$ 30.000,00 → 201 Created → Simulação retornada com valor ajustado para R$ 10.000,00 (máximo permitido).

Caso preencha um valor diferente destes, será retornado valores aleatórios podendo conter zeros → 201 Created → Simulação aprovada.



Fluxo dos Status de Simulação:

  • START: Ao solicitar a simulação no endpoint, este status indica que o sistema recebeu a solicitação e vai começar a verificação e cálculo.
  • PROCCESSING: Quando o sistema iniciar o calculo e verificação de elegibilidade a simulação entrará nesse status antes de enviar a resposta para o endpoint.
  • SUCCESS: A simulação foi calculada e aprovada, sendo retornado no endpoint o descritivo de valores, releases e cálculo da taxa. Apenas 1 simulação pode estar nesse status, caso seja feita uma nova, a atual passará para o status de EXPIRED e não poderá ser efetivada. Caso o cliente não efetive até as 14hrs do mesmo dia, o sistema irá alterar o status da simulação para EXPIRED.
  • PAYED: Quando uma simulação for efetivada ela terá o status alterado de SUCCESS para PAYED, indicando que os valores simulados foram antecipados e depositados na conta do cliente.
  • EXPIRED: A simulação "venceu" antes de virar pagamento. Acontece em duas situações:
    • O cliente recebeu uma simulação aprovada SUCCESS mas não confirmou o pagamento até as 14hrs do mesmo dia.
    • O cliente pediu uma nova simulação enquanto já havia uma em aberto, a antiga é expirada automaticamente pelo sistema para dar lugar à nova (só pode haver uma simulação ativa por vez).
  • REFUSED: O sistema analisou o pedido e recusou devido aos critérios de elegibilidade. Não é uma falha do sistema, é uma negativa legítima.
  • ERROR: Diferente do REFUSED, aqui não foi uma decisão de negócio, foi uma falha técnica durante o processamento (por exemplo, uma instabilidade no sistema no meio do cálculo).

Modelo de requisição:

curl --request POST \
     --url https://sandbox.openfinance.celcoin.dev/baas/v1/cash/companies/numberAccount/simulation-antecipation-receivables \
     --header 'accept: application/json' \
     --header 'content-type: application/json'
  --data '
{
  "value": 1000.00,
  "transactionIds": "774910235"
}

Parâmetros do Body:

CampoDescriçãoTipoObrigatório
valueValor total que se deseja simular para a antecipação.number (float)Obrigatório se transactionIds não for enviado.
transactionIdsId da transação vinculada a release que deseja antecipar.Array Int (32)Obrigatório se value não for enviado; se ambos forem enviados, ele prevalece.
releaseIdId da release vinculada a transação.Array Int (32)Obrigatório se transactionIds ou value não for enviado.

Modelo de retorno:

Sucesso(201):

{
  "version": "1.0.0",
  "status": 201,
  "body": {
    "idRequest": "cba1ecfd-dabc-4cb6-965f-1e194beb0c13",
    "valueSimulation": 15000,
    "allreleases": [
      {
        "idRelease": 1234,
        "idTransaction": 92
      }
    ],
    "totalTaxAntecipations": 450.92,
    "totalValueAntecipations": 14876.33
  }
}

Campos do response:

CampoDescriçãoTipo
idRequestIdentificador da simulação criada.string
valueSimulationValor da simulação solicitado.decimal
transactionsIdsCaso a simulação tenha sido feita utilizando o transactionIds, será retornado o id neste campo.array
totalTaxAntecipationsValor total a ser pago a Celcoin pela efetivação da antecipação.decimal
totalValueAntecipationsValor total do valor aprovado para antecipação.decimal
idReleaseIdentificador da release que a transação pertenceint
idTransactionIdentificador da transação.int
daysQuantidade de dias em que a release seria paga.numerico
taxAntecipationValor total a ser pago a Celcoin pela efetivação da antecipação dessa release.decimal
antecipatedValueValor total antecipado da release.decimal
payDayDia em que a transação da release nasceu para ser paga.Date

Erro status code 404:

{ "version": "1.0.0", "status": 404, "error": { "errorCode": "BSPSAC0405", "message": "Nenhuma transação elegível encontrada para realizar a simulação." } }

Erro status code 422:

{ "version": "1.0.0", "status": 422, "error": { "errorCode": "BSPSAC0422", "message": "Solicitação de simulação fora da janela de execução (7 às 14 horas do dia corrente)." } }



Did this page help you?