Endpoints for managing Accounts, Invoices, Estimates, and organization data in InvoiceXpress.
InvoiceXpress API (2.0.0)
- Mock serverhttps://docs.invoicexpress.com/_mock/invoices.json
- Production Serverhttps://your-account.app.invoicexpress.com/invoices.json
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.invoicexpress.com/_mock/invoices.json?api_key=YOUR_API_KEY%2CYOUR_API_KEY_HERE&type%5B%5D=Invoice&status%5B%5D=sent&non_archived=true&archived=true&text=string&reference=string&date%5Bfrom%5D=string&date%5Bto%5D=string&due_date%5Bfrom%5D=string&due_date%5Bto%5D=string&total_before_taxes%5Bfrom%5D=0&total_before_taxes%5Bto%5D=0&page=0&per_page=0'SUCCESS
Creates a new quote, proforma or fees_note.
- ABCD1234-1 (or similar) - Unique document identifier to the Tax Authority, when the sequence is registered.
- N/D - The document's sequence is relevant for ATCUD but is not registered in the Tax Authority.
- N/A - The document's sequence is not relevant for ATCUD and is not registered in the Tax Authority.
{ "invoices": [ { … } ], "pagination": { "total_entries": 50, "per_page": 20, "current_page": 1, "total_pages": 3 } }
Request
Creates a new invoice, simplified_invoice, invoice_receipt, credit_note or debit_note.
This method also allows to create a new client and/or new items in the same request with the following behavior:
- If the client name does not exist, a new one is created.
- If items do not exist with the given names, new ones will be created.
- If item name already exists, the item is updated with the new values.
Regarding item taxes, if the tax name is not found, the default tax is applyed to that item. Portuguese accounts should also send the IVA exemption reason if the invoice contains exempt items (IVA 0%).
Note: Simplified Invoices are only available in Portugal.
Invoice Body
Client Details.
- Mock serverhttps://docs.invoicexpress.com/_mock/{invoices-type}.json
- Production Serverhttps://your-account.app.invoicexpress.com/{invoices-type}.json
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://docs.invoicexpress.com/_mock/{invoices-type}.json?api_key=YOUR_API_KEY%2CYOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"invoice": {
"date": "22/11/2025",
"due_date": "22/12/2025",
"reference": "PO-999",
"observations": "Services rendered",
"retention": "0",
"tax_exemption": "M00",
"sequence_id": "123456",
"manual_sequence_number": "string",
"client": {
"name": "Client A",
"code": "CLI-001",
"email": "client@mail.com",
"address": "Street A",
"city": "Lisbon",
"postal_code": "1000-100",
"fiscal_id": "500999888",
"country": "Portugal",
"website": "www.client-a.com",
"phone": "912345678",
"fax": "212345678",
"observations": "VIP Client"
},
"items": [
{
"name": "Consulting",
"description": "IT Services",
"unit_price": 50,
"quantity": 2,
"unit": "hour",
"discount": 0,
"tax": {
"name": "IVA23"
}
}
],
"mb_reference": "1",
"owner_invoice_id": 1049,
"tax_exemption_reason": "M00",
"currency_code": "USD",
"rate": "1.10",
"plugin_id": "plugin_123",
"global_discount": {
"value_type": "percentage",
"value": 10
}
},
"proprietary_uid": "uuid-123"
}'SUCCESS
Creates a new quote, proforma or fees_note.
- ABCD1234-1 (or similar) - Unique document identifier to the Tax Authority, when the sequence is registered.
- N/D - The document's sequence is relevant for ATCUD but is not registered in the Tax Authority.
- N/A - The document's sequence is not relevant for ATCUD and is not registered in the Tax Authority.
{ "invoice": { "id": 2137287, "status": "final", "archived": false, "type": "Invoice", "sequence_number": "6/G", "inverted_sequence_number": "G/6", "atcud": "ABCD1234-6", "sequence_id": "12345", "tax_exemption": "M01", "date": "04/08/2016", "due_date": "19/08/2016", "reference": "ref123", "observations": "Observations", "retention": "0", "permalink": "https://www.app.invoicexpress.com/documents/...", "saft_hash": "J4ay", "sum": 24.39, "discount": 0, "before_taxes": 24.39, "taxes": 5.61, "total": 30, "currency": "Euro", "client": { … }, "items": [ … ], "mb_reference": { … } } }
- Mock serverhttps://docs.invoicexpress.com/_mock/{invoices-type}/{document-id}.json
- Production Serverhttps://your-account.app.invoicexpress.com/{invoices-type}/{document-id}.json
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.invoicexpress.com/_mock/{invoices-type}/1050.json?api_key=YOUR_API_KEY%2CYOUR_API_KEY_HERE'SUCCESS
Creates a new quote, proforma or fees_note.
- ABCD1234-1 (or similar) - Unique document identifier to the Tax Authority, when the sequence is registered.
- N/D - The document's sequence is relevant for ATCUD but is not registered in the Tax Authority.
- N/A - The document's sequence is not relevant for ATCUD and is not registered in the Tax Authority.
{ "invoice": { "id": 2137287, "status": "final", "archived": false, "type": "Invoice", "sequence_number": "6/G", "inverted_sequence_number": "G/6", "atcud": "ABCD1234-6", "sequence_id": "12345", "tax_exemption": "M01", "date": "04/08/2016", "due_date": "19/08/2016", "reference": "ref123", "observations": "Observations", "retention": "0", "permalink": "https://www.app.invoicexpress.com/documents/...", "saft_hash": "J4ay", "sum": 24.39, "discount": 0, "before_taxes": 24.39, "taxes": 5.61, "total": 30, "currency": "Euro", "client": { … }, "items": [ … ], "mb_reference": { … } } }
Request
Updates a new invoice, simplified_invoice, invoice_receipt, credit_note or debit_note.
This method also allows to create a new client and/or new items in the same request with the following behavior:
- If the client name does not exist, a new one is created.
- If items do not exist with the given names, new ones will be created.
- If item name already exists, the item is updated with the new values.
Regarding item taxes, if the tax name is not found, the default tax is applyed to that item. Portuguese accounts should also send the IVA exemption reason if the invoice contains exempt items (IVA 0%).
Note: Simplified Invoices are only available in Portugal.
The type of the invoice document.
Invoice Body
Client Details.
- Mock serverhttps://docs.invoicexpress.com/_mock/{invoices-type}/{document-id}.json
- Production Serverhttps://your-account.app.invoicexpress.com/{invoices-type}/{document-id}.json
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PUT \
'https://docs.invoicexpress.com/_mock/{invoices-type}/1050.json?api_key=YOUR_API_KEY%2CYOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"invoice": {
"date": "22/11/2025",
"due_date": "22/12/2025",
"reference": "PO-999",
"observations": "Services rendered",
"retention": "0",
"tax_exemption": "M00",
"sequence_id": "123456",
"manual_sequence_number": "string",
"client": {
"name": "Client A",
"code": "CLI-001",
"email": "client@mail.com",
"address": "Street A",
"city": "Lisbon",
"postal_code": "1000-100",
"fiscal_id": "500999888",
"country": "Portugal",
"website": "www.client-a.com",
"phone": "912345678",
"fax": "212345678",
"observations": "VIP Client"
},
"items": [
{
"name": "Consulting",
"description": "IT Services",
"unit_price": 50,
"quantity": 2,
"unit": "hour",
"discount": 0,
"tax": {
"name": "IVA23"
}
}
],
"mb_reference": "1",
"owner_invoice_id": 1049,
"tax_exemption_reason": "M00",
"currency_code": "USD",
"rate": "1.10",
"plugin_id": "plugin_123",
"global_discount": {
"value_type": "percentage",
"value": 10
}
}
}'SUCCESS
Creates a new quote, proforma or fees_note.
- ABCD1234-1 (or similar) - Unique document identifier to the Tax Authority, when the sequence is registered.
- N/D - The document's sequence is relevant for ATCUD but is not registered in the Tax Authority.
- N/A - The document's sequence is not relevant for ATCUD and is not registered in the Tax Authority.
{ "invoice": { "id": 2137287, "status": "final", "archived": false, "type": "Invoice", "sequence_number": "6/G", "inverted_sequence_number": "G/6", "atcud": "ABCD1234-6", "sequence_id": "12345", "tax_exemption": "M01", "date": "04/08/2016", "due_date": "19/08/2016", "reference": "ref123", "observations": "Observations", "retention": "0", "permalink": "https://www.app.invoicexpress.com/documents/...", "saft_hash": "J4ay", "sum": 24.39, "discount": 0, "before_taxes": 24.39, "taxes": 5.61, "total": 30, "currency": "Euro", "client": { … }, "items": [ … ], "mb_reference": { … } } }
Request
Changes the state of invoice documents.
| From | To | State on Request Body | Notes |
|---|---|---|---|
| draft | final | finalized | All documents. |
| draft | settled | finalized | Only invoice_receipt. |
| draft | deleted | deleted | All documents. |
| final | canceled | canceled | All documents. |
| settled | canceled | canceled | Only invoice_receipt. |
| final | settled | settled | All documents. |
| settled | final | unsettled | Only credit_note and debit_note. |
The type of the invoice document.
- Mock serverhttps://docs.invoicexpress.com/_mock/{invoices-type}/{document-id}/change-state.json
- Production Serverhttps://your-account.app.invoicexpress.com/{invoices-type}/{document-id}/change-state.json
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PUT \
'https://docs.invoicexpress.com/_mock/{invoices-type}/1050/change-state.json?api_key=YOUR_API_KEY%2CYOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"invoice": {
"state": "finalized",
"message": "Wrong value"
}
}'SUCCESS
Creates a new quote, proforma or fees_note.
- ABCD1234-1 (or similar) - Unique document identifier to the Tax Authority, when the sequence is registered.
- N/D - The document's sequence is relevant for ATCUD but is not registered in the Tax Authority.
- N/A - The document's sequence is not relevant for ATCUD and is not registered in the Tax Authority.
{ "invoice": { "id": 2137287, "status": "final", "archived": false, "type": "Invoice", "sequence_number": "6/G", "inverted_sequence_number": "G/6", "atcud": "ABCD1234-6", "sequence_id": "12345", "tax_exemption": "M01", "date": "04/08/2016", "due_date": "19/08/2016", "reference": "ref123", "observations": "Observations", "retention": "0", "permalink": "https://www.app.invoicexpress.com/documents/...", "saft_hash": "J4ay", "sum": 24.39, "discount": 0, "before_taxes": 24.39, "taxes": 5.61, "total": 30, "currency": "Euro", "client": { … }, "items": [ … ], "mb_reference": { … } } }
The type of the invoice document.
- Mock serverhttps://docs.invoicexpress.com/_mock/{invoices-type}/{document-id}/email-document.json
- Production Serverhttps://your-account.app.invoicexpress.com/{invoices-type}/{document-id}/email-document.json
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PUT \
'https://docs.invoicexpress.com/_mock/{invoices-type}/1050/email-document.json?api_key=YOUR_API_KEY%2CYOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"message": {
"client": {
"email": "dest@mail.com",
"save": "1"
},
"subject": "Invoice",
"body": "Attached.",
"cc": "cc@mail.com",
"bcc": "bcc@mail.com",
"logo": "1"
}
}'- Mock serverhttps://docs.invoicexpress.com/_mock/api/pdf/{document-id}.json
- Production Serverhttps://your-account.app.invoicexpress.com/api/pdf/{document-id}.json
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.invoicexpress.com/_mock/api/pdf/1050.json?api_key=YOUR_API_KEY%2CYOUR_API_KEY_HERE&second_copy=false'{ "output": { "pdfUrl": "url.pdf" } }
- Mock serverhttps://docs.invoicexpress.com/_mock/api/qr_codes/{document-id}.json
- Production Serverhttps://your-account.app.invoicexpress.com/api/qr_codes/{document-id}.json
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.invoicexpress.com/_mock/api/qr_codes/1050.json?api_key=YOUR_API_KEY%2CYOUR_API_KEY_HERE'{ "qr_code": { "url": "url.png" } }
- Mock serverhttps://docs.invoicexpress.com/_mock/documents/{document-id}/partial_payments.json
- Production Serverhttps://your-account.app.invoicexpress.com/documents/{document-id}/partial_payments.json
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://docs.invoicexpress.com/_mock/documents/1050/partial_payments.json?api_key=YOUR_API_KEY%2CYOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"partial_payment": {
"amount": 10,
"payment_mechanism": "TB",
"note": "Transfer",
"serie": "string",
"payment_date": "22/11/2025"
}
}'SUCCESS
Creates a new quote, proforma or fees_note.
- ABCD1234-1 (or similar) - Unique document identifier to the Tax Authority, when the sequence is registered.
- N/D - The document's sequence is relevant for ATCUD but is not registered in the Tax Authority.
- N/A - The document's sequence is not relevant for ATCUD and is not registered in the Tax Authority.
{ "receipt": { "id": 2137287, "status": "final", "archived": false, "type": "Invoice", "sequence_number": "6/G", "inverted_sequence_number": "G/6", "atcud": "ABCD1234-6", "sequence_id": "12345", "tax_exemption": "M01", "date": "04/08/2016", "due_date": "19/08/2016", "reference": "ref123", "observations": "Observations", "retention": "0", "permalink": "https://www.app.invoicexpress.com/documents/...", "saft_hash": "J4ay", "sum": 24.39, "discount": 0, "before_taxes": 24.39, "taxes": 5.61, "total": 30, "currency": "Euro", "client": { … }, "items": [ … ], "mb_reference": { … } } }
- Mock serverhttps://docs.invoicexpress.com/_mock/receipts/{receipt-id}/change-state.json
- Production Serverhttps://your-account.app.invoicexpress.com/receipts/{receipt-id}/change-state.json
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PUT \
'https://docs.invoicexpress.com/_mock/receipts/42/change-state.json?api_key=YOUR_API_KEY%2CYOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"receipt": {
"state": "canceled",
"message": "Error"
}
}'{ "receipt": { "id": 2137287, "status": "final", "archived": false, "type": "Invoice", "sequence_number": "6/G", "inverted_sequence_number": "G/6", "atcud": "ABCD1234-6", "sequence_id": "12345", "tax_exemption": "M01", "date": "04/08/2016", "due_date": "19/08/2016", "reference": "ref123", "observations": "Observations", "retention": "0", "permalink": "https://www.app.invoicexpress.com/documents/...", "saft_hash": "J4ay", "sum": 24.39, "discount": 0, "before_taxes": 24.39, "taxes": 5.61, "total": 30, "currency": "Euro", "client": { … }, "items": [ … ], "mb_reference": { … } } }