Skip to content

InvoiceXpress API (2.0.0)

Endpoints for managing Accounts, Invoices, Estimates, and organization data in InvoiceXpress.

Download OpenAPI description
Overview
InvoiceXpress API Support
Languages
Servers
Mock server
https://docs.invoicexpress.com/_mock/
Production Server
https://{account_name}.app.invoicexpress.com/

Accounts

Create, update and get info about your account.

Operations

Invoices

Create invoices, invoice receipts, simplified invoices, vat moss invoices, credit notes & debit notes and send them to your clients.

Operations

Estimates

Create quotes, proformas or fees notes and send them to your clients.

Operations

Create Estimate

Request

Creates a new quote, proforma or fees_note.

Security
apiKeyAuth
Path
estimates-typestringrequired

The type of the estimate document.

Enum"quotes""proformas""fees_notes"
Query
api_keystringrequired

Your API Key.

Example: api_key=YOUR_API_KEY
Bodyapplication/jsonrequired
quoteobjectrequired
quote.​datestring

dd/mm/yyyy

Example: "22/11/2025"
quote.​due_datestring

dd/mm/yyyy

Example: "22/12/2025"
quote.​referencestring
Example: "PO-999"
quote.​observationsstring
Example: "Services rendered"
quote.​retentionstring
Example: "0"
quote.​tax_exemptionstring
Example: "M00"
quote.​sequence_idstring
Example: "123456"
quote.​manual_sequence_numberstring
quote.​clientobject(ClientRequest)required

Client Details.

quote.​client.​namestringrequired
Example: "Client A"
quote.​client.​codestringrequired
Example: "CLI-001"
quote.​client.​emailstring
Example: "client@mail.com"
quote.​client.​addressstring
Example: "Street A"
quote.​client.​citystring
Example: "Lisbon"
quote.​client.​postal_codestring
Example: "1000-100"
quote.​client.​fiscal_idstring
Example: "500999888"
quote.​client.​countrystring
Example: "Portugal"
quote.​client.​websitestring
Example: "www.client-a.com"
quote.​client.​phonestring
Example: "912345678"
quote.​client.​faxstring
Example: "212345678"
quote.​client.​observationsstring
Example: "VIP Client"
quote.​itemsArray of objects(EstimatesItemRequest)required
quote.​items[].​namestringrequired
Example: "Consulting"
quote.​items[].​descriptionstringrequired
Example: "IT Services"
quote.​items[].​unit_pricenumberrequired
Example: 50
quote.​items[].​quantitynumberrequired
Example: 2
quote.​items[].​unitstring
Example: "hour"
quote.​items[].​discountnumber
Example: 0
quote.​items[].​taxobject(EstimatesTaxRequest)
quote.​mb_referencestring
Enum"0""1"
Example: "1"
quote.​auto_add_related_documentstring
Example: "0"
quote.​tax_exemption_reasonstring
Example: "M00"
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"
    }
  }'

Responses

SUCCESS

Creates a new quote, proforma or fees_note.

Possible values for field atcud:

  • 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.
Bodyapplication/json
quoteobject
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": [] } }

Get Estimate

Request

Security
apiKeyAuth
Path
document-idintegerrequired

The ID of the document.

Example: 1050
estimates-typestringrequired

The type of the estimate document.

Enum"quotes""proformas""fees_notes"
Query
api_keystringrequired

Your API Key.

Example: api_key=YOUR_API_KEY
curl -i -X GET \
  'https://docs.invoicexpress.com/_mock/{estimates-type}/1050.json?api_key=YOUR_API_KEY%2CYOUR_API_KEY_HERE'

Responses

SUCCESS

Creates a new quote, proforma or fees_note.

Possible values for field atcud:

  • 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.
Bodyapplication/json
quoteobject
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": [] } }

Update Estimate

Request

Updates a quote, proforma or fees_note.

Security
apiKeyAuth
Path
estimates-typestringrequired

The type of the estimate document.

Enum"quotes""proformas""fees_notes"
document-idintegerrequired

The ID of the document.

Example: 1050
Query
api_keystringrequired

Your API Key.

Example: api_key=YOUR_API_KEY
Bodyapplication/jsonrequired
quoteobjectrequired
quote.​datestring

dd/mm/yyyy

Example: "22/11/2025"
quote.​due_datestring

dd/mm/yyyy

Example: "22/12/2025"
quote.​referencestring
Example: "PO-999"
quote.​observationsstring
Example: "Services rendered"
quote.​retentionstring
Example: "0"
quote.​tax_exemptionstring
Example: "M00"
quote.​sequence_idstring
Example: "123456"
quote.​manual_sequence_numberstring
quote.​clientobject(ClientRequest)required

Client Details.

