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

Documentation

Reference tables for Portuguese VAT (IVA) exemptions, payment mechanism codes used for partial payments, and accepted countries when creating a client or an account.

Authentication

In order to authenticate a user through our API, an API key must be used. All API endpoints are available via HTTPS. HTTP access is denied. Each API key authenticates a user inside an account, and it's composed by arbitrary characters.

This key must be passed on the query string in each HTTPS request to authenticate the user. Although all endpoints are accessed through HTTPS, please keep this token as secure as possible in order to avoid third party's to access your InvoiceXpress data.

We strongly recommend you re-generate your API Key from time to time.

Example:

https://ACCOUNT_NAME.app.invoicexpress.com/invoices.json?api_key=API_KEY

You can find your ACCOUNT_NAME and API_KEY here: https://www.app.invoicexpress.com/users/api

On POST and PUT requests do not forget to specify on the Header:

Content-Type: application/json

IVA exemption codes
CodeDescription on the InvoiceWhere does it apply?
M01Artigo 16.°, n.° 6 do CIVAArtigo 16.°, n.° 6, alíneas a) a d) do CIVA
M02Artigo 6.° do Decreto-Lei n.° 198/90, de 19 de junhoArtigo 6.° do Decreto-Lei n.° 198/90, de 19 de junho
M04Isento artigo 13.° do CIVAArtigo 13.° do CIVA
M05Isento artigo 14.° do CIVAArtigo 14.° do CIVA
M06Isento artigo 15.° do CIVAArtigo 15.° do CIVA
M07Isento artigo 9.° do CIVAArtigo 9.° do CIVA
M09IVA – não confere direito a deduçãoArtigo 62.° alínea b) do CIVA
M10IVA – regime de isençãoArtigo 57.° do CIVA
M11Regime particular do tabacoDecreto-Lei n.° 346/85, de 23 de agosto
M12Regime da margem de lucro – Agências de viagensDecreto-Lei n.° 221/85, de 3 de julho
M13Regime da margem de lucro – Bens em segunda mãoDecreto-Lei n.° 199/96, de 18 de outubro
M14Regime da margem de lucro – Objetos de arteDecreto-Lei n.° 199/96, de 18 de outubro
M15Regime da margem de lucro – Objetos de coleção e antiguidadesDecreto-Lei n.° 199/96, de 18 de outubro
M16Isento artigo 14.° do RITIArtigo 14.° do RITI
M19Outras isençõesIsenções temporárias determinadas em diploma próprio
M20IVA – regime forfetárioArtigo 59.°-D n.°2 do CIVA
M21IVA – não confere direito à dedução (ou expressão similar)Artigo 72.° n.° 4 do CIVA
M25Mercadorias à consignaçãoArtigo 38.° n.° 1 alínea a)
M30IVA – autoliquidaçãoArtigo 2.° n.° 1 alínea i) do CIVA
M31IVA – autoliquidaçãoArtigo 2.° n.° 1 alínea j) do CIVA
M32IVA – autoliquidaçãoArtigo 2.° n.° 1 alínea I) do CIVA
M33IVA – autoliquidaçãoArtigo 2.° n.° 1 alínea m) do CIVA
M40IVA – autoliquidaçãoArtigo 6.° n.° 6 alínea a) do CIVA, a contrário
M41IVA – autoliquidaçãoArtigo 8.° n.° 3 do RITI
M42IVA – autoliquidaçãoDecreto-Lei n.° 21/2007, de 29 de janeiro
M43IVA – autoliquidaçãoDecreto-Lei n.° 362/99, de 16 de setembro
M99Não sujeito ou não tributadoOutras situações de não liquidação do imposto (Exemplos: artigo 2.°, n.° 2 ; artigo 3.°, n.°s 4, 6 e 7; artigo 4.°, n.° 5, todos do CIVA)
Payment mechanisms

This list shows the possible values for the payment mechanism when doing a partial payment:

  • CC: Credit card
  • CD: Debit card
  • CH: Bank check
  • CO: Check or voucher
  • CS: Current account balance compensation
  • DE: e-Cash
  • LC: Commercial paper
  • MB: Multibanco payment references
  • NU: Cash
  • OU: Other methods not mentioned here
  • PR: Exchange of properties
  • TB: Bank transfer or authorized direct debit
  • TR: Restaurant ticket
Country list

