Statement (V3/V4)

The Statement API in Getnet Split Payments lets the platform query the financial breakdown of every event generated by a split transaction: sales, commissions, adjustments, chargebacks, and settlements. The returned data is the basis for reconciling the marketplace's finances with the amounts passed on to each partner.

Requirements

  • Marketplace accredited with Getnet, with the seller_id (the anchor's access key) on hand.
  • Valid access token, sent in the Authorization header in the format Bearer <token>.

Choose the API Version

The Statement API is available in two active versions, V3 and V4. Version V2 has been discontinued and should no longer be used.
VersionEndpoint(s)Characteristics
V3GET /v3/mgm/statement/not-paginated and GET /v3/mgm/statement/paginatedTwo separate endpoints, one paginated and one not. Includes payment plan, anticipations, and liens.
V4GET /v4/mgm/statementA single endpoint, always paginated (the page parameter is required).
V4 introduces the following schema changes relative to V3:
  • The product fee is shown separately from the MDR (Merchant Discount Rate).
  • The MDR is calculated per item.
  • A cancellation transaction now shows the original transaction's date.
  • A new field identifies payments made through Receba-Já.
  • The anchor's CNPJ now appears in the summary block.
  • The transaction_sign field no longer exists: the positive or negative sign is now embedded directly in the value itself.
  • The payment_summaries block is discontinued, replaced by a payments object inside each of the details, commissions, adjustments, and chargeback blocks.
information icon
Note: The examples and field descriptions in the sections below (Understand Specific Events in the Statement) use the V3 schema, including transaction_sign and payment_summaries. On V4, apply the same logic described using the sign embedded in the value (instead of transaction_sign) and each block's payments object (instead of payment_summaries).

Query the Statement

Send a GET request to the chosen version's endpoint, providing the seller_id and at least one additional filter.
  1. Set the Authorization header with the access token, in the format Bearer <token>.
  2. Provide seller_id (required) and one of the period or identification filters listed below.
  3. Also provide the page parameter (required, starting at 1) on V3's paginated endpoint and on V4.
  4. Send the request and check the response code in Check the Error Codes, further below.

Provide the Query Parameters

FieldRequiredDescription
seller_idYesThe anchor's access key. Alone, it isn't enough: it must be combined with another filter.
subseller_id or subsellerid_extNoFilters the result by partner. These are alternative forms of the same filter. Don't send both together.
release_statusNoS (payment released) or N (payment not released). Requires a schedule_date period to also be provided.
blocks_codesNoRestricts the returned blocks. Accepted codes: TR (transactions), CO (commissions), AD (adjustments), CB (chargebacks), or PS (payments), comma-separated.
pageYes on V4 and on V3's paginated endpointThe search page, starting at 1.
rows_amountNoNumber of records per page. Each block (summary, details, commission, etc.) counts as one record.

Use the Period or Identification Filters

Use only one of the filters below per request: they can't be combined with each other or with another period filter.
FilterWhen to use
schedule_date_init / schedule_date_endLoads every schedule item touched in the period, regardless of payment date. Recommended filter for reconciliation.
transaction_date_init / transaction_date_endLoads the schedule items for transactions captured in the given period.
liquidation_date_init / liquidation_date_endReturns only schedule items whose payment has already been settled (payments block populated).
confirmation_date_init / confirmation_date_endLoads the schedule items for transactions confirmed in the given period.
order_idReturns every schedule item for every transaction of a specific order (sale and cancellation).
acquirer_transaction_idReturns every schedule item related to the NSU (Número Sequencial Único, the transaction identifier assigned by the acquirer) of a specific transaction, including commissions.

Understand the Return Blocks

The statement is divided into blocks. Each block includes a reference_number: the reference number generated once the balance is netted during the settlement process, which groups together every payout made in that settlement.
BlockContains
summaryTransaction data (sale amount, date, NSU, authorization code, card brand, order number).
detailsThe sale's schedule items. Since schedule items are generated per item, a transaction can have several details entries, one per installment (or just one, in the case of Receba-Já).
commissionsThe schedule items for the commission the anchor charges on the sale.
adjustmentsAdjustments posted to the schedule, either system-originated (for example, reversal of a negative schedule) or anchor-originated (entries made via API).
chargebackThe chargeback adjustment posted to the anchor's own store. Contains the original transaction's data, but doesn't reference a specific item.
payments (V4, inside each block above) or payment_summaries (V3, its own block)Details the payments sent and confirmed, stating whether the amount was settled to a free account or under a lien agreement.

Understand the Record Types

The type_register field identifies the nature of each returned entry:
TypeRepresents
1Sales summary, grouping transactional entries.
2Sales receipts, detailing the type-1 sales.
3Financial adjustments: credit, debit, chargebacks, and services.
4System-originated adjustments (such as reversal of a negative schedule) and entries between the anchor's own store and the partner's, including those made by the anchor via API (adjustment_origin: "M").
5Financial information about the type-1 transactional movements, detailing the payment allocation of each movement made that day.
6Details of the Receivable Units (UR) consolidated in type 5.
7Netting (sum and subtraction) of every block with the same reference_number. Identifies where the payment was made and whether a lien agreement is associated with it. Does not return type-4 information.

Understand Specific Events in the Statement

Identify the Payment Plan

The payment_plan_name field in details indicates whether the schedule follows the normal payment flow (one installment per details entry, following the sale's installment plan) or Receba-Já (anticipation, always a single details entry, with the plan name in the format "RecebaJá 2 dias"). The anticipation appears as an adjustment in the adjustments block, identifiable by the adjustment_type and operation_identifier_code fields.
Example of details under Receba-Já:
JSON
{ "type_register": 2, "release_status": "S", "item_id": "MR001", "number_installments": 1, "installment": 1, "installment_amount": 384334, "subseller_rate_amount": 369960, "payment_date": "2024-12-06T00:00:00", "payment_plan_name": "RecebaJá 2 dias", "reference_number": null }

Identify Boleto, Prepaid Card, and Two-Card Payment

  • Paid boleto: summary.product_id = 101 (Santander Boleto) and summary.transaction_type = 7. The details.boleto_payment_date field is populated. When the boleto isn't paid, the details block isn't loaded. A boleto always settles at D+1, regardless of the payment plan. A boleto reversal appears in the adjustments block, in the product_id (101), our_number, nsu_boleto_adjustment, and adjustment_id fields.
  • Prepaid card: identified by the summary.prepaid_card field, with a value of "S" or "N".
  • Two-card payment: identified by the payment_tag field in the summary block (for example, "Cartão 1" and "Cartão 2") and by the payment_tag and item_split_tag fields in the details block.

Identify a Blocked Schedule

There's no specific field for a blocked schedule. The condition is identified by combining other fields. If, in the details block, release_status is "S", payment_date is already past due, and the sum of every returned block (details, commissions, adjustments, chargeback, and payments/payment_summaries) is greater than zero, the partner's schedule may be blocked, either by the anchor's own action or by Getnet's fraud prevention.

Recognize a Full Order Cancellation

A cancellation generates a new transaction, referencing the original one. In the original transaction, transaction_status_code changes to 92 (reversed). In the new cancellation transaction, summary.transaction_type = 5 and marketplace_original_transaction_id references the original transaction.
JSON
{ "type_register": 1, "transaction_type": 5, "marketplace_original_transaction_id": 75770856, "transaction_sign": "-", "card_payment_amount": 10000 }
information icon
Note: When a cancellation occurs, the cancellation transaction's item is already released (release_status: "S") from the start, even if the original item hadn't been released yet. The cancellation transaction's schedule follows the same payment plan as the original transaction.

Recognize a Partial Item Cancellation

In a partial cancellation:

  • The original transaction keeps transaction_status_code approved, and the original item's amount becomes equal to the non-canceled amount.
  • The cancellation transaction carries the partial canceled amount in summary.card_payment_amount.
  • sum_details_card_payment_amount shows the amount already updated after the cancellation.
  • The cancellation transaction's commissions block carries the refunded commission, with subseller_rate_amount and mdr_rate_amount negative.

Distinguish Chargeback from Chargeback Reversal

A chargeback is always posted to the anchor's own store, in the chargeback block, and doesn't reference a specific item.
  • Debit (chargeback): transaction_sign: "-", adjustment_type: 4.
  • Credit (chargeback reversal): transaction_sign: "+", adjustment_type: 25.
The vlr_mdr_marketplace, vlr_fee, and vlr_somaMdrFee fields show the MDR and fee refunded (on debit) or charged again (on reversal).

Interpret Credit and Debit Adjustments

Adjustments appear in the adjustments block with type_register: 4. The adjustment_origin field indicates the origin: "M" for entries made by the anchor via API, or a system origin for the rest. transaction_sign indicates "+" (credit) or "-" (debit).
In the table below, IF stands for Financial Institution and NF for Non-Financial Institution, the same terminology used in Balance API. In the table's numbering, codes 3, 4, and 13 through 17 don't exist.

The API returns the descriptions below in Portuguese; they're listed here as-is, matching what the response actually contains.

CodeDescriptionCodeDescription
1Ajuste a Crédito10Multa Bandeira
2Ajuste a Débito11Ajuste a Débito Estorno do Boleto Loja
5Saldo de Liquidação Negativa12Ajuste a Débito Estorno do Boleto Loja Própria Âncora
6Crédito para Negativo Expirado18Ajuste a débito de cessão de antecipação IF
7Débito para Negativo Expirado19Ajuste a débito de cessão de antecipação NF
8Ajuste a Crédito Antecipação ST20Ajuste a crédito de cessão de antecipação IF
9Ajuste a Débito Antecipação ST21Ajuste a crédito de cessão de antecipação NF

Interpret Negative and Positive Commission

In the commissions block, transaction_sign indicates whether the net amount paid to the anchor is negative (the anchor charged the seller nothing, or a lower rate than the one Getnet charged) or positive (the standard case).

Understand Schedule Netting (Settlement)

Every record sharing the same reference_number was netted and paid together in the same settlement. Record type 7 summarizes that payment:
JSON
{ "type_register": 7, "amount_paid": "1.050,67", "contract_number": null, "nu_liquid": "202402200000164372294", "operation_type": "Liquidação de valor da \"UR\" livre", "reference_number": 170456 }
nu_liquid is the settlement identification code generated by Núclea. The contract_number field identifies a lien agreement. When empty, the settlement is for a free UR, as indicated in operation_type.

Check the Error Codes

The API returns the messages below in Portuguese; they're listed here as-is, matching what the response actually contains.

CodeMessage
ERR001Código de autorização inválido.
ERR002Campo seller_id é obrigatório.
ERR003Tamanho máximo do campo seller_id: 50 caracteres.
ERR004Tamanho máximo do campo subseller_id: 10 dígitos.
ERR005O valor informado para o campo subseller_id deve ser numérico.
ERR006O valor informado para o campo subseller_id deve ser maior que zero.
ERR007Tamanho máximo do campo acquirer_transaction_id: 19 dígitos.
ERR008O valor informado para o campo acquirer_transaction_id deve ser numérico.
ERR009Valor informado para o campo release_status é inválido. Valores permitidos: S ou N.
ERR010O campo indicado foi preenchido incorretamente. Informe uma data válida no formato AAAA-MM-DD.
ERR011Além do seller_id, é necessário informar outro parâmetro para que a consulta seja realizada.
ERR012É necessário informar os dois campos do intervalo de datas (início e fim).
ERR013A data inicial informada é maior que a data final.
ERR014O período máximo de pesquisa entre a data inicial e final foi excedido.
ERR015Apenas um período de data deve ser informado como filtro da consulta.
ERR016Ao consultar por acquirer_transaction_id ou order_id, os campos de período não devem ser informados.
ERR017Não é possível informar acquirer_transaction_id e order_id juntos. Informe apenas um deles.
ERR018Foram informados apenas valores vazios para a lista de códigos de blocos. Informe valores válidos.
ERR019Os códigos de blocos informados são inválidos. Códigos permitidos: TR, CO, AD, CB ou PS, separados por vírgula.
ERR020Para uma consulta paginada é necessário informar o campo page.
ERR021O campo page deve conter apenas valores numéricos maiores que 0, limitados a 10 dígitos.
ERR022O campo rows_amount deve conter apenas valores numéricos, limitados a 10 dígitos.
ERR023A quantidade de registros por página informada em rows_amount é maior que o limite configurado.
ERR024O número da página informado é superior ao total de páginas retornadas para os filtros solicitados.
ERR025Exceção capturada durante o processamento da consulta.
To reconcile, filter by schedule_date_init and schedule_date_end and group the movements by reference_number, which bundles everything paid together.

Next Steps

  1. Settlement: see the overview of how and when each seller gets paid, including Receba-Já.
  2. Balance API: check the consolidated balance, without the Statement's item-level detail.
  3. Concepts and Glossary: look up the terms used throughout the Split documentation.