quote.​client.​namestringrequired
Example: "Client A"
quote.​client.​codestringrequired
Example: "CLI-001"
quote.​client.​emailstring
Example: "client@mail.com"
quote.​client.​addressstring
Example: "Street A"
quote.​client.​citystring
Example: "Lisbon"
quote.​client.​postal_codestring
Example: "1000-100"
quote.​client.​fiscal_idstring
Example: "500999888"
quote.​client.​countrystring
Example: "Portugal"
quote.​client.​websitestring
Example: "www.client-a.com"
quote.​client.​phonestring
Example: "912345678"
quote.​client.​faxstring
Example: "212345678"
quote.​client.​observationsstring
Example: "VIP Client"
quote.​itemsArray of objects(EstimatesItemRequest)required
quote.​items[].​namestringrequired
Example: "Consulting"
quote.​items[].​descriptionstringrequired
Example: "IT Services"
quote.​items[].​unit_pricenumberrequired
Example: 50
quote.​items[].​quantitynumberrequired
Example: 2
quote.​items[].​unitstring
Example: "hour"
quote.​items[].​discountnumber
Example: 0
quote.​items[].​taxobject(EstimatesTaxRequest)
quote.​mb_referencestring
Enum"0""1"
Example: "1"
quote.​auto_add_related_documentstring
Example: "0"
quote.​tax_exemption_reasonstring
Example: "M00"
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"
    }
  }'

Responses

SUCCESS

Creates a new quote, proforma or fees_note.

Possible values for field atcud:

  • 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.
Bodyapplication/json
quoteobject
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": [] } }

Change Estimate State

Request

Changes the state of estimate documents (quotes, proformas, fees_notes).

FromToEvent
Draftfinalfinalized
Draftdeleteddeleted
finalAcceptedaccept
finalrefusedrefuse
finalcanceledcanceled
Acceptedrefusedrefuse
refusedAcceptedaccept
Acceptedcanceledcanceled
refusedcanceledcanceled
Security
apiKeyAuth
Path
estimates-typestringrequired

The type of the estimate document.

Enum"quotes""proformas""fees_notes"
document-idintegerrequired

The ID of the document.

Example: 1050
Query
api_keystringrequired

Your API Key.

Example: api_key=YOUR_API_KEY
Bodyapplication/jsonrequired
quoteobjectrequired
quote.​statestringrequired
Enum"finalized""canceled""deleted""accepted""refused"
Example: "finalized"
quote.​messagestring
Example: "Wrong value"
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"
    }
  }'

Responses

SUCCESS

Creates a new quote, proforma or fees_note.

Possible values for field atcud:

  • 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.
Bodyapplication/json
quoteobject
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": [] } }

Send Estimate by Email

Request

Security
apiKeyAuth
Path
estimates-typestringrequired

The type of the estimate document.

Enum"quotes""proformas""fees_notes"
document-idintegerrequired

The ID of the document.

Example: 1050
Query
api_keystringrequired

Your API Key.

Example: api_key=YOUR_API_KEY
Bodyapplication/jsonrequired
messageobjectrequired
message.​clientobjectrequired
message.​client.​emailstringrequired
Example: "dest@mail.com"
message.​client.​savestringrequired
Enum"0""1"
Example: "1"
message.​subjectstring
Example: "Invoice"
message.​bodystring
Example: "Attached."
message.​ccstring
Example: "cc@mail.com"
message.​bccstring
Example: "bcc@mail.com"
message.​logostring
Enum"0""1"
Example: "1"
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"
    }
  }'

Responses

SUCCESS

Response
No content

List All

Request

Returns a list of estimates (Quotes, Proformas, Fees Notes).

Security
apiKeyAuth
Query
api_keystringrequired

Your API Key.

Example: api_key=YOUR_API_KEY
Query Parametersobject(EstimateFilters)

Click to expand options.

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'

Responses

SUCCESS

Creates a new quote, proforma or fees_note.

Possible values for field atcud:

  • 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.
Bodyapplication/json
estimatesArray of objects
paginationobject(Pagination)
Response
application/json
{ "estimates": [ {} ], "pagination": { "total_entries": 50, "per_page": 20, "current_page": 1, "total_pages": 3 } }

Generate PDF

Request

Security
apiKeyAuth
Path
document-idintegerrequired

The ID of the document.

Example: 1050
Query
api_keystringrequired

Your API Key.

Example: api_key=YOUR_API_KEY
second_copyboolean
Example: second_copy=false
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'

Responses

SUCCESS

Bodyapplication/json
outputobject
Response
application/json
{ "output": { "pdfUrl": "url.pdf" } }

Guides

Create shippings, transports & devolutions and send them to your clients.

Operations

Sequences

A Sequence is used to group invoices in a sequential order.

Operations

Taxes

A Tax is applied to invoice items when creating invoices.

Operations

SAFT

Export the Standard Audit File for Tax (SAF-T PT) required by the Portuguese Tax Authority.

SAF-T

Operations