Para garantir a transparência e a facilidade no consumo de dados em larga escala, foi criado o módulo de conciliação financeira, um conjunto de APIs que tem como objetivo mostrar os valores que compõem o faturamento e liquidação de um parceiro. Neste material vamos orientar como utilizar esse módulo de forma eficiente.
Com o conjunto de endpoints da API de Financial, é possível automatizar o processo de conciliação do iFood na sua empresa, evitando assim erros operacionais e garantindo a clareza necessária na composição dos lançamentos financeiros que compõem o repasse, gerando mais valor ao seu negócio.
São os pedidos concluídos que passaram pelo aplicativo do iFood, independente da forma de pagamento utilizada pelo consumidor, se foi pago online ou off line, cada venda possui características individuais que junto com os dados do contrato, o iFood utiliza para faturar e compor o valor a pagar ou a receber do parceiro, esses dados estão na API de Sales.
São todos os registros ocorridos, vinculados ou não à venda, que impactam o repasse do parceiro, podemos citar como exemplos, o cancelamento de um item após o pedido ter sido entregue (concluído), cobrança de saldo pendente, desconto de pedidos cancelados e pagos com VA/VR, contestações acatadas pelo iFood, entre outras opções, estes exemplos estão nas APIs de Sales Adjustments, Occurrences, Charge Cancellations e Cancellations.
São registros detalhados de transações/operações, vinculadas ao parceiro, que possui data, valor e natureza de operação, que impactam de forma direta e/ou indireta a apuração financeira do parceiro, composto por vendas e ajustes, além das APIs de Maintenance Fees e Income Taxes.
O iFood realiza o fechamento financeiro do repasse do parceiro de forma semanal (segunda à domingo), todos os lançamentos ocorridos neste período, são apurados na segunda-feira subsequente e após apuração, se houver valor a repassar ao parceiro, é agendado o pagamento mediante o plano de repasse contratado, como por exemplo D30 (30 dias), caso o saldo fique negativo, o iFood pode gerar um boleto de cobrança ao parceiro ou carregar esse valor para o próximo repasse, lembrando que o iFood atualmente realiza os pagamentos nas quartas-feiras.
Identificador da entidade que acolheu o pagamento do consumidor, referente a determinada operação realizada, podendo ser IFOOD ou MERCHANT, como exemplo:
Composição dos valores dos lançamentos financeiros, podendo ser débitos e/ou créditos, referentes a um intervalo de tempo, para identificação destes valores a receber ou a pagar para o iFood, deve-se utilizar como chave de agrupamento o campo e filtro “periodid”, identificador único que referencia o conjunto de lançamentos que compuseram o repasse.
A conciliação é feita a partir de um conjunto de recursos sendo eles:
/{merchantId}/sales /{merchantId}/salesAdjustments /{merchantId}/occurrences /{merchantId}/chargeCancellations /{merchantId}/cancellations /{merchantId}/maintenanceFees /{merchantId}/salesBenefits /{merchantId}/adjustmentsBenefits /{merchantId}/incomeTaxes
Esse conjunto de API leva aos totalizadores que são informados nas API's /{merchantId}/period, /{merchantId}/receivableRecords e /{merchantId}/payments
Atualização diária dos dados A atualização de todas APIs, com exceção da API de /payments, ocorrerá diariamente e os dados ficarão disponíveis às 18h.
Period ID e Expected Payment Date Os períodos (nome dado ao conjunto de lançamentos que compõe o repasse), serão fechados toda quarta-feira, então os campos periodId e expectedPaymentDate só ficarão disponíveis nas APIs a partir deste dia. Importante ressaltar que as informações atualizadas na quarta, serão referentes à semana anterior (seg-dom). Enquanto não existir o periodId, os únicos filtros possíveis serão por range de datas
O Endpoint /{merchantId}/period, retorna informações dos “ids” que o parceiro possui em um determinado mês, esses “ids” são os identificadores que agrupam um conjunto de lançamentos que compõe o repasse do parceiro e que devem ser utilizados nas requisições dos demais endpoints a fim de entender qual o conjunto de dados que impactou um determinado repasse. Vale lembrar, que os periods podem estar com o status ABERTO ou FECHADO, quando o mesmo encontra-se com o status ABERTO, quer dizer que o período ainda não foi apurado, podendo sofrer alterações de inclusão ou remoção de lançamentos que impactam o repasse, podemos citar como exemplo o aceite do iFood de uma contestação que estava em análise, somente após aprovar a contestação, ela vai entrar como um lançamento no período que encontra-se em aberto do parceiro.
O Endpoint /{merchantId}/payments, retorna informações sobre o repasse do parceiro realizado pelo iFood. O valor total se dará pela somatória dos valores de todas as API's, sendo eles valores a receber ou a pagar, lembrando que podemos ter vários repasses para o parceiro em um mesmo dia, a depender de diversos fatores durante o faturamento do iFood.
Observação Caso o parceiro tenha realizado alguma antecipação de crédito, com alguma instituição financeira e tenha concedido a agenda de recebíveis do iFood como garantia, esses pagamentos podem ser afetados por efeito de contrato (registro de recebíveis), esta API exibirá apenas o pagamento residual destinado ao parceiro do iFood se existir, já que o estabelecimento pode comprometer uma parte ou o valor total da sua agenda, o valor comprometido com a instituição financeira, deve ser consultado na API de recebíveis.
O Endpoint /{merchantId}/sales, é responsável por exibir todas as vendas que houveram em um determinado período, nele será apresentado informações como número único do pedido, método de pagamento, valor pago pelo consumidor, quem acolheu o pagamento do pedido, status, entre outras informações relevantes para calcular o valor líquido a repassar para o parceiro.
Pedidos que foram cancelados antes de serem faturados, retornam com status de CANCELLED.
Pedidos que foram cancelados após serem faturados, pedidos que tiveram cancelamento parcial (de item) ou pedidos que não foram cancelados, com status CONCLUDED.
Todos os pedidos cancelados, antes ou depois do faturamento, constam também no endpoint /{merchantId}/cancellations, que retorna informações adicionais sobre o cancelamento. Para calcular o valor líquido da venda que será repassada para o parceiro, deve-se utilizar a regra (totalcredit – totaldebit) para cada venda.
Para a API de Sales temos duas versões:
Mais detalhes sobre o objeto sales nesta página
Observação O campo liability, como dito anteriormente é o identificador de quem é o responsável pelo pagamento do consumidor, caso seja MERCHANT, o iFood não foi responsável por receber esse pagamento e não terá valores a repassar para o parceiro, isso significa que o estabelecimento recebeu o valor do pedido diretamente do consumidor ou pelas bandeiras de refeição, desta forma, a venda poderá apresentar apenas débitos a serem cobrados por viabilizar a operação, como por exemplo comissão do pedido. O valor total da venda, será representado pelo campo GMV, ele será o responsável por fornecer o valor da venda mais o valor da entrega, ainda sem o abatimento das taxas cobradas pelo iFood. Em pedidos com solicitação de entrega sob demanda, podem ser retornados 2 débitos referentes à taxa de entrega. Um é o valor da taxa de entrega cobrada pelo estabelecimento do consumidor, que será representada no campo billing.deliveryFee , outro é o valor da taxa de entrega cobrada pelo iFood do estabelecimento que solicitou a entrega sob demanda, o valor é destacado no campo billing.deliveryFeeIfood.
O Endpoint /{merchantId}/salesAdjustments, retorna informações de alterações que impactam o valor dos pedidos após a sua conclusão. Para estes casos, ocorrerá um refaturamento do pedido que foi concluído (CONCLUDED), lembrando que podemos ter vários faturamentos para o mesmo pedido. Podemos considerar como exemplo, um pedido que após a sua conclusão, houve cancelamento de um item da cesta pelo consumidor, que entrou em contato e relatou que o produto não foi enviado. Nestes casos, ocorrerá o refaturamento do pedido, descontando o item cancelado, gerando assim um novo valor para o repasse ao parceiro.
Observação É necessário reforçar, que o refaturamento do pedido, pode ocorrer em um “periodid” diferente da venda, isso ocorrerá sempre que o refaturamento do pedido ocorrer quando o período da venda já tiver sido fechado/apurado, desta forma o iFood fará o carregamento desse valor para o próximo período em aberto.
O Endpoint /{merchantId}/occurrences, retorna informações sobre lançamentos realizados pelo iFood e que impactam o repasse do parceiro. Ocorrências são lançamentos financeiros manuais de crédito ou débito que servem aos mais diversos propósitos.
De maneira geral, podemos resumir em 2 grupos:
Observação Por ser uma ferramenta interna do iFood, que auxilia aos diversos propósitos, é impossível predizer quais os tipos de ocorrências possíveis de serem lançadas, por isso é importante categorizar o campo “reason” para ter uma melhor experiência de entendimento dos casos lançados.
O Endpoint /{merchantId}/incomeTaxes, retorna informações sobre os reembolsos efetivados pelo iFood para o parceiro, em virtude das operações que houve incidência do imposto de renda nas operações realizadas. Esse valor é calculado em todo fechamento mensal do iFood e o valor a ser reembolsado é lançado, referente ao mês anterior.
O Endpoint /{merchantId}/chargeCancellations, retorna informações sobre o valor que foi repassado para o parceiro pelo iFood, quando o cancelamento do pedido é de responsabilidade do iFood. Podemos considerar como exemplo, um cancelamento ocasionado por um problema enfrentado pelo entregador. Se o parceiro utiliza a logística de entrega do iFood e durante o trajeto ao destinatário ocorrer um problema e a encomenda não chega ao destino, entende-se que o parceiro cumpriu o seu dever de preparar e despachar o pedido, porém o mesmo não foi entregue por motivos fora de seu controle. Neste caso, o iFood realiza um crédito para o parceiro, descontando as devidas taxas.
O Endpoint /{merchantId}/cancellations, retorna informações sobre o cancelamento total do pedido. Podemos considerar como exemplo, um pedido que teve seu status como concluído, porém o parceiro não conseguiu realizar a entrega ao consumidor, logo esse pedido será cancelado. Os pedidos com cancelamento parcial aparecem na API de Sales, pois o status dele é concluído.
Observação É necessário reforçar, que o refaturamento do pedido, pode ocorrer em um “periodid” diferente da venda, isso ocorrerá sempre que o refaturamento do pedido ocorrer quando o período da venda já tiver sido fechado/apurado, desta forma o iFood fará o carregamento desse valor para o próximo período em aberto.
O Endpoint /{merchantId}/maintenanceFees, retorna informações sobre a cobrança de mensalidade do iFood para o parceiro, mediante regras e termos do contrato realizado entre as entidades.
O Endpoint /{merchantId}/paymentDetails, retorna informações sobre os detalhes da transação de pagamento de cartões MEAL VOUCHER. Importante ressaltar que a api não tem vínculo com a api de payments. Podemos considerar como exemplo, um pedido feito no aplicativo do iFood e pago pelo app, com cartão VA ou VR. Nesse cenário, a Api mostrará informações sobre adquirência, NSU, status do pagamento, local de reembolso cliente, se foi realizado na bandeira ou na carteira iFood.
Observação Apresentamos esses detalhes da transação, porque o iFood não é o responsável por acolher o pagamento e repassar para o parceiro, nestes casos, o próprio emissor do cartão é quem destina o valor para o estabelecimento, sem passar pelo iFood. Também apresentamos detalhes de estorno, quando este se aplicar, identificando se o estorno foi realizado diretamente no emissor do cartão, desta forma o estabelecimento não teria nenhum valor a receber, ou se o estorno foi realizado na carteira digital do consumidor, desta forma o estabelecimento irá receber o valor do emissor do cartão, porém como o pedido foi cancelado parcialmente ou totalmente, o valor foi ressarcido ao consumidor e desta forma o iFood irá gerar uma cobrança ao estabelecimento referente a essa operação.
O Endpoint /{merchantId}/receivableRecords, retorna informações sobre os registros de recebíveis, ou seja, valor repassado a uma instituição financeira que o parceiro tem algum tipo contrato de antecipação realizado e que tenha concedido a agenda do iFood como garantia.
Observação O repasse no registro de recebíveis pode comprometer parcialmente ou totalmente a agenda a receber do parceiro no iFood, a depender do contrato que foi firmado entre o estabelecimento e a instituição financeira. Para o repasse aqui apresentado é realizado um ou mais splits do pagamento original, por arranjo de pagamento conforme estabelecido na normativa do Banco Central.
O Endpoint /{merchantId}/salesBenefits, retorna informações sobre as vendas que foram pagas pelo consumidor no app com o cartão iFood benefícios. A api mostrará uma seção que conterá dados sobre os pedidos e taxas aplicadas pelo iFood e o valor líquido que a loja receberá pela operação.
Observação Só será exibido dados neste endpoint, caso o estabelecimento esteja recebendo o repasse do iFood de forma separada dos cartões de crédito e débito.
O Endpoint /{merchantId}/adjustmentsBenefits, retorna informações de alterações que impactam o valor dos pedidos após a sua conclusão e que foram pagos com iFood Benefícios no app. Para estes casos ocorreu um refaturamento do pedido que foi concluído (CONCLUDED), lembrando que um pedido pode ter vários faturamentos. Por exemplo, um pedido que após ser concluído, foi cancelado um item da cesta pelo consumidor, que entrou em contato e relatou que o produto não foi enviado. Nestes casos, ocorrerá o refaturamento do pedido, descontando o item cancelado, gerando assim um novo valor para o repasse ao parceiro.
Observação Só será exibido dados neste endpoint, caso o estabelecimento esteja recebendo o repasse do iFood de forma separada dos cartões de crédito e débito.