create_invoice
Send a Denmark B2B electronic invoice over the Peppol network in Peppol BIS 3.0 / EN 16931 format via Storecove (a certified Peppol Access Point). Denmark delivers over Peppol / NemHandel; the Bookkeeping Act (Bogforingsloven) phases in mandatory digital bookkeeping and structured e-invoice send/receive: from 2024 for reporting-obligated companies (classes B/C/D), extending from 2026-01 to class A businesses with revenue above DKK 300,000. Builds the structured invoice JSON from seller + buyer (name, Danish VAT DKxxxxxxxx and/or CVR number, address) and line items (description, quantity, net unit price, VAT rate 25/0), computes the Danish VAT (moms) breakdown, and submits it under YOUR OWN Storecove credentials. Bring your own credential as header x-storecove-key. You must also pass seller_legal_entity_id — the legalEntityId of the sender you created in your Storecove account. Danish VAT (moms) rates: 25 (single standard rate), 0 (zero-rated/exempt/reverse charge). Amounts in DKK. Delivery over Peppol is asynchronous: this returns a submission guid — use get_delivery_evidence with it to fetch the delivery proof/status. Tip: call check_recipient first to confirm the buyer is reachable on Peppol. There is no cancel over Peppol: to reverse an invoice you issue a credit note (a new invoice).
Parameters24
| seller_legal_entity_id | string | required | REQUIRED. The Storecove legalEntityId of the sender (created in your Storecove account under Senders). Numeric id, passed through to Storecove. |
| seller_name | string | required | Seller legal/company name. |
| seller_vat | string | optional | Seller Danish VAT number, format DKxxxxxxxx (DK + 8 digits). Provide this and/or seller_cvr. |
| seller_cvr | string | optional | Optional seller Danish CVR number (Central Business Register), 8 digits. |
| seller_address | string | required | Seller street address. |
| seller_city | string | required | Seller city. |
| seller_zip | string | required | Seller postal code. |
| seller_country | string | optional | Seller country code. Default DK. |
| customer_name | string | required | Buyer legal/company name. |
| customer_vat | string | optional | Buyer Danish VAT number DKxxxxxxxx. Provide this and/or customer_cvr (used to route on Peppol if no explicit recipient id is given). |
| customer_cvr | string | optional | Optional buyer Danish CVR number (Central Business Register), 8 digits. |
| customer_address | string | required | Buyer street address. |
| customer_city | string | required | Buyer city. |
| customer_zip | string | required | Buyer postal code. |
| customer_country | string | optional | Buyer country code. Default DK. |
| recipient_peppol_scheme | string | optional | Optional explicit Peppol routing scheme (EAS/ISO6523). Denmark: 0184 (DK:CVR). Default 0184 when routing by CVR number. |
| recipient_peppol_id | string | optional | Optional explicit Peppol participant identifier to route to (overrides deriving from the customer CVR/VAT). |
| recipient_email | string | optional | Optional email fallback — used if the recipient is not on Peppol (Storecove can email a copy). |
| invoice_number | string | optional | Invoice number. Auto-generated if omitted. |
| issue_date | string | optional | Invoice issue date, YYYY-MM-DD. Default: today (UTC). |
| due_date | string | optional | Optional payment due date, YYYY-MM-DD. |
| currency | string | optional | Document currency. Default DKK. |
| note | string | optional | Optional free-text note on the invoice. |
| lines | array | required | Invoice line items. Each: description, unit_price (net, VAT-exclusive, DKK), vat_rate (25|0), optional quantity (default 1), optional tax_category (S standard / Z zero-rated / E exempt / AE reverse charge; default S for rate>0, Z for rate 0), optional item_name. |
Raw schema
{
"type": "object",
"properties": {
"seller_legal_entity_id": {
"type": "string",
"description": "REQUIRED. The Storecove legalEntityId of the sender (created in your Storecove account under Senders). Numeric id, passed through to Storecove."
},
"seller_name": {
"type": "string",
"description": "Seller legal/company name."
},
"seller_vat": {
"type": "string",
"description": "Seller Danish VAT number, format DKxxxxxxxx (DK + 8 digits). Provide this and/or seller_cvr."
},
"seller_cvr": {
"type": "string",
"description": "Optional seller Danish CVR number (Central Business Register), 8 digits."
},
"seller_address": {
"type": "string",
"description": "Seller street address."
},
"seller_city": {
"type": "string",
"description": "Seller city."
},
"seller_zip": {
"type": "string",
"description": "Seller postal code."
},
"seller_country": {
"type": "string",
"description": "Seller country code. Default DK."
},
"customer_name": {
"type": "string",
"description": "Buyer legal/company name."
},
"customer_vat": {
"type": "string",
"description": "Buyer Danish VAT number DKxxxxxxxx. Provide this and/or customer_cvr (used to route on Peppol if no explicit recipient id is given)."
},
"customer_cvr": {
"type": "string",
"description": "Optional buyer Danish CVR number (Central Business Register), 8 digits."
},
"customer_address": {
"type": "string",
"description": "Buyer street address."
},
"customer_city": {
"type": "string",
"description": "Buyer city."
},
"customer_zip": {
"type": "string",
"description": "Buyer postal code."
},
"customer_country": {
"type": "string",
"description": "Buyer country code. Default DK."
},
"recipient_peppol_scheme": {
"type": "string",
"description": "Optional explicit Peppol routing scheme (EAS/ISO6523). Denmark: 0184 (DK:CVR). Default 0184 when routing by CVR number."
},
"recipient_peppol_id": {
"type": "string",
"description": "Optional explicit Peppol participant identifier to route to (overrides deriving from the customer CVR/VAT)."
},
"recipient_email": {
"type": "string",
"description": "Optional email fallback — used if the recipient is not on Peppol (Storecove can email a copy)."
},
"invoice_number": {
"type": "string",
"description": "Invoice number. Auto-generated if omitted."
},
"issue_date": {
"type": "string",
"description": "Invoice issue date, YYYY-MM-DD. Default: today (UTC)."
},
"due_date": {
"type": "string",
"description": "Optional payment due date, YYYY-MM-DD."
},
"currency": {
"type": "string",
"description": "Document currency. Default DKK."
},
"note": {
"type": "string",
"description": "Optional free-text note on the invoice."
},
"lines": {
"type": "array",
"minItems": 1,
"description": "Invoice line items. Each: description, unit_price (net, VAT-exclusive, DKK), vat_rate (25|0), optional quantity (default 1), optional tax_category (S standard / Z zero-rated / E exempt / AE reverse charge; default S for rate>0, Z for rate 0), optional item_name.",
"items": {
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "Line description."
},
"unit_price": {
"type": "number",
"description": "Net unit price in DKK, VAT-exclusive."
},
"vat_rate": {
"type": "number",
"description": "Danish VAT (moms) rate percent: 25 (standard) or 0."
},
"quantity": {
"type": "number",
"description": "Quantity. Default 1."
},
"tax_category": {
"type": "string",
"description": "Optional EN 16931 tax category: S / Z / E / AE. Default derived from vat_rate."
},
"item_name": {
"type": "string",
"description": "Optional item name (defaults to description)."
}
},
"required": [
"description",
"unit_price",
"vat_rate"
]
}
}
},
"required": [
"seller_legal_entity_id",
"seller_name",
"seller_address",
"seller_city",
"seller_zip",
"customer_name",
"customer_address",
"customer_city",
"customer_zip",
"lines"
]
}