Create, update and get info about your account.
InvoiceXpress API (2.0.0)
Endpoints for managing Accounts, Invoices, Estimates, and organization data in InvoiceXpress.
Welcome to our API v2 in JSON
If you're reading this, let me guess, you need to issue invoices but don't want to lose focus from building a great solution and writing amazing code. Did we cover your scenario? Ok, great. Let's do this.
Quick Start
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" } }