List charges
LiveServed by the v1 API in development with the same checks as production; production opens on the same contract. The capabilities from before v1 keep running in production at the path your account team gives you.
Charges of your company, most recent first. Every filter is optional and they combine. qr is always null in a list and invoice is summarised; read GET /charges/{id} for the QR and the whole invoice. Needs the charges:read scope.
oauth2 charges:readAuthorizationBearer <token>OAuth 2.0 client credentials. Exchange your client_id and client_secret at /oauth/token of the environment for a bearer token valid for one hour. The playground of every operation asks for your own client and keeps it in your browser tab only.
Scope: charges:read
merchant_id?stringFilter by merchant.
^mer_[0-7][0-9a-hjkmnp-tv-z]{25}$external_id?stringFilter by your transaction id.
status?stringFilter by status. expired is an open charge whose expires_at passed.
"open""invoiced""expired""void""included_in_global"location?stringFilter by the external_id of the merchant's location.
length <= 128occurred_from?stringFirst day of occurred_at (YYYY-MM-DD, Mexico City time), inclusive. With both occurred_from and occurred_to, at most 366 days.
dateoccurred_to?stringLast day of occurred_at (YYYY-MM-DD, Mexico City time), inclusive. With both occurred_from and occurred_to, at most 366 days.
datecreated_from?stringFirst day of created_at (YYYY-MM-DD, Mexico City time), inclusive. With both created_from and created_to, at most 366 days.
datecreated_to?stringLast day of created_at (YYYY-MM-DD, Mexico City time), inclusive. With both created_from and created_to, at most 366 days.
dateglobal_invoice_id?stringOnly the charges included in this global invoice.
^gin_[0-7][0-9a-hjkmnp-tv-z]{25}$cursor?stringFrom next_cursor of the previous page.
limit?integer1 to 500.
1 <= value <= 500100OK
application/json- response
data*array<>next_cursor*|nullcurl -X GET 'https://api.dev.b2b.heru.app/v1/charges?merchant_id=mer_01m4ra8wsyfh3s0tr4nrq3y96j&occurred_from=2026-10-01&occurred_to=2026-10-31&created_from=2026-10-01&created_to=2026-10-31&global_invoice_id=gin_01m4ra8wsyfh3s0tr4nrq3y96j'{ "data": [ { "id": "chg_01m4p7sbvpev1s5086cty36rvs", "external_id": "TXN-0001845122", "status": "open", "merchant_id": "mer_01m4ra8wsyfh3s0tr4nrq3y96j", "amount": "250.00", "payment_form": "04", "occurred_at": "2026-10-11T13:42:10-06:00", "location": "SUC-01", "items": [ { "product_code": "90101500", "description": "Chilaquiles verdes con pollo", "amount": "165.00", "quantity": 1, "unit_code": "E48", "vat_rate": "0.16" }, { "product_code": "90101500", "description": "Café americano", "amount": "85.00", "quantity": 2, "unit_code": "E48", "vat_rate": "0.16" } ], "invoice_token": "9fK2wQ7xLm4TbR8vZp3N", "invoice_url": "https://invoice.heru.app/cafeteria-la-esquina/c/9fK2wQ7xLm4TbR8vZp3N", "qr": null, "expires_at": "2026-11-10T23:59:59-06:00", "invoice": null, "created_at": "2026-10-11T19:42:11.318Z", "updated_at": "2026-10-11T19:42:11.318Z" }, { "id": "chg_01m4p7sbvpev1s5086cty36rvr", "external_id": "TXN-0001845121", "status": "invoiced", "merchant_id": "mer_01m4ra8wsyfh3s0tr4nrq3y96j", "amount": "250.00", "payment_form": "04", "occurred_at": "2026-10-11T13:42:10-06:00", "location": "SUC-01", "items": [ { "product_code": "90101500", "description": "Chilaquiles verdes con pollo", "amount": "165.00", "quantity": 1, "unit_code": "E48", "vat_rate": "0.16" }, { "product_code": "90101500", "description": "Café americano", "amount": "85.00", "quantity": 2, "unit_code": "E48", "vat_rate": "0.16" } ], "invoice_token": null, "invoice_url": null, "qr": null, "expires_at": "2026-11-10T23:59:59-06:00", "invoice": { "id": "inv_01m4p9pkdefthvmhy9gknjgbt7", "uuid": "0AF2F650-F2A4-D4E3-8F92-363E38508CB2", "status": "stamped", "stamped_at": "2026-10-11T20:15:41.116Z" }, "created_at": "2026-10-11T19:42:11.318Z", "updated_at": "2026-10-11T20:15:41.116Z" } ], "next_cursor": "eyJpZCI6ImNoZ18wMW00cDdzYnZwZXYxczUwODZjdHkzNnJ2ciJ9"}Get a merchantGET
Returns the merchant with its CSD and onboarding status. Needs the `merchants:read` scope.
Get a chargeGET
Returns the charge. Once the customer invoices it, `invoice` carries the CFDI, and the link fields are null. Download its files with `GET /invoices/{id}/download`. Needs the `charges:read` scope.