This list shows the countries accepted when creating a client or an account:

  • Portugal
  • Ireland
  • UK
  • Canada
  • United States
  • Afghanistan
  • Albania
  • Algeria
  • American Samoa
  • Andorra
  • Angola
  • Anguilla
  • Antigua and Barbuda
  • Argentina
  • Armenia
  • Aruba
  • Australia
  • Austria
  • Azerbaijan
  • Bahamas
  • Bahrain
  • Bangladesh
  • Barbados
  • Belarus
  • Belgium
  • Belize
  • Benin
  • Bermuda
  • Bhutan
  • Bolivia
  • Bosnia-Herzegovina
  • Botswana
  • Brazil
  • British Indian Ocean Territory
  • Brunei
  • Bulgaria
  • Burkina Faso
  • Burma
  • Burundi
  • Cambodia
  • Cameroon
  • Canton and Enderbury Islands
  • Cape Verde
  • Cayman Islands
  • Central African Republic
  • Chad
  • Chile
  • China
  • Christmas Island
  • Cocos (Keeling) Islands
  • Colombia
  • Comoros
  • Congo
  • Congo, Democratic Republic
  • Cook Islands
  • Costa Rica
  • Côte d’Ivoire
  • Croatia
  • Cuba
  • Curaçao
  • Cyprus
  • Czech Republic
  • Denmark
  • Djibouti
  • Dominica
  • Dominican Republic
  • Dronning Maud Land
  • East Timor
  • Ecuador
  • Egypt
  • El Salvador
  • Equatorial Guinea
  • Eritrea
  • Estonia
  • Ethiopia
  • Faeroe Islands (Føroyar)
  • Falkland Islands
  • Fiji
  • Finland
  • France
  • French Guiana
  • French Polynesia
  • Gabon
  • Gambia
  • Georgia
  • Germany
  • Ghana
  • Gibraltar
  • Great Britain
  • Greece
  • Greenland
  • Grenada
  • Guadeloupe
  • Guam
  • Guatemala
  • Guernsey
  • Guinea-Bissau
  • Guinea
  • Guyana
  • Haiti
  • Heard and McDonald Islands
  • Honduras
  • Hong Kong
  • Hungary
  • Iceland
  • India
  • Indonesia
  • International Monetary Fund
  • Iran
  • Iraq
  • Isle of Man
  • Israel
  • Italy
  • Ivory Coast
  • Jamaica
  • Japan
  • Jersey
  • Johnston Island
  • Jordan
  • Kampuchea
  • Kazakhstan
  • Kenya
  • Kiribati
  • Korea, North
  • Korea, South
  • Kuwait
  • Kyrgyzstan
  • Laos
  • Latvia
  • Lebanon
  • Lesotho
  • Liberia
  • Libya
  • Liechtenstein
  • Lithuania
  • Luxembourg
  • Macau
  • Macedonia (Former Yug. Rep.)
  • Madagascar
  • Malawi
  • Malaysia
  • Maldives
  • Mali
  • Malta
  • Marshall Islands
  • Martinique
  • Mauritania
  • Mauritius
  • Mayotte
  • Micronesia
  • Midway Islands
  • Mexico
  • Moldova
  • Monaco
  • Mongolia
  • Montenegro
  • Montserrat
  • Morocco
  • Mozambique
  • Myanmar
  • Nauru
  • Namibia
  • Nepal
  • Netherlands Antilles
  • Netherlands
  • New Caledonia
  • New Zealand
  • Nicaragua
  • Niger
  • Nigeria
  • Niue
  • Norfolk Island
  • Northern Mariana Islands
  • Norway
  • Oman
  • Pakistan
  • Palau
  • Palestine
  • Panama
  • Papua New Guinea
  • Paraguay
  • Peru
  • Philippines
  • Pitcairn Island
  • Poland
  • Puerto Rico
  • Qatar
  • Reunion
  • Romania
  • Russia
  • Rwanda
  • Samoa (Western)
  • Samoa (America)
  • San Marino
  • São Tomé and Príncipe
  • Saudi Arabia
  • Sénégal
  • Serbia
  • Seychelles
  • Sierra Leone
  • Singapore
  • Slovakia
  • Slovenia
  • Solomon Islands
  • Somalia
  • South Africa
  • Spain
  • Sri Lanka
  • St. Helena
  • St. Kitts and Nevis
  • St. Lucia
  • St. Vincent and the Grenadines
  • Sudan
  • Suriname
  • Svalbard and Jan Mayen Islands
  • Swaziland
  • Sweden
  • Switzerland
  • Syria
  • Tahiti
  • Taiwan
  • Tajikistan
  • Tanzania
  • Thailand
  • Timor-Leste
  • Togo
  • Trinidad and Tobago
  • Tunisia
  • Turkey
  • Turkmenistan
  • Turks and Caicos Islands
  • Tuvalu
  • Uganda
  • Ukraine
  • United Arab Emirates
  • Upper Volta
  • Uruguay
  • Uzbekistan
  • Vanuatu
  • Vatican
  • Venezuela
  • Vietnam
  • Virgin Islands
  • Wake Island
  • Wallis and Futuna Islands
  • Western Sahara
  • Western Samoa
  • Yemen
  • Zaïre
  • Zambia
  • Zimbabwe
