heruAPI
Point of sale

Get a charge

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.

GET
/charges/{id}

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.

Authorization

oauth2 charges:read
headerAuthorizationBearer <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

Path parameters

id*string

The charge id.

Match^chg_[0-7][0-9a-hjkmnp-tv-z]{25}$

Response body

OK

application/json
  1. response
id*string

The charge in this API: use it to get or void it.

Match^chg_[0-7][0-9a-hjkmnp-tv-z]{25}$
external_id*string

Your transaction id, as you sent it. Webhooks carry it so you can match them to your records.

status*string

open while the customer can invoice it; invoiced once they did; expired when expires_at passed unused; void after POST /charges/{id}/void; included_in_global when an expired charge went into the merchant's global invoice.

Value in"open""invoiced""expired""void""included_in_global"
merchant_id*string

The merchant that made the sale.

Match^mer_[0-7][0-9a-hjkmnp-tv-z]{25}$
amount*string

Total charged to the card, VAT included.

Match^[0-9]+\.[0-9]{2}$
payment_form*string

SAT c_FormaPago: 04 credit card, 28 debit card.

Value in"04""28"
occurred_at*string

When the card payment was approved.

Formatdate-time
location?|

external_id of the merchant's location, if you sent it.

items*array<>

What the invoice will say. If you sent no items, it holds the merchant's default_item for the whole amount.

invoice_token*|

Code inside invoice_url. Use it only if you build the link yourself, for example on your own domain. It is not the charge id. Null once the charge is no longer open.

invoice_url*|

Link the customer opens to invoice this charge: https://invoice.heru.app/{merchant slug}/c/{invoice_token}. It works once and until expires_at. Null once the charge is no longer open.

qr*|

QR with invoice_url. Null once the charge is no longer open.

expires_at*string

Last moment the customer can invoice the charge.

Formatdate-time
invoice*|

The CFDI the customer issued. Null until status is invoiced. Download its files with GET /invoices/{id}/download.

created_at*string
Formatdate-time
updated_at*string
Formatdate-time
curl -X GET 'https://api.dev.b2b.heru.app/v1/charges/chg_01m4p7sbvpev1s5086cty36rvs'

{  "id": "chg_01m4p7sbvpev1s5086cty36rvs",  "external_id": "TXN-0001845122",  "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",    "external_id": "TXN-0001845122",    "status": "stamped",    "type": "I",    "uuid": "0AF2F650-F2A4-D4E3-8F92-363E38508CB2",    "verification_url": "https://verificacfdi.facturaelectronica.sat.gob.mx/default.aspx?id=0AF2F650-F2A4-D4E3-8F92-363E38508CB2&re=HEGL900101K44&rr=LOMG900102Q74&tt=250.00&fe=KWfN/g==",    "stamp": {      "sat_certificate_number": "00001000000509465028",      "issuer_certificate_number": "00001000000712340011",      "pac_rfc": "SPR190613I52",      "issuer_seal": "zE7qxmudN9LYRUabHaPJXae6hd8hxAnJo0GHBmLvqU3Dj0pR/mGHdixRnrdO/L3DFSpUz0NyXcVyZEmahJF9EiDjkLjgBxS15T769jB7jA1/MaHTlY2pi/Mi4/7TCd3WApLmaTtlmbV1o/XaTpi4grv0DwREupZYhacIeqM/AzI7IakfJZbJlxBNNyWjDOUTB/thsQtwiOm7vN6G39Dm++eSXWd2FzfwqW+XL8l7JrUuveV3mGV7ZV0K9OcGANqufHg98BK9P2ztwM0XbP53UPdJwdB83ZMVsD9yyCSqeKuQkMifzRAqckLi3MvYl5CI/c/bKzTYWCx/G7UkKWfN/g==",      "sat_seal": "/RxrjLs6LlJQ4mw+0Z2smZ/yskhsjJ8MX3nkn+xbVKwruqzFGEOPGDRaPOjHmV25db8lr8QoEHeZYZI/sq3TkwBl48exBnm8EkozA8xW00u9hhGvxgngwK6jr0ohlBjm18YDS9yK8bE5B4Q5HwjfKOgZLAteaS8FE+a2pUNcsdUKSCPEkYFs0aAfYnXLnHIpkaS0/E8J3/8Nclu+UW41UN5fqlbQVx0dtE8PXnhtHcxxLgxpR76MxoJotkDCXFAEPUz6EMGZi9/hXuRSW5IU0edUqifHFs827xIv6WWKZlXqqcLKkGqdrD77uDeh9cCDMKhSzVmP1UIPmStM+SrE7w==",      "original_chain": "||1.1|0AF2F650-F2A4-D4E3-8F92-363E38508CB2|2026-10-11T14:15:41|SPR190613I52|zE7qxmudN9LYRUabHaPJXae6hd8hxAnJo0GHBmLvqU3Dj0pR/mGHdixRnrdO/L3DFSpUz0NyXcVyZEmahJF9EiDjkLjgBxS15T769jB7jA1/MaHTlY2pi/Mi4/7TCd3WApLmaTtlmbV1o/XaTpi4grv0DwREupZYhacIeqM/AzI7IakfJZbJlxBNNyWjDOUTB/thsQtwiOm7vN6G39Dm++eSXWd2FzfwqW+XL8l7JrUuveV3mGV7ZV0K9OcGANqufHg98BK9P2ztwM0XbP53UPdJwdB83ZMVsD9yyCSqeKuQkMifzRAqckLi3MvYl5CI/c/bKzTYWCx/G7UkKWfN/g==|00001000000509465028||"    },    "issuer": {      "rfc": "HEGL900101K44",      "name": "JOSE LUIS HERNANDEZ GARCIA",      "tax_regime": "612",      "postal_code": "06700"    },    "receiver": {      "rfc": "LOMG900102Q74",      "name": "MARIA GUADALUPE LOPEZ MARTINEZ",      "tax_regime": "626",      "postal_code": "44100",      "email": null    },    "third_party": null,    "place_of_issue": "06700",    "items": [      {        "description": "Chilaquiles verdes con pollo",        "quantity": 1,        "unit_code": "E48",        "unit_price": "142.24",        "product_code": "90101500",        "tax_object": "02",        "vat_rate": "0.16",        "subtotal": "142.24",        "vat": "22.76",        "withholdings": null      },      {        "description": "Café americano",        "quantity": 2,        "unit_code": "E48",        "unit_price": "36.64",        "product_code": "90101500",        "tax_object": "02",        "vat_rate": "0.16",        "subtotal": "73.28",        "vat": "11.72",        "withholdings": null      }    ],    "related_invoices": [],    "payment_method": "PUE",    "payment_form": "04",    "cfdi_use": "G03",    "currency": "MXN",    "subtotal": "215.52",    "vat": "34.48",    "withholdings": null,    "total": "250.00",    "cancellation": null,    "metadata": {},    "created_at": "2026-10-11T20:15:37.902Z",    "stamped_at": "2026-10-11T20:15:41.116Z",    "updated_at": "2026-10-11T20:15:41.116Z"  },  "created_at": "2026-10-11T19:42:11.318Z",  "updated_at": "2026-10-11T20:15:41.116Z"}

© 2026 Kuarto Inc. (heru)heru.appQuestions about your integration? Contact your heru account team.