Skip to content
A AmunPay API PixVersion 3.38 · updated on Pages

Statement

Three views of what moved: the statement of a closed day, the transactions of right now and the summary of a period. All with the scope ex.extrato.read.

Statement of the day #

GET /v2/ex/extrato/{data}

Only for a closed day. data is the accounting day in America/Sao_Paulo.

GET /v2/ex/extrato/2026-09-17
→ 200
{
  "data": "2026-09-17",
  "conciliado": false,
  "geradoEm": "2026-09-18T12:00:00.786679Z",
  "totais": {
    "creditos": "650.00",
    "debitos": "0.00",
    "emAberto": { "creditos": "0.00", "debitos": "0.00", "quantidade": 0 }
  },
  "transacoes": [
    {
      "data": "2026-09-17T13:05:00Z",
      "tipo": "DEPOSITO",
      "sentido": "CREDITO",
      "valor": "150.00",
      "referencia": "FIN02J1ZK7M9QW3ERT5TY6UI8O",
      "endToEndId": "E12345678202609181200000000000001",
      "status": "CREDITADO",
      "efetivado": true
    },
    {
      "data": "2026-09-17T13:00:00Z",
      "tipo": "DEPOSITO",
      "sentido": "CREDITO",
      "valor": "500.00",
      "referencia": "FIN01J1ZK7M9QW3ERT5TY6UI8O",
      "endToEndId": "E12345678202609181200000000000002",
      "status": "CREDITADO",
      "efetivado": true
    }
  ],
  "cursor": { "proximo": "", "temMais": false }
}
Field Type Description
totais.creditos, totais.debitos string Sum of the whole day, not of the page, of the lines of that day that have already taken effect. A line belongs to the day it was created, except for a payout and a refund that went out, which belong to the day the money left: a payout requested on one day and settled on the next stays on the first, open, while it has not gone out, and moves to the second when it goes out. If a line takes effect later on the same day, the total of that day changes. A deposit counts on the day it came in, also if it later returns to the payer or is held: the refund and the hold are lines of their own, on their dates. Credits minus debits of a day is how much your disponivel changed in it, apart from the share that the split takes.
totais.emAberto object What remained open: a payout not settled, a deposit that returns to the payer without having become balance.
conciliado boolean true when the day has already been closed and reconciled on our side. false does not invalidate the lines.
geradoEm string When the statement was read. Two readings of the same day may differ in the open lines.
transacoes[].tipo string DEPOSITO, CREDITO_DE_DEPOSITO (the credit of a deposit that was being refunded and was credited later, on the day it became balance), SAQUE, PREMIO, COMISSAO (payout to a split partner), DEVOLUCAO, DEVOLUCAO_DE_SAQUE (what the bank of the payee returned from a payout already completed), BLOQUEIO (balance held by a dispute, a court order or a risk review), DESBLOQUEIO (the held amount that went back to the balance), TARIFA, PENALIDADE (the penalty set in the contract, posted by the institution) or CREDITO_AVULSO (a credit posted by the institution, such as a bonus). Handle a type you do not know by its sentido.
transacoes[].sentido string CREDITO or DEBITO.
transacoes[].efetivado boolean true if the line is money that changed hands.
transacoes[].referencia string The txid on a deposit, credito:<txid> on the credit of a deposit, the idEnvio on a payout, endToEndId:id on a refund, idEnvio:rtrId on a payout return, tarifa:<meio>:<referência> on a fee and bloqueio:<tipo>:<id> or desbloqueio:<tipo>:<id> on a hold, with its type (MED, JUDICIAL or CAUTELAR), and lancamento:<id> on a penalty or a credit from the institution. The whole hold is in GET /v2/ex/bloqueios.
transacoes[].idEnvio string Only on the lines of a payout the institution split into several Pix (the payout of each Pix, its fee and its return): the idEnvio of the payout you requested. The reference of these lines is the idEnvio, a hyphen and the part, such as SAQ01J1ZK7M9QW3ERT5TY6UI8O-002.
transacoes[].parte integer Only on these lines: the position of the Pix in the payout, the same as pix[].parte in Get payout.

The statement of the day paginates like the listings: pass cursor.proximo in ?cursor= while cursor.temMais is true.

GET /v2/ex/extrato/{data}/arquivo returns the same day in CSV, with the SHA-256 of the content in the trailer x-conteudo-sha256. With ?formato=zip, it returns a zip with the same CSV inside, about five times smaller, and the trailer is still the SHA-256 of the CSV. Any other value in formato is 400 formato_invalido.

Transactions of right now #

GET /v2/ex/transacoes