Taxes country codes
CountryCode
Portugal – ContinentalPT
Portugal – AçoresPT-AC
Portugal – MadeiraPT-MA
AfghanistanAF
Åland IslandsAX
AlbaniaAL
AlgeriaDZ
American SamoaAS
AndorraAD
AngolaAO
AnguillaAI
AntarcticaAQ
Antigua and BarbudaAG
ArgentinaAR
ArmeniaAM
ArubaAW
AustraliaAU
AustriaAT
AzerbaijanAZ
BahamasBS
BahrainBH
BangladeshBD
BarbadosBB
BelarusBY
BelgiumBE
BelizeBZ
BeninBJ
BermudaBM
BhutanBT
BoliviaBO
Bosnia-HerzegovinaBA
BotswanaBW
Bouvet IslandBV
BrazilBR
British Indian Ocean TerritoryIO
BruneiBN
BulgariaBG
Burkina FasoBF
BurmaMM
BurundiBI
CambodiaKH
CameroonCM
CanadaCA
Canton and Enderbury IslandsKI
Cape VerdeCV
Cayman IslandsKY
Central African RepublicCF
ChadTD
ChileCL
ChinaCN
Christmas IslandCX
Cocos (Keeling) IslandsCC
ColombiaCO
ComorosKM
CongoCG
Congo, Democratic RepublicCD
Cook IslandsCK
Costa RicaCR
Côte d’IvoireCI
CroatiaHR
CubaCU
CyprusCY
Czech RepublicCZ
DenmarkDK
DjiboutiDJ
DominicaDM
Dominican RepublicDO
Dronning Maud LandAQ
East TimorTL
EcuadorEC
EgyptEG
El SalvadorSV
Equatorial GuineaGQ
EritreaER
EstoniaEE
EthiopiaET
Falkland IslandsFK
Faroe IslandsFO
FijiFJ
FinlandFI
FranceFR
French GuianaGF
French PolynesiaPF
French Southern TerritoriesTF
GabonGA
GambiaGM
GeorgiaGE
GermanyDE
GhanaGH
GibraltarGI
GreeceGR
GreenlandGL
GrenadaGD
GuadeloupeGP
GuamGU
GuatemalaGT
GuernseyGG
GuineaGN
Guinea-BissauGW
GuyanaGY
HaitiHT
Heard and McDonald IslandsHM
Holy See (Vatican City State)VA
HondurasHN
Hong KongHK
HungaryHU
IcelandIS
IndiaIN
IndonesiaID
IranIR
IraqIQ
IrelandIE
Isle of ManIM
IsraelIL
ItalyIT
Ivory CoastCI
JamaicaJM
JapanJP
JerseyJE
Johnston IslandUM
JordanJO
KampucheaKH
KazakhstanKZ
KenyaKE
KiribatiKI
Korea, NorthKP
Korea, SouthKR
KuwaitKW
KyrgyzstanKG
LaosLA
LatviaLV
LebanonLB
LesothoLS
LiberiaLR
LibyaLY
LiechtensteinLI
LithuaniaLT
LuxembourgLU
MacauMO
MacedoniaMK
MadagascarMG
MalawiMW
MalaysiaMY
MaldivesMV
MaliML
MaltaMT
Marshall IslandsMH
MartiniqueMQ
MauritaniaMR
MauritiusMU
MayotteYT
MexicoMX
MicronesiaFM
Midway IslandsUM
MoldovaMD
MonacoMC
MongoliaMN
MontenegroME
MontserratMS
MoroccoMA
MozambiqueMZ
MyanmarMM
NamibiaNA
NauruNR
NepalNP
NetherlandsNL
Netherlands AntillesAN
New CaledoniaNC
New ZealandNZ
NicaraguaNI
NigerNE
NigeriaNG
NiueNU
Norfolk IslandNF
Northern Mariana IslandsMP
NorwayNO
OmanOM
PakistanPK
PalauPW
PalestinePS
PanamaPA
Papua New GuineaPG
ParaguayPY
PeruPE
PhilippinesPH
Pitcairn IslandPN
PolandPL
Puerto RicoPR
QatarQA
ReunionRE
RomaniaRO
RussiaRU
Russian FederationRU
RwandaRW
Saint BarthélemyBL
St. HelenaSH
St. Kitts and NevisKN
St. LuciaLC
Saint MartinMF
Saint Pierre And MiquelonPM
St. Vincent and the GrenadinesVC
Samoa (America)AS
Samoa (Western)WS
San MarinoSM
São Tomé and PríncipeST
Saudi ArabiaSA
SénégalSN
SerbiaRS
SeychellesSC
Sierra LeoneSL
SingaporeSG
SlovakiaSK
SloveniaSI
Solomon IslandsSB
SomaliaSO
South AfricaZA
South Georgia And The South Sandwich IslandsGS
SpainES
Sri LankaLK
SudanSD
SurinameSR
Svalbard and Jan Mayen IslandsSJ
SwazilandSZ
SwedenSE
SwitzerlandCH
SyriaSY
TahitiPF
TaiwanTW
TajikistanTJ
TanzaniaTZ
ThailandTH
Timor-LesteTL
TogoTG
TokelauTK
TongaTO
Trinidad and TobagoTT
TunisiaTN
TurkeyTR
TurkmenistanTM
Turks and Caicos IslandsTC
TuvaluTV
UgandaUG
UkraineUA
United Arab EmiratesAE
United KingdomGB
Upper VoltaBF
United StatesUS
United States Minor Outlying IslandsUM
UruguayUY
UzbekistanUZ
VanuatuVU
VaticanVA
VenezuelaVE
VietnamVN
Virgin IslandsVG
Virgin Islands, U.S.VI
Wake IslandUM
Wallis and Futuna IslandsWF
Western SaharaEH
Western SamoaWS
YemenYE
ZaïreCD
ZambiaZM
ZimbabweZW
Currency codes
NameSymbolCode
EuroEUR
Pound sterling£GBP
Canadian dollarC$CAD
U.S. dollar$USD
Afghan afghani؋AFN
Albanian lekLALL
Algerian dinarد.جDZD
Angolan kwanzaKzAOA
Argentine peso$ARS
Armenian dramդր.AMD
Aruban florinƒAWG
Australian dollarA$AUD
Azerbaijani manat¤AZN
Bahamian dollar$BSD
Bahraini dinarب.دBHD
Bangladeshi taka¤BDT
Barbadian dollar$BBD
Belarusian rubleBrBYR
Belize dollar$BZD
Bermudian dollar$BMD
Bhutanese ngultrum¤BTN
Bolivian bolivianoBs.BOB
Bosnia & Herzegovina markKMBAM
Botswana pulaPBWP
Brazilian realR$BRL
Brunei dollar$BND
Bulgarian levлвBGN
Burundian francFrBIF
Cambodian riel¤KHR
Cape Verdean escudoEscCVE
Cayman Islands dollar$KYD
Central African CFA francFrXAF
CFP francFrXPF
Chilean peso$CLP
Chinese yuan¥CNY
Colombian peso$COP
Comorian francFrKMF
Congolese francFrCDF
Costa Rican colónCRC
Croatian kunaknHRK
Cuban convertible peso$CUC
Cuban peso$CUP
Czech korunaCZK
Danish kronekr.DKK
Djiboutian francFrDJF
Dominican peso$DOP
East Caribbean dollar$XCD
Egyptian poundج.مEGP
Eritrean nakfaNfkERN
Estonian kroonKREEK
Ethiopian birr¤ETB
Falkland Islands pound£FKP
Fijian dollar$FJD
Gambian dalasiDGMD
Georgian lariGEL
Ghanaian cediGHS
Gibraltar pound£GIP
Guatemalan quetzalQGTQ
Guinean francFrGNF
Guyanese dollar$GYD
Haitian gourdeGHTG
Honduran lempiraLHNL
Hong Kong dollar$HKD
Hungarian forintFtHUF
Icelandic krónakrISK
Indian rupeeRsINR
Indonesian rupiahRpIDR
Iranian rialIRR
Iraqi dinarع.دIQD
Israeli new sheqelILS
Jamaican dollar$JMD
Japanese yen¥JPY
Jordanian dinarد.اJOD
Kazakhstani tengeKZT
Kenyan shillingShKES
Kuwaiti dinarد.كKWD
Kyrgyzstani som¤KGS
Lao kipLAK
Latvian latsLsLVL
Lebanese poundل.لLBP
Lesotho lotiLLSL
Liberian dollar$LRD
Libyan dinarل.دLYD
Lithuanian litasLtLTL
Macanese patacaPMOP
Macedonian denarденMKD
Malagasy ariary¤MGA
Malawian kwachaMKMWK
Malaysian ringgitRMMYR
Maldivian rufiyaaRfMVR
Mauritanian ouguiyaUMMRO
Mauritian rupeeMUR
Mexican peso$MXN
Moldovan leuLMDL
Mongolian tögrögMNT
Moroccan dirhamد.م.MAD
Mozambican meticalMTMZN
Myanma kyatKsMMK
Namibian dollar$NAD
Nepalese rupeeNPR
Netherlands Antillean guilderƒANG
New Taiwan dollar$TWD
New Zealand dollar$NZD
Nicaraguan córdobaC$NIO
Nigerian nairaNGN
North Korean wonKPW
Norwegian kronekrNOK
Omani rialر.ع.OMR
Pakistani rupeePKR
Papua New Guinean kinaKPGK
Paraguayan guaraníPYG
Peruvian nuevo solS/PEN
Philippine pesoPHP
Polish złotyPLN
Qatari riyalر.قQAR
Romanian leuleiRON
Russian rubleRUB
Rwandan francFrRWF
Saint Helena pound£SHP
Samoan tālāTWST
São Tomé and Príncipe dobraDbSTN
Saudi riyalر.سSAR
Serbian dinarдин.RSD
Seychellois rupeeSCR
Sierra Leonean leoneLeSLL
Singapore dollar$SGD
Solomon Islands dollar$SBD
Somali shillingShSOS
South African randRZAR
South Korean wonKRW
Sri Lankan rupeeRsLKR
Sudanese poundج.س.SDG
Surinamese dollar$SRD
Swazi lilangeniLSZL
Swedish kronakrSEK
Swiss francFrCHF
Syrian poundل.س.SYP
Tajikistani somoniЅМTJS
Tanzanian shillingShTZS
Thai baht฿THB
Tongan paʻangaT$TOP
Trinidad and Tobago dollar$TTD
Tunisian dinarد.تTND
Turkish liraTRY
Turkmenistan manatmTMT
Ugandan shillingShUGX
Ukrainian hryvniaUAH
United Arab Emirates dirhamد.إAED
Uruguayan peso$UYU
Uzbekistani so'm¤UZS
Vanuatu vatuVtVUV
Venezuelan bolívarBs.VES
Vietnamese đồngVND
West African CFA francFrXOF
Yemeni rialYER
Zambian kwachaZKZMW
Zimbabwean dollar$ZWL
Request limits

