Extrato
O extrato é a representação detalhada do saldo Pagar.me, apresentando valores recebidos, descontados e à receber, dessa maneira extrato nada mais é do que um compilado dos recebíveis e das operações de saldo. O extrato é dividido em dois, sendo um deles o atual, ou seja todos os valores já liquidados, e o outro o à receber. Ambos os extratos possuem informações referentes às movimentações de saldo separadas dia-a-dia, exibindo cada valor positivo, cada valor negativo e o saldo final do dia.
Extraindo o extrato através da API
Extrato atual
Para reconstruir o extrato atual é necessário utilizar as informações contidas na rota /balance_operations que se refere as operações de saldo.
O primeiro passo é buscar as operações referentes ao período que deseja reconstruir através de um GET informando a data de início (start_date) e de fim (end_date), ambas no formato timestamp com milissegundos.
{
"api_key": "CHAVE_DE_API",
"start_date":"1598335908000",
"end_date":"1601014308000"
}
Atenção
A API irá retornar apenas 10 itens por vez caso parâmetro "count" não seja informado, sendo que o mesmo tem o limite de 1000 itens por busca. Para paginar os resultados é necessário utilizar o parâmetro "page".
O retorno dessa busca será um vetor de objetos.
[
{
"object": "balance_operation",
"id": 12979989,
"status": "available",
"balance_amount": 0,
"balance_old_amount": null,
"type": "payable",
"amount": 10000,
"fee": 380,
"date_created": "2020-09-01T18:27:29.016Z",
"movement_object": {
"object": "payable",
"id": 11491515,
"status": "paid",
"amount": 10000,
"fee": 380,
"anticipation_fee": 0,
"fraud_coverage_fee": 0,
"installment": null,
"transaction_id": 9646500,
"split_rule_id": null,
"bulk_anticipation_id": null,
"recipient_id": "re_cjsklmm5k00qu2j6exqej7tss",
"originator_model": null,
"originator_model_id": null,
"payment_date": "2020-09-01T03:00:00.325Z",
"original_payment_date": null,
"type": "credit",
"payment_method": "boleto",
"accrual_date": null,
"date_created": "2020-09-01T18:27:28.358Z"
}
},
{
"object": "balance_operation",
"id": 12904870,
"status": "available",
"balance_amount": 0,
"balance_old_amount": null,
"type": "payable",
"amount": 10000,
"fee": 380,
"date_created": "2020-08-26T15:00:46.115Z",
"movement_object": {
"object": "payable",
"id": 11418966,
"status": "paid",
"amount": 10000,
"fee": 380,
"anticipation_fee": 0,
"fraud_coverage_fee": 0,
"installment": null,
"transaction_id": 9592696,
"split_rule_id": null,
"bulk_anticipation_id": null,
"recipient_id": "re_cjsklmm5k00qu2j6exqej7tss",
"originator_model": null,
"originator_model_id": null,
"payment_date": "2020-08-26T03:00:00.892Z",
"original_payment_date": null,
"type": "credit",
"payment_method": "boleto",
"accrual_date": null,
"date_created": "2020-08-26T15:00:45.928Z"
}
}
]
Após buscar todas as operações do período desejado, é necessário filtrar por recebedor (movement_object.recipient_id) as informações que irão compor o extrato, no caso da dashboard essas informações seriam: valor (amount), taxa (fee), data de criação (date_created), tipo de movimentação (movement_object.payment_method ou movement_object.type) e id da transação (movement_object.transaction_id ou movement_object.id).
Todas as operações de saldo são agrupadas de acordo com a sua data de criação, sendo que cada uma é detalhada de acordo com sua origem (no caso de movientações originadas de transações o transaction_id nos demais casos apenas id), o tipo de movimentação (payment_method ou type), valor bruto (amount), taxa (fee), valor líquido (amount subtraindo o fee)
Somando todos os valores líquidos do dia temos o balanço diário.
Extrato à receber
Para reconstruir o extrato à receber é necessário utilizar as informações contidas na rota /payables que se refere aos recebíveis.
O primeiro passo é buscar os payables referentes ao período que deseja reconstruir através de um GET informando a data de início e de fim utilizando os operadores maior igual (>=) e menor igual (<=). É importante se atentar que o formato a ser enviado é timestamp com milissegundos.
Requisição
curl -X GET https://api.pagar.me/1/payables \ -d 'api_key=CHAVE_DE_API' -d 'recipient_id'='re_cjsklmm5k00qu2j6exqej7tss' -d 'payment_date=>=1601014308000' -d 'payment_date=<=1603606308000'
https://api.pagar.me/1/payables?payment_date=>=1601014308000&payment_date=<=1603606308000&recipient_id=re_cjsklmm5k00qu2j6exqej7tss&api_key=CHAVE_DE_API
Atenção
A API irá retornar apenas 10 itens por vez caso parâmetro "count" não seja informado, sendo que o mesmo tem o limite de 1000 itens por busca. Para paginar os resultados é necessário utilizar o parâmetro "page".
O retorno dessa busca será um vetor de objetos.
[
{
"object": "payable",
"id": 11797463,
"status": "waiting_funds",
"amount": 3000,
"fee": 150,
"anticipation_fee": 0,
"fraud_coverage_fee": 0,
"installment": 1,
"transaction_id": 9831494,
"split_rule_id": "sr_ckfee8h610fqoou6d4tjtgo9u",
"bulk_anticipation_id": null,
"recipient_id": "re_cjsklmm5k00qu2j6exqej7tss",
"originator_model": null,
"originator_model_id": null,
"payment_date": "2020-10-23T03:00:00.000Z",
"original_payment_date": null,
"type": "credit",
"payment_method": "credit_card",
"accrual_date": "2020-09-22T20:10:53.859Z",
"date_created": "2020-09-22T20:10:53.944Z"
},
{
"object": "payable",
"id": 11149083,
"status": "waiting_funds",
"amount": -100,
"fee": -5,
"anticipation_fee": 0,
"fraud_coverage_fee": 0,
"installment": 2,
"transaction_id": 9445499,
"split_rule_id": "sr_ckdp5xtsj01neyn6daqqn7ubw",
"bulk_anticipation_id": null,
"recipient_id": "re_cjsklmm5k00qu2j6exqej7tss",
"originator_model": "refund",
"originator_model_id": "rf_ckdp5yn28069xk13spgbkell2",
"payment_date": "2020-10-13T03:00:00.000Z",
"original_payment_date": null,
"type": "refund",
"payment_method": "credit_card",
"accrual_date": null,
"date_created": "2020-08-10T23:45:20.997Z"
}
]
Após buscar todos os recebíveis do período desejado, é necessário selecionar as informações que irão compor o extrato, no caso da dashboard essas informações seriam: valor (amount), taxa (fee), data de pagamento (payment_date), tipo de movimentação (type) e id da transação (transaction_id).
Todos os recebíveis são agrupados de acordo com a sua data de pagamento, sendo que cada registro é detalhado de acordo com sua origem (transaction_id), o tipo de movimentação (type), valor bruto (amount), taxa (fee), valor líquido (amount subtraindo o fee).
Somando todos os valores líquidos do dia temos o balanço diário.
Updated about 4 years ago