Skip to content

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

  1. Sign up FREE for 30 days
  2. Get your API key
  3. Create an Invoice

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(invoices_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(invoices_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

SAF-T

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

Operations

Clients

A Client is an entity you send invoices to.

Operations

Items

An Item is the product or service you invoice.

Operations

Treasury

Section dedicated to treasury movements.

Operations