You can perform up to 780 requests per minute for each Account. If you exceed this limit, you'll get a 429 Too Many Requests response for subsequent requests.

We recommend you handle 429 responses so your integration retries requests automatically.

Download OpenAPI description
Overview
InvoiceXpress API Support
Languages
Servers
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

List All

Request

Returns a list of invoices.

Security
apiKeyAuth
Query
api_keystringrequired

Your API Key.

Example: api_key=YOUR_API_KEY
Query Parametersobject(QueryParamns)

Click to expand options.

curl -i -X GET \
  'https://your-account.app.invoicexpress.com/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'

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

Create Invoice

Request

Creates a new invoice, simplified_invoice, invoice_receipt, credit_note or debit_note.

Creating new clients or items along with the documents

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.

Taxes

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.

Security
apiKeyAuth
Path
invoices-typestringrequired

The type of the invoice document.

Enum"invoices""invoice_receipts""simplified_invoices""credit_notes""debit_notes"
Query
api_keystringrequired

Your API Key.

Example: api_key=YOUR_API_KEY
Bodyapplication/jsonrequired
invoiceobject(CreateBody)required

Invoice Body

invoice.​datestringrequired

dd/mm/yyyy

Example: "22/11/2025"
invoice.​due_datestringrequired

dd/mm/yyyy

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

