Monthly retentions report
PlannedDesigned and scheduled for the v1 API. The contract can still change; the route is not served yet.
Per worker and month: gross amounts, VAT and ISR withheld and the certificates that back them. The basis for your monthly informative return (DIAT).
Needs the reports:read scope.
oauth2 reports: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: reports:read
period?stringYYYY-MM.
OK
application/json- response
Monthly summary per worker, the basis for your informative return to the SAT (DIAT).
period?stringrows?array<>totals?curl -X GET 'https://api.dev.b2b.heru.app/v1/reports/retentions'{ "period": "2026-10", "rows": [ { "rfc": "HEGL900101K44", "name": "JOSE LUIS HERNANDEZ GARCIA", "gross": "12850.00", "vat_withheld": "1028.00", "isr_withheld": "269.85", "certificates": 1, "certificate_uuids": [ "57E1C3A9-8D02-4B6F-A41E-2C9D7F05B813" ] }, { "rfc": "FOMS900106H88", "name": "SOFIA ALEJANDRA FLORES MORALES", "gross": "9420.50", "vat_withheld": "753.64", "isr_withheld": "197.83", "certificates": 1, "certificate_uuids": [ "B04F6E21-3C7A-4D58-9E10-6A2B8C4D1F97" ] } ], "totals": { "gross": "22270.50", "vat_withheld": "1781.64", "isr_withheld": "467.68" }}Get a merchant's brandGET
Returns the brand heru applies to the merchant's invoicing page and emails: each field is the merchant's own value or, when it set none, its company's, then its organization's. `sources` says where each field comes from; `default` means heru's own (the field is `null`). Needs the `branding:read` scope.
Usage reportGET
What you used in the period, per service. It matches your invoice from heru. Needs the `reports:read` scope.