The window is made of RFC 3339 instants: de is included, ate is not. Without one of the two, the window stays open on that side. Deposits appear when they are credited; payouts and refunds, when they are requested, with the status of that moment, and they move to the instant the money left when they go out: check efetivado.

To list only one type or one status, pass tipo and situacao: each accepts several values, separated by commas. A value that does not exist is 400.

GET /v2/ex/transacoes?de=2026-09-18T00:00:00Z&ate=2026-09-18T23:59:59Z&limite=2
→ 200
{
  "transacoes": [
    {
      "data": "2026-09-18T12:00:03.779747Z",
      "tipo": "DEVOLUCAO",
      "sentido": "DEBITO",
      "valor": "50.00",
      "referencia": "E12345678202609181200000000000001:DEV01J1ZK7M9QW3ERT5TY6UI8O",
      "endToEndId": "E12345678202609181200000000000001",
      "status": "EM_PROCESSAMENTO",
      "efetivado": false
    },
    {
      "data": "2026-09-18T12:00:02.774316Z",
      "tipo": "SAQUE",
      "sentido": "DEBITO",
      "valor": "300.00",
      "referencia": "SAQ01J1ZK7M9QW3ERT5TY6UI8O",
      "endToEndId": "E12345678202609181200000000000003",
      "status": "EM_PROCESSAMENTO",
      "efetivado": false
    }
  ],
  "cursor": { "proximo": "MTc4OTcyMzIyMzc2NDAzMH5GSU4w...", "temMais": true }
}

For the same selection in a file, use GET /v2/ex/transacoes/arquivo with de and ate (required, up to 31 days), tipo and situacao. It returns a spreadsheet CSV, separated by semicolons, with the same lines in the same order; with ?formato=zip, the same CSV inside a zip. The x-linhas trailer says how many transactions came. It does not carry the SHA-256: to reconcile, use the file of the closed day.

Summary of a period #

GET /v2/ex/resumo

Sums the closed days between de and ate, both AAAA-MM-DD, up to 366 days. If ate includes the current day, atePedido says what was requested and ate what was summed.

GET /v2/ex/resumo?de=2026-08-19&ate=2026-09-18
→ 200
{
  "de": "2026-08-19",
  "ate": "2026-09-17",
  "atePedido": "2026-09-18",
  "geradoEm": "2026-09-18T12:00:00.792600Z",
  "totais": {
    "creditos": "650.00",
    "debitos": "0.00",
    "operacoesCredito": 2,
    "operacoesDebito": 0,
    "ticketMedio": "325.00"
  },
  "porDia": [
    { "dia": "2026-09-17", "creditos": "650.00", "debitos": "0.00", "operacoes": 2 }
  ],
  "porTipo": [
    { "tipo": "DEPOSITO", "creditos": "650.00", "debitos": "0.00", "operacoes": 2 }
  ]
}

A day with no movement does not appear in porDia. ticketMedio is creditos divided by operacoesCredito.

With incluirHoje=true the sum includes the current day, up to the moment of the request. The response carries parcialAte, the instant up to which the current day was summed, and ate becomes the last day summed. This number changes until the day closes.

Find an operation by any id #

GET /v2/ex/transacoes/mapear

Takes in ref a txid, idEnvio, endToEndId, rtrId, your external reference or the id of a hold (the same one GET /v2/ex/bloqueios lists), and says where it found it. The procuradas list in the response is where the server searched, and it includes internal domains.

GET /v2/ex/transacoes/mapear?ref=SAQ01J1ZK7M9QW3ERT5TY6UI8O
→ 200
{
  "ref": "SAQ01J1ZK7M9QW3ERT5TY6UI8O",
  "achados": [
    {
      "dominio": "payout",
      "campo": "id_envio",
      "id": "SAQ01J1ZK7M9QW3ERT5TY6UI8O",
      "situacao": "EM_PROCESSAMENTO",
      "valor": "300.00",
      "quando": "2026-09-18T12:00:02Z"
    }
  ],
  "procuradas": ["cobranca", "payout", "devolucao", "devolucao_recebida", "contingencia", "devolvido_pela_parceira", "venda_cartao", "boleto", "infracao", "bloqueio"],
  "naoProcuradas": []
}

Errors #

Status title When
400 data_invalida data outside AAAA-MM-DD.
400 periodo_obrigatorio Summary without de or without ate.
400 periodo_invalido de or ate outside the format, or de after ate.
400 ref_obrigatoria mapear without ref.
400 ref_invalida ref longer than 140 characters.
422 dia_nao_encerrado Statement of the current day or a future day. Use the transactions.
422 periodo_nao_encerrado No day of the period has closed yet.
422 periodo_longo_demais Summary longer than 366 days.