Client Details.

invoice.​client.​namestringrequired
Example: "Client A"
invoice.​client.​codestringrequired
Example: "CLI-001"
invoice.​client.​emailstring
Example: "client@mail.com"
invoice.​client.​addressstring
Example: "Street A"
invoice.​client.​citystring
Example: "Lisbon"
invoice.​client.​postal_codestring
Example: "1000-100"
invoice.​client.​fiscal_idstring
Example: "500999888"
invoice.​client.​countrystring
Example: "Portugal"
invoice.​client.​websitestring
Example: "www.client-a.com"
invoice.​client.​phonestring
Example: "912345678"
invoice.​client.​faxstring
Example: "212345678"
invoice.​client.​observationsstring
Example: "VIP Client"
invoice.​itemsArray of objects(InvoiceItemRequest)required
invoice.​items[].​namestringrequired
Example: "Consulting"
invoice.​items[].​descriptionstringrequired
Example: "IT Services"
invoice.​items[].​unit_pricenumberrequired
Example: 50
invoice.​items[].​quantitynumberrequired
Example: 2
invoice.​items[].​unitstring
Example: "hour"
invoice.​items[].​discountnumber
Example: 0
invoice.​items[].​taxobject(InvoiceTaxRequest)
invoice.​mb_referencestring
Enum"0""1"
Example: "1"
invoice.​owner_invoice_idinteger
Example: 1049
invoice.​tax_exemption_reasonstring
Example: "M00"
invoice.​currency_codestring
Example: "USD"
invoice.​ratestring
Example: "1.10"
invoice.​plugin_idstring
Example: "plugin_123"
invoice.​global_discountobject(GlobalDiscountRequest)
proprietary_uidstring
Example: "uuid-123"
curl -i -X POST \
  'https://your-account.app.invoicexpress.com/{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"
  }'

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
invoiceobject(FullDocumentObject)
Response
application/json
{ "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": {} } }

