Endpoints for managing Accounts, Invoices, Estimates, and organization data in InvoiceXpress.
InvoiceXpress API (2.0.0)
Download OpenAPI description
Overview
InvoiceXpress API Support
Languages
Servers
Mock server
https://docs.invoicexpress.com/_mock/
Production Server
https://{account_name}.app.invoicexpress.com/
- Mock serverhttps://docs.invoicexpress.com/_mock/{estimates-type}.json
- Production Serverhttps://your-account.app.invoicexpress.com/{estimates-type}.json
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://docs.invoicexpress.com/_mock/{estimates-type}.json?api_key=YOUR_API_KEY%2CYOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"quote": {
"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",
"auto_add_related_document": "0",
"tax_exemption_reason": "M00"
}
}'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.
Response
application/json
{ "quote": { "id": 541791, "status": "final", "archived": false, "type": "Quote", "sequence_number": "1/A", "inverted_sequence_number": "A/1", "atcud": "ABCD1234-1", "date": "12/06/2017", "due_date": "12/06/2017", "reference": "foo", "observations": "foo", "retention": "foo", "permalink": "https://www.app.invoicexpress.com/documents/541791f16ae45a73b703c684a221ef198c10020f3d56a1", "saft_hash": "NfTN", "sum": 10, "discount": 0, "before_taxes": 10, "taxes": 2.3, "total": 12.3, "currency": "Euro", "sequence_id": "12345", "tax_exemption": "M01", "client": { … }, "items": [ … ] } }
- Mock serverhttps://docs.invoicexpress.com/_mock/{estimates-type}/{document-id}.json
- Production Serverhttps://your-account.app.invoicexpress.com/{estimates-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/{estimates-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.
Response
application/json
{ "quote": { "id": 541791, "status": "final", "archived": false, "type": "Quote", "sequence_number": "1/A", "inverted_sequence_number": "A/1", "atcud": "ABCD1234-1", "date": "12/06/2017", "due_date": "12/06/2017", "reference": "foo", "observations": "foo", "retention": "foo", "permalink": "https://www.app.invoicexpress.com/documents/541791f16ae45a73b703c684a221ef198c10020f3d56a1", "saft_hash": "NfTN", "sum": 10, "discount": 0, "before_taxes": 10, "taxes": 2.3, "total": 12.3, "currency": "Euro", "sequence_id": "12345", "tax_exemption": "M01", "client": { … }, "items": [ … ] } }
- Mock serverhttps://docs.invoicexpress.com/_mock/{estimates-type}/{document-id}.json
- Production Serverhttps://your-account.app.invoicexpress.com/{estimates-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/{estimates-type}/1050.json?api_key=YOUR_API_KEY%2CYOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"quote": {
"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",
"auto_add_related_document": "0",
"tax_exemption_reason": "M00"
}
}'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.
Response
application/json
{ "quote": { "id": 541791, "status": "final", "archived": false, "type": "Quote", "sequence_number": "1/A", "inverted_sequence_number": "A/1", "atcud": "ABCD1234-1", "date": "12/06/2017", "due_date": "12/06/2017", "reference": "foo", "observations": "foo", "retention": "foo", "permalink": "https://www.app.invoicexpress.com/documents/541791f16ae45a73b703c684a221ef198c10020f3d56a1", "saft_hash": "NfTN", "sum": 10, "discount": 0, "before_taxes": 10, "taxes": 2.3, "total": 12.3, "currency": "Euro", "sequence_id": "12345", "tax_exemption": "M01", "client": { … }, "items": [ … ] } }
- Mock serverhttps://docs.invoicexpress.com/_mock/{estimates-type}/{document-id}/change-state.json
- Production Serverhttps://your-account.app.invoicexpress.com/{estimates-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/{estimates-type}/1050/change-state.json?api_key=YOUR_API_KEY%2CYOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"quote": {
"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.
Response
application/json
{ "quote": { "id": 541791, "status": "final", "archived": false, "type": "Quote", "sequence_number": "1/A", "inverted_sequence_number": "A/1", "atcud": "ABCD1234-1", "date": "12/06/2017", "due_date": "12/06/2017", "reference": "foo", "observations": "foo", "retention": "foo", "permalink": "https://www.app.invoicexpress.com/documents/541791f16ae45a73b703c684a221ef198c10020f3d56a1", "saft_hash": "NfTN", "sum": 10, "discount": 0, "before_taxes": 10, "taxes": 2.3, "total": 12.3, "currency": "Euro", "sequence_id": "12345", "tax_exemption": "M01", "client": { … }, "items": [ … ] } }
- Mock serverhttps://docs.invoicexpress.com/_mock/{estimates-type}/{document-id}/email-document.json
- Production Serverhttps://your-account.app.invoicexpress.com/{estimates-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/{estimates-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/estimates.json
- Production Serverhttps://your-account.app.invoicexpress.com/estimates.json
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.invoicexpress.com/_mock/estimates.json?api_key=YOUR_API_KEY%2CYOUR_API_KEY_HERE&type%5B%5D=Quote&status%5B%5D=sent&non_archived=true&archived=true&text=string&due_date%5Bfrom%5D=string&due_date%5Bto%5D=string&date%5Bfrom%5D=string&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.
Response
application/json
{ "estimates": [ { … } ], "pagination": { "total_entries": 50, "per_page": 20, "current_page": 1, "total_pages": 3 } }
- 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'Response
application/json
{ "output": { "pdfUrl": "url.pdf" } }