Get Invoice

Request

Security
apiKeyAuth
Path
document-idintegerrequired

The ID of the document.

Example: 1050
invoices-typestringrequired

The type of the invoice document.

Enum"invoices""invoice_receipts""simplified_invoices""credit_notes""debit_notes"
Query
api_keystringrequired

Your API Key.

Example: api_key=YOUR_API_KEY
curl -i -X GET \
  'https://your-account.app.invoicexpress.com/{invoices-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
invoiceobject(FullDocumentObject)
Response
application/json
{ "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": {} } }

Update Invoice

Request

Updates a new invoice, simplified_invoice, invoice_receipt, credit_note or debit_note.

Creating new clients or items along with the invoice

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.

Taxes

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.

Security
apiKeyAuth
Path
invoices-typestringrequired

The type of the invoice document.

Enum"invoices""invoice_receipts""simplified_invoices""credit_notes""debit_notes"
document-idintegerrequired

The ID of the document.

Example: 1050
Query
api_keystringrequired

Your API Key.

Example: api_key=YOUR_API_KEY
Bodyapplication/jsonrequired
invoiceobject(CreateBody)required

Invoice Body

invoice.​datestringrequired

dd/mm/yyyy

Example: "22/11/2025"
invoice.​due_datestringrequired

dd/mm/yyyy

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

Client Details.

invoice.​client.​namestringrequired
Example: "Client A"
invoice.​client.​codestringrequired
Example: "CLI-001"
invoice.​client.​emailstring
Example: "client@mail.com"
invoice.​client.​addressstring
Example: "Street A"
invoice.​client.​citystring
Example: "Lisbon"
invoice.​client.​postal_codestring
Example: "1000-100"
invoice.​client.​fiscal_idstring
Example: "500999888"
invoice.​client.​countrystring
Example: "Portugal"
invoice.​client.​websitestring
Example: "www.client-a.com"
invoice.​client.​phonestring
Example: "912345678"
invoice.​client.​faxstring
Example: "212345678"
invoice.​client.​observationsstring
Example: "VIP Client"
invoice.​itemsArray of objects(InvoiceItemRequest)required
invoice.​items[].​namestringrequired
Example: "Consulting"
invoice.​items[].​descriptionstringrequired
Example: "IT Services"
invoice.​items[].​unit_pricenumberrequired
Example: 50
invoice.​items[].​quantitynumberrequired
Example: 2
invoice.​items[].​unitstring
Example: "hour"
invoice.​items[].​discountnumber
Example: 0
invoice.​items[].​taxobject(InvoiceTaxRequest)
invoice.​mb_referencestring
Enum"0""1"
Example: "1"
invoice.​owner_invoice_idinteger
Example: 1049
invoice.​tax_exemption_reasonstring
Example: "M00"
invoice.​currency_codestring
Example: "USD"
invoice.​ratestring
Example: "1.10"
invoice.​plugin_idstring
Example: "plugin_123"
invoice.​global_discountobject(GlobalDiscountRequest)
curl -i -X PUT \
  'https://your-account.app.invoicexpress.com/{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
      }
    }
  }'

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
invoiceobject(FullDocumentObject)
Response
application/json
{ "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": {} } }

Change Invoice State

Request

Changes the state of invoice documents.

FromToState on Request BodyNotes
draftfinalfinalizedAll documents.
draftsettledfinalizedOnly invoice_receipt.
draftdeleteddeletedAll documents.
finalcanceledcanceledAll documents.
settledcanceledcanceledOnly invoice_receipt.
finalsettledsettledAll documents.
settledfinalunsettledOnly credit_note and debit_note.
Security
apiKeyAuth
Path
invoices-typestringrequired

The type of the invoice document.

Enum"invoices""invoice_receipts""simplified_invoices""credit_notes""debit_notes"
document-idintegerrequired

The ID of the document.

Example: 1050
Query
api_keystringrequired

Your API Key.

Example: api_key=YOUR_API_KEY
Bodyapplication/jsonrequired
invoiceobjectrequired
invoice.​statestringrequired
Enum"finalized""canceled""deleted""accepted""refused""settled"
Example: "finalized"
invoice.​messagestring
Example: "Wrong value"
curl -i -X PUT \
  'https://your-account.app.invoicexpress.com/{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"
    }
  }'

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
invoiceobject(FullDocumentObject)
Response
application/json
{ "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": {} } }

Send Invoice by Email

Request

Security
apiKeyAuth
Path
invoices-typestringrequired

The type of the invoice document.

Enum"invoices""invoice_receipts""simplified_invoices""credit_notes""debit_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://your-account.app.invoicexpress.com/{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"
    }
  }'

Responses

SUCCESS

Response
No content

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://your-account.app.invoicexpress.com/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" } }

Get QR Code

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
curl -i -X GET \
  'https://your-account.app.invoicexpress.com/api/qr_codes/1050.json?api_key=YOUR_API_KEY%2CYOUR_API_KEY_HERE'

Responses

SUCCESS

Bodyapplication/json
qr_codeobject
Response
application/json
{ "qr_code": { "url": "url.png" } }

Related Documents

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
curl -i -X GET \
  'https://your-account.app.invoicexpress.com/document/1050/related_documents.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
documentsArray of objects
Response
application/json
{ "documents": [ {} ] }

Generate Payment

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
Bodyapplication/jsonrequired
partial_paymentobjectrequired
partial_payment.​amountnumberrequired
Example: 10
partial_payment.​payment_mechanismstring
Enum"TB""MB""CC"
Example: "TB"
partial_payment.​notestring
Example: "Transfer"
partial_payment.​seriestring
partial_payment.​payment_datestring
Example: "22/11/2025"
curl -i -X POST \
  'https://your-account.app.invoicexpress.com/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"
    }
  }'

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
receiptobject(FullDocumentObject)
Response
application/json
{ "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": {} } }

Cancel Payment

Request

Security
apiKeyAuth
Path
receipt-idintegerrequired
Example: 42
Query
api_keystringrequired

Your API Key.

Example: api_key=YOUR_API_KEY
Bodyapplication/jsonrequired
receiptobjectrequired
receipt.​statestringrequired
Value"canceled"
Example: "canceled"
receipt.​messagestringrequired
Example: "Error"
curl -i -X PUT \
  'https://your-account.app.invoicexpress.com/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"
    }
  }'

Responses

SUCCESS

Bodyapplication/json
receiptobject(FullDocumentObject)
Response
application/json
{ "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": {} } }

Estimates

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

Operations

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