1. Introduction

Please choose the tab that best fits your type of company:

Receiving Purchase Invoices

For receiving invoices there are three solutions that we offer:

  • Our Portal Retrieval Service

  • The Peppol European e-invoicing network

  • <your_company_name>@receive.storecove.com (with optional scan&recognize)

All three will give you not only the PDF invoice, but also the e-invoice, ready for automated processing in your ERP without any manual intervention.

These services can be fully managed via the web interface and no API integration is necessary.

We can deliver purchase invoices to most accountancy software packages, either through their API or by sending the purchase invoice to an email address. It is also possible to leverage our Webhooks, which allow you to configure a URL that we will call each time a purchase invoice is received. You can then retrieve it and process it in your ERP.

Sending Sales Invoices

For companies wishing to send sales invoices to their Customers through various channels, including the Peppol network (becoming mandatory in the EU for all public entities), our service sends your invoices as e-invoices that can be automatically processed by your Customer’s accountancy software package / ERP.

There are two ways of presenting your sales invoices into the Storecove platform for e-delivery:

  • By emailing your sales invoices to <your_company_name>@send.storecove.com

  • By uploading your sales invoices via SFTP to <your_company_name>@sftp.storecove.com

  • By pushing your sales invoices into our API

We have a web interface where you can view how we processed your invoice and take action on any errors.

If you use our API, the added benefit is that you can configure Webhooks that we will call, updating you with the delivery status of your sales invoice. In addition, you can integrate the delivery status of sales invoices in your customer service environment by requesting their status.

Please see Individual Companies for details.

Receiving Purchase Invoices

For receiving invoices for your Clients there are three solutions that we offer:

  • Our Portal Retrieval Service

  • The Peppol European e-invoicing network

  • <company_name>@receive.storecove.com (with optional scan&recognize)

All three will give you not only the PDF invoice, but also the e-invoice, ready for automated processing in your accountancy software package without any manual intervention.

These services can be fully managed via the web interface and no API integration is necessary.

We can deliver purchase invoices to most accountancy software packages, either through their API or by sending the purchase invoice to an email address. It is also possible to leverage our Webhooks, which allow you to configure a URL that we will call each time a purchase invoice is received. You can then retrieve and process it.

Sending Sales Invoices

If you wish to facilitate your Clients sending sales invoices to their Customers through various channels, including the Peppol network (becoming mandatory in the EU for sending to all public entities), our service will send these sales invoices as e-invoices that can be automatically processed by your Client’s Customer’s accountancy software package / ERP.

There are two ways of presenting your Client’s sales invoices into the Storecove platform for e-delivery:

  • By sending the sales invoices to <company_name>@send.storecove.com

  • By pushing the sales invoices into our API

We have a web interface where you can view how we processed the invoice and take action on any errors.

If you use our API, the added benefit is that you can configure Webhooks that we will call, updating you with the delivery status of the sales invoice.

Please see Accountants for details.

Receiving invoices

For receiving invoices for your Clients there are two solutions that we offer:

  • Embedded Portal Invoice Retrieval

  • Peppol Access Point as a Service

The first allows you to white-label embed Storecove’s automated invoice retrieval solution. The embedded solution allows you to have your Customers create connections to their suppliers inside your accounting package.

The second allows you to publish your Client’s Peppol identifiers (i.e. Chambre of Commerce number, VAT number, IBAN, etc) on the Peppol network.

When an invoice for one of your Clients is received or retrieved, a (configurable) Webhook is called so you can instantly retrieve the invoice from our API.

Sending invoices

If you wish to facilitate your Clients sending sales invoices to their Customers through various channels, including the Peppol network (becoming mandatory in the EU for all public entities), our service will send these sales invoices as e-invoices that can be automatically processed by your Client’s Customer’s accountancy software package / ERP.

We offer a web interface where you can view how we processed your Client’s invoice and correct any errors. We also offer this functionality through the API, available for you to integrate into your software solution. And there are Webhooks available that you can subscribe to, to actively let you know what actions where taken to deliver an invoice.

Please see Software Suppliers for details.

2. Individual Companies

2.1. Sending

2.1.1. Email Ingestion

Introduction

Email ingestion refers to Storecove receiving and processing your (or your Client’s) invoice via an email to <company_name>@send.storecove.com. This email should have an attachment that contains the data that makes up the invoice and optionally an attachment that has an image of the invoice, in PDF format.

From: Address

The address you send from determines your identity as sender of the invoice, and so therefore needs to be validated by Storecove. The entire process is described on

To: Address

If you have followed the previous link, you will have setup an email addresss <company_name>@send.storecove.com. You can send emails to this address with your electronic invoices to send.

Attachments
Data

You need to provide an attachment with the data contained in the invoice.

You can attach a UBL 2.0 or UBL 2.1 invoice. Even if these are not 100% compliant, we can probably process them. Contact us on helpdesk@storecove.com for a test if you are not sure.

If you cannot produce a UBL attachment, we also support other formats (like CII, cXML, CSV) and we can also support your custom format. Contact us on helpdesk@storecove.com if you need to use a non-UBL format.

PDF

If you have a PDF image of the invoice, you can provide it as an attachment. This attachment’s filename should end in ‘.pdf’. If you do not have a PDF to attach, just leave it out.

2.1.2. SFTP Ingestion

Introduction

SFTP ingestion refers to Storecove receiving and processing your (or your Client’s) invoices via secure file upload to <company_name>@sftp.storecove.com.

Files

The upload may consist of mulitple files, each with its own purpose. We currently support the following purposes:

  • Data

  • Primary image

  • Additional attachments

The data file contains the data of the invoice. It usually is in UBL format, but if you cannot produce a UBL file, we also support other formats (like CII, cXML, CSV) and we can also support your custom format. Contact us if you need to use a non-UBL format. The primary image file should be a PDF. The additional attachments are currently also limited to PDF only, but please contact us if you have different requirements.

The filenames have the following structure:

  • <file_id>_<purpose>.<extension> or

  • <file_id>_<purpose>_<counter>.<extension>

All files pertaining to the same invoice should have the same file_id. The file_id should never be re-used. The file_id may contain only the following characters:

  • A-Z, a-z, 0-9 and '-'

Note that if you use the invoice number as file_id, that may work, but you will not be able to resend that invoice. For that reason, it is recommended to include a random string to make the file_id globally unique.

The purpose must be one of:

  • data (this file contains the invoice data and may occur only once)

  • primary (this is the primary image of the invoice, i.e. a PDF of the invoice. It may occur only once.)

  • additional (this indicates an additional attachment, perhaps an invoice specification. It may occur multiple times)

Examples of valid file names are:

  • 82b3785e-0569-482d-a683-ee437eb3df13_data.xml

  • 82b3785e-0569-482d-a683-ee437eb3df13_primary.pdf

  • 82b3785e-0569-482d-a683-ee437eb3df13_additional_1.pdf

  • 82b3785e-0569-482d-a683-ee437eb3df13_additional_1.pdf

Setup

At this moment the setup cannot be done through our web interface. Therefore, please contact us on helpdesk@storecove.com to setup your SFTP upload capability.

Key pair

To setup SFTP, we you need to generate an SSH keypair and send us the public part. On Linux:

ssh-keygen -t rsa -b 4096 -f id_rsa

Leave the passwords empty. Send us the file

  • id_rsa.pub

Important
Don’t send us your id_rsa file, that is to be kept private.

2.1.3. API Ingestion

Introduction

API ingestion refers to Storecove receiving and processing you Customer’s invoices by interaction of your code with Storecove’s API, following one of the supported workflows:

  1. Check and submit

  2. Submit and email

  3. Pull mode

Moreover, you can get updates about the status of the invoices that you have submitted by creating one or more webhooks. Operation of workflows and webhooks is explained in the following sections.

Workflows
Check and Submit

First use the

API call. It takes one parameter, an InvoiceRecipient object. This object contains the ids of the recipient of the invoice. When you call this endpoint, Storecove will query the European Peppol network whether the Customer has registered with this network. If the result code is ‘ok’, submit the invoice via the

API call.

Submit

Submit the invoice to

When you call this endpoint, Storecove will:

  1. Query the European Peppol network whether the Customer has registered with this network. If so, the invoice is delivered via Peppol.

  2. If the invoice could not be delivered via Peppol the invoice is delivered to the fallback email address.

Pull Mode

In pull mode, you provide an API that Storecove uses to retrieve new invoices. We will periodically poll for new invoices (or process webhooks), providing a timestamp to filter so as only to receive new invoices. From the returned list we will then determine which of these can be sent via Peppol.

If you wish to use pull mode, please contact us on helpdesk@storecove.com or +31.202611791.

Summary

The following is a list of items that you need to work with the Storecove invoice_submissions API:

Item Description Source

Two Storecove accounts

A development (sandbox) and a production account with API access.

You can self-register, and configure the sandbox account if necessary.

legalEntityId

The id that identifies you.

Available in the web interface

token

The token to use in the Authentication header when doing API calls.

Create your own in the web interface

Peppol Schemes List

The full list of public identifier schemes is as follows:

Scheme  Scheme Numerical  Description

AD:VAT

 9922

 Andorra VAT number

AL:VAT

 9923

 Albania VAT number

AT:CID

 9916

 Firmenidentifikationsnummer der Statistik Austri

AT:GOV

 9915

 Österreichisches Verwaltungs bzw. Organisationskennzeichen

AT:KUR

 9919

 Kennziffer des Unternehmensregisters

AT:VAT

 9914

 Österreichische Umsatzsteuer-Identifikationsnummer

AU:ABN

 0151

 Australian Business Number (ABN)

BA:VAT

 9924

 Bosnia and Herzegovina VAT number

BE:CBE

 9956

 KBO nummer / Numéro BCE

BE:VAT

 9925

 BTW nummer / Numéro de TVA

BG:VAT

 9926

 Bulgaria VAT number

CH:VAT

 9927

 Switzerland VAT number

CY:VAT

 9928

 Cyprus VAT number

CZ:VAT

 9929

 Czech Republic VAT number

DE:LID

 9958

 Leitweg ID

DE:VAT

 9930

 Umsatzsteuer-Identifikationsnummer

DK:CPR

 9901

 Danish Ministry of the Interior and Health

DK:CVR

 9902

 The Danish Commerce and Companies Agency

DK:DIGST

 0184

 DIGSTORG

DK:P

 0096

 Danish Chamber of Commerce

DK:SE

 9904

 Danish Ministry of Taxation, Central Customs and Tax Administration

DK:VANS

 9905

 Danish VANS providers

DUNS

 0060

 Dun and Bradstreet Ltd

EE:RIK

 0191

 Estonian company code

EE:VAT

 9931

 Estonia VAT number

ES:VAT

 9920

 Agencia Española de Administración Tributaria

EU:REID

 9913

 Business Registers Network

EU:VAT

 9912

 National ministries of Econom

FI:OVT

 0037

 National Board of Taxes, (Verohallitus)

FR:SIRENE

 0002

 Institut National de la Statistique et des Etudes Economiques, (I.N.S.E.E.)

FR:SIRET

 0009

 DU PONT DE NEMOURS

FR:VAT

 9957

 French VAT

GB:VAT

 9932

 VAT number

GLN

 0088

 GS1 EAN Location Code

GR:VAT

 9933

 Greece VAT number

HR:VAT

 9934

 Croatia VAT number

HU:VAT

 9910

 Hungarian VAT

IBAN

 9918

 SOCIETY FOR WORLDWIDE INTERBANK FINANCIAL, TELECOMMUNICATION S.W.I.F.T

IE:VAT

 9935

 Ireland VAT number

IS:KT

 9917

 Icelandic National Registry

IT:CF

 9907

 Codice Fiscale

IT:FTI

 0097

 FTI - Ediforum Italia

IT:IPA

 9921

 Indice delle Pubbliche Amministrazioni

IT:SECETI

 0142

 Servizi Centralizzati SECETI S.p.A.

IT:SIA

 0135

 SIA-Società Interbancaria per l’Automazione S.p.A.

IT:VAT

 9906

 Partita IVA

LI:VAT

 9936

 Liechtenstein VAT number

LT:VAT

 9937

 Lithuania VAT number

LU:VAT

 9938

 Luxemburg VAT number

LV:VAT

 9939

 Latvia VAT number

MC:VAT

 9940

 Monaco VAT number

ME:VAT

 9941

 Montenegro VAT number

MK:VAT

 9942

 Macedonia, the former Yugoslav Republic of VAT number

MT:VAT

 9943

 Malta VAT number

NL:KVK

 0106

 Kamer van Koophandel nummer

NL:OIN

 9954

 Overheid Identificatie Nummer (OIN)

NL:VAT

 9944

 BTW nummer

NO:ORG

 0192

 The Brønnøysund Register Centre

NO:ORGNR

 9908

 Enhetsregisteret ved Bronnoysundregisterne

NO:VAT

 9909

 Enhetsregisteret ved Bronnoysundregisterne

PL:VAT

 9945

 Poland VAT number

PT:VAT

 9946

 Portugal VAT number

RO:VAT

 9947

 Romania VAT number

RS:VAT

 9948

 Serbia VAT number

SE:ORGNR

 0007

 The National Tax Board

SE:VAT

 9955

 Swedish VAT number

SG:UEN

 0195

 Singapore Nationwide eInvoicing Framework

SI:VAT

 9949

 Slovenia VAT number

SK:VAT

 9950

 Slovakia VAT number

SM:VAT

 9951

 San Marino VAT number

TR:VAT

 9952

 Turkey VAT number

VA:VAT

 9953

 Holy See (Vatican City State) VAT number

2.2. Receiving

For receiving, everything can be setup in the web interface. To receive invoices via webhooks, see Webhooks.

3. Accountants

3.1. Sending

3.1.1. Email Ingestion

Introduction

Email ingestion refers to Storecove receiving and processing your (or your Client’s) invoice via an email to <company_name>@send.storecove.com. This email should have an attachment that contains the data that makes up the invoice and optionally an attachment that has an image of the invoice, in PDF format.

From: Address

The address you send from determines your identity as sender of the invoice, and so therefore needs to be validated by Storecove. The entire process is described on

To: Address

If you have followed the previous link, you will have setup an email addresss <company_name>@send.storecove.com. You can send emails to this address with your electronic invoices to send.

Attachments
Data

You need to provide an attachment with the data contained in the invoice.

You can attach a UBL 2.0 or UBL 2.1 invoice. Even if these are not 100% compliant, we can probably process them. Contact us on helpdesk@storecove.com for a test if you are not sure.

If you cannot produce a UBL attachment, we also support other formats (like CII, cXML, CSV) and we can also support your custom format. Contact us on helpdesk@storecove.com if you need to use a non-UBL format.

PDF

If you have a PDF image of the invoice, you can provide it as an attachment. This attachment’s filename should end in ‘.pdf’. If you do not have a PDF to attach, just leave it out.

3.1.2. SFTP Ingestion

Introduction

SFTP ingestion refers to Storecove receiving and processing your (or your Client’s) invoices via secure file upload to <company_name>@sftp.storecove.com.

Files

The upload may consist of mulitple files, each with its own purpose. We currently support the following purposes:

  • Data

  • Primary image

  • Additional attachments

The data file contains the data of the invoice. It usually is in UBL format, but if you cannot produce a UBL file, we also support other formats (like CII, cXML, CSV) and we can also support your custom format. Contact us if you need to use a non-UBL format. The primary image file should be a PDF. The additional attachments are currently also limited to PDF only, but please contact us if you have different requirements.

The filenames have the following structure:

  • <file_id>_<purpose>.<extension> or

  • <file_id>_<purpose>_<counter>.<extension>

All files pertaining to the same invoice should have the same file_id. The file_id should never be re-used. The file_id may contain only the following characters:

  • A-Z, a-z, 0-9 and '-'

Note that if you use the invoice number as file_id, that may work, but you will not be able to resend that invoice. For that reason, it is recommended to include a random string to make the file_id globally unique.

The purpose must be one of:

  • data (this file contains the invoice data and may occur only once)

  • primary (this is the primary image of the invoice, i.e. a PDF of the invoice. It may occur only once.)

  • additional (this indicates an additional attachment, perhaps an invoice specification. It may occur multiple times)

Examples of valid file names are:

  • 82b3785e-0569-482d-a683-ee437eb3df13_data.xml

  • 82b3785e-0569-482d-a683-ee437eb3df13_primary.pdf

  • 82b3785e-0569-482d-a683-ee437eb3df13_additional_1.pdf

  • 82b3785e-0569-482d-a683-ee437eb3df13_additional_1.pdf

Setup

At this moment the setup cannot be done through our web interface. Therefore, please contact us on helpdesk@storecove.com to setup your SFTP upload capability.

Key pair

To setup SFTP, we you need to generate an SSH keypair and send us the public part. On Linux:

ssh-keygen -t rsa -b 4096 -f id_rsa

Leave the passwords empty. Send us the file

  • id_rsa.pub

Important
Don’t send us your id_rsa file, that is to be kept private.

3.1.3. API Ingestion

Introduction

API ingestion refers to Storecove receiving and processing you Customer’s invoices by interaction of your code with Storecove’s API, following one of the supported workflows:

  1. Check and submit

  2. Submit and email

  3. Pull mode

Moreover, you can get updates about the status of the invoices that you have submitted by creating one or more webhooks. Operation of workflows and webhooks is explained in the following sections.

Workflows
Check and Submit

First use the

API call. It takes one parameter, an InvoiceRecipient object. This object contains the ids of the recipient of the invoice. When you call this endpoint, Storecove will query the European Peppol network whether the Customer has registered with this network. If the result code is ‘ok’, submit the invoice via the

API call.

Submit

Submit the invoice to

When you call this endpoint, Storecove will:

  1. Query the European Peppol network whether the Customer has registered with this network. If so, the invoice is delivered via Peppol.

  2. If the invoice could not be delivered via Peppol the invoice is delivered to the fallback email address.

Pull Mode

In pull mode, you provide an API that Storecove uses to retrieve new invoices. We will periodically poll for new invoices (or process webhooks), providing a timestamp to filter so as only to receive new invoices. From the returned list we will then determine which of these can be sent via Peppol.

If you wish to use pull mode, please contact us on helpdesk@storecove.com or +31.202611791.

Summary

The following is a list of items that you need to work with the Storecove invoice_submissions API:

Item Description Source

Two Storecove accounts

A development (sandbox) and a production account with API access.

You can self-register, and configure the sandbox account if necessary.

legalEntityId

The id that identifies you.

Available in the web interface

token

The token to use in the Authentication header when doing API calls.

Create your own in the web interface

Peppol Schemes List

The full list of public identifier schemes is as follows:

Scheme  Scheme Numerical  Description

AD:VAT

 9922

 Andorra VAT number

AL:VAT

 9923

 Albania VAT number

AT:CID

 9916

 Firmenidentifikationsnummer der Statistik Austri

AT:GOV

 9915

 Österreichisches Verwaltungs bzw. Organisationskennzeichen

AT:KUR

 9919

 Kennziffer des Unternehmensregisters

AT:VAT

 9914

 Österreichische Umsatzsteuer-Identifikationsnummer

AU:ABN

 0151

 Australian Business Number (ABN)

BA:VAT

 9924

 Bosnia and Herzegovina VAT number

BE:CBE

 9956

 KBO nummer / Numéro BCE

BE:VAT

 9925

 BTW nummer / Numéro de TVA

BG:VAT

 9926

 Bulgaria VAT number

CH:VAT

 9927

 Switzerland VAT number

CY:VAT

 9928

 Cyprus VAT number

CZ:VAT

 9929

 Czech Republic VAT number

DE:LID

 9958

 Leitweg ID

DE:VAT

 9930

 Umsatzsteuer-Identifikationsnummer

DK:CPR

 9901

 Danish Ministry of the Interior and Health

DK:CVR

 9902

 The Danish Commerce and Companies Agency

DK:DIGST

 0184

 DIGSTORG

DK:P

 0096

 Danish Chamber of Commerce

DK:SE

 9904

 Danish Ministry of Taxation, Central Customs and Tax Administration

DK:VANS

 9905

 Danish VANS providers

DUNS

 0060

 Dun and Bradstreet Ltd

EE:RIK

 0191

 Estonian company code

EE:VAT

 9931

 Estonia VAT number

ES:VAT

 9920

 Agencia Española de Administración Tributaria

EU:REID

 9913

 Business Registers Network

EU:VAT

 9912

 National ministries of Econom

FI:OVT

 0037

 National Board of Taxes, (Verohallitus)

FR:SIRENE

 0002

 Institut National de la Statistique et des Etudes Economiques, (I.N.S.E.E.)

FR:SIRET

 0009

 DU PONT DE NEMOURS

FR:VAT

 9957

 French VAT

GB:VAT

 9932

 VAT number

GLN

 0088

 GS1 EAN Location Code

GR:VAT

 9933

 Greece VAT number

HR:VAT

 9934

 Croatia VAT number

HU:VAT

 9910

 Hungarian VAT

IBAN

 9918

 SOCIETY FOR WORLDWIDE INTERBANK FINANCIAL, TELECOMMUNICATION S.W.I.F.T

IE:VAT

 9935

 Ireland VAT number

IS:KT

 9917

 Icelandic National Registry

IT:CF

 9907

 Codice Fiscale

IT:FTI

 0097

 FTI - Ediforum Italia

IT:IPA

 9921

 Indice delle Pubbliche Amministrazioni

IT:SECETI

 0142

 Servizi Centralizzati SECETI S.p.A.

IT:SIA

 0135

 SIA-Società Interbancaria per l’Automazione S.p.A.

IT:VAT

 9906

 Partita IVA

LI:VAT

 9936

 Liechtenstein VAT number

LT:VAT

 9937

 Lithuania VAT number

LU:VAT

 9938

 Luxemburg VAT number

LV:VAT

 9939

 Latvia VAT number

MC:VAT

 9940

 Monaco VAT number

ME:VAT

 9941

 Montenegro VAT number

MK:VAT

 9942

 Macedonia, the former Yugoslav Republic of VAT number

MT:VAT

 9943

 Malta VAT number

NL:KVK

 0106

 Kamer van Koophandel nummer

NL:OIN

 9954

 Overheid Identificatie Nummer (OIN)

NL:VAT

 9944

 BTW nummer

NO:ORG

 0192

 The Brønnøysund Register Centre

NO:ORGNR

 9908

 Enhetsregisteret ved Bronnoysundregisterne

NO:VAT

 9909

 Enhetsregisteret ved Bronnoysundregisterne

PL:VAT

 9945

 Poland VAT number

PT:VAT

 9946

 Portugal VAT number

RO:VAT

 9947

 Romania VAT number

RS:VAT

 9948

 Serbia VAT number

SE:ORGNR

 0007

 The National Tax Board

SE:VAT

 9955

 Swedish VAT number

SG:UEN

 0195

 Singapore Nationwide eInvoicing Framework

SI:VAT

 9949

 Slovenia VAT number

SK:VAT

 9950

 Slovakia VAT number

SM:VAT

 9951

 San Marino VAT number

TR:VAT

 9952

 Turkey VAT number

VA:VAT

 9953

 Holy See (Vatican City State) VAT number

3.2. Receiving

For receiving, everything can be setup in the web interface. To receive invoices via webhooks, see Webhooks.

4. Software Suppliers

4.1. Embedded Supplier Connections

4.1.1. Introduction

This API facilitates white label embedding Storecove Script Connections into your own service/product. This enables your users to manage the credentials with which Storecove retrieves invoices from suppliers, directly in your website.

4.1.2. Use

The typical use-case is as follows:

  • You show your user a list of suppliers to choose from.

  • When they click on a supplier, they provide their username/password in a modal form.

  • When they save, you create a ShopAccount via the Storecove API

You should not limit the list of suppliers to only suppliers the user does not yet have connected, since it is possible to have more than one connection to the same supplier (e.g. two mobile phone subscriptions with Vodafone with separate accounts).

The list of available suppliers can be found with this API call:

When a user connects a new supplier, you create a new ShopAccount with the following API call:

When a new invoice is retrieved, you are notified via a webhook (Webhooks).

Invoices will be retrieved from one month before the moment on which the ShopAccount was created.

Authorization failures

If your user provides the wrong credentials, the connection with the supplier cannot be created and invoices are not retrieved. The user needs to take action. A call is available to receive a list of ShopAccounts that have been diagnosed with an authorization problem:

The following are the relevant fields in each ShopAccount: id, external_user_id, sign_in_error_confirmed, sign_in_error_confirmed_at. Poll daily and process the result:

  • If a ShopAccount is on your list, but no longer in the list returned, then either the problem was resolved or it was not resolved for too many days and the ShopAccount has therefore been dropped by Storecove (currently after 30 days). In both cases, remove the id from your list. To determine what happened, request the ShopAccount by its id. You will receive a 200 or a 404.

  • If a ShopAccount is not yet on your list, add it. You can now start the process that you want to follow to alert the user. For instance, you could email them and/or show the problem in your web interface.

  • When someone changes their credentials in your web interface, remove the id from your list immediately after updating the ShopAccount via the API.

4.2. Access Point as-a Service

4.2.1. Introduction

Use the API calls

to mange your organizations and their peppol identifiers.

4.2.2. Sending

For sending, you may want to first "preflight"

to check whether a Peppol identifier can be reached on the Peppol network. Next, send your invoice using

If you send all your invoices through Storecove (i.e. to an email if we cannot send it via Peppol) you do not need to preflight.

4.2.3. Receiving

Configure the appropriate webhook. See Webhooks.

5. Using the API

5.1. Tokens

To use the Storecove API, the first thing you will need to do is to create an account. You will need to create two accounts, one for development and one for production. Some accounts are automatically created in sandbox mode, but if this is not the case with your development account you can do it yourself in Settings/Billing Details.

Next, create an API token. To do this, navigate to https://www.storecove.com/en/api_keys. You will typically need only one, but should you want to change the key every so often, you can create and use more than one during your migration period.

The authentication scheme used is the OAuth2.0 Bearer Token (RFC 6750). It requires an HTTP header “Authorization” with contents “Bearer <api_token>”, e.g.

Authorization: Bearer abababababababababababababababababababab

For instance, curl request could look like

curl \
-X POST "https://api.storecove.com/api/v2/legal_entities" \
-H "Accept: application/json" \
-H "Authorization: Bearer abababababababababababababababababababab" \
-H "Content-Type: application/json" \
-d "{ \"party_name\": \"Test Party\", \"line1\": \"Test Street\", \"city\": \"Test City\", \"zip\": \"Zippy\", \"country\": \"NL\", \"tenant_id\": \"my_id\"}"

These headers are safe inside the TLS tunnel that protects the Storecove API.

5.2. Endpoint

The API endpoint is

5.3. Client Libraries

For a number of languages, we have client libraries available. The API is RESTful and communicates through JSON, so you can easily create your own client if we don’t have one ready to go and you don’t want to leverage the OpenAPI 2.0 API specification (see below).

The following shows how to setup each client.

No setup is necessary if you use this client.

To include the gem in your project, use

gem 'storecove', '~> 1.0'

Create config/initializers/storecove_api.rb:

StorecoveApi.configure do |config|
    config.api_key['Authorization'] = '<api_key>'
    config.api_key_prefix['Authorization'] = 'Bearer'
end

class StorecoveApiClient
    attr_accessor :invoice_submissions, :shop_accounts, :shop_account_requests, :shops
    def initialize
        @invoice_submissions = StorecoveApi::InvoiceSubmissionsApi.new
        @shop_accounts = StorecoveApi::ShopAccountsApi.new
        @shop_account_requests = StorecoveApi::ShopAccountRequestsApi.new
        @shops = StorecoveApi::ShopsApi.new
    end
end

5.3.1. Other Langauges

The easiest way to create a client for your favourite language is by leveraging our OpenAPI 2.0 (previously known as Swagger) specification, which can be found on

With this, it becomes easy to generate a client library in your favorite language. This is done through Swagger Codegen:

First, download the Java jar:

wget --output-document=swagger-codegen-cli.jar http://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.3.1/swagger-codegen-cli-2.3.1.jar

Next, create the client library (in this example we generate a C# library):

java -jar swagger-codegen-cli.jar generate -i https://www.storecove.com/api/v2/openapi.json -l csharp -o csharp

Language support is extensive, amongst others:

  • C# (csharp, csharp-dotnet2)

  • Java (java-pkmst, java-play-framework, jaxrs-resteasy-eap)

  • Node.js (nodejs-server)

  • Objective-C (objc)

  • Android (android)

  • Perl (perl)

  • PHP (php, php-symfony, php-silex)

  • Python (python)

  • Many others, execute:

java -jar swagger-codegen-cli.jar langs

5.4. Test Driving

Because of the OpenAPI 2.0 specification, it is easy to test drive the API. Go to

At the top, copy/paste the link to our OpenAPI 2.0 specification:

Next, click on the "Authorize" button on the right. In the value field enter

Bearer abababababababababababababababababababab

and click "Authorize" and then "Close". You can now use the API endpoints in the page.

Caution
Do not forget the word "Bearer" in front of the token.

5.5. Job Queues

The Storecove API is highly available. However, that does not mean 100%. No one can ever guarantee that.

We therefore recommend that all POSTs to our API are done in a job queue. Jobs can be rescheduled to automatically retry after an (increasing) amount of time and should the job finally fail, you can investigate why and potentially reschedule it manually.

5.6. Webhooks

Webhooks allow you to be notified of certain events taking place on the Storeove platform, without the need for polling. They consist of a URL that is called with a POST, optionally protected with HTTP Basic Authentication.

You should reply with a HTTP OK (200) to the POST. If another status code is presented or we fail to reach the specified URL, we will retry again at a later time for a total of 5 days.

You can create and manage your webhooks on the Storecove’s Website, under the "Settings" / "Webhooks" menu item. On that page you will see a list of you existing webhooks and a button that, once clicked, opens a modal where you can put the following data to create a new webhook:

  • the URL of the webhook: we will make a POST request to this address;

  • the event to notify;

  • optional HTTP Basic Authentication username and password: we will use these credentials when making a request to the endpoint.

We will keep calling the webhook until we receive an HTTP 200 from you, but only for 5 days.

During development, the following site may prove useful for viewing the webhooks we call:

https://webhook.site

5.6.1. For Sending Invoices

When an invoice submission is complete (more specifically all its actions have executed) we make a request to your webhooks in the following format:

{
    "event_type": "invoice_submission",
    "guid": "f4624435-7fc4-4fc2-9379-dcb641d593dc",
    "result": "failed",
    "actions": [{
        "type": "peppol",
        "destination": "NL:VAT.NL012345678B01",
        "result": "error"
    }],
    "tenant_id": "YourTenantId"
}

Possible results are:

  • succeeded

  • failed

  • no_action_taken

The result 'no action taken' is sent when none of the Peppol identifiers were available on the Peppol network and no fallback email address was provided.

There are three types of actions:

  • peppol

  • edi

  • email

Each has the following possible results:

  • received

  • error

  • unknown

The status 'unknown' indicates that the result of the action is not yet known. This status is not actively notified, but if you request the invoice_submission status through our API, you may get this status.

We will normally take only one action, but if the action has failed we may retry and create a second, third etc. action until one succeeds.

An invoice submission is considered "succeeded" if one of its actions has status "received".

The tenant_id property is related to the LegalEntity. If you specify it when creating or updating a LegalEntity, this field will be included in the webhook and can be used to determine which of your tenants the webhook is for. If you do not have a multi-tenant platform, this field can be ignored.

5.6.2. For Receiving Invoices

When a new invoice has been received for you, we will send a webhook with the following contents:

{
    "event_type": "received_invoice",
    "guid": "f4624435-7fc4-4fc2-9379-dcb641d593dc",
    "tenant_id": "YourTenantId"
}

You can then use the "guid" to retrieve the invoice from the

endpoint.

The tenant_id property is related to the LegalEntity. If you specify it when creating or updating a LegalEntity, this field will be included in the webhook and can be used to determine which of your tenants the webhook is for. If you do not have a multi-tenant platform, this field can be ignored.

6. API Reference

6.1. Resources

6.1.1. InvoiceSubmissions

Submit a new invoice
POST /invoice_submissions
Description

Submit an invoice for delivery.

TODO

The following contains most fields possible.

invoice_submission = StorecoveApi::InvoiceSubmission.new(
  mode: 'direct',
  legalEntityId: 1234567890,
  documentUrl: 'https://storecove.com/downloads/partner_manual.pdf',
  invoiceRecipient: StorecoveApi::InvoiceRecipient.new(id: @external_id_dev_support),
  invoice: StorecoveApi::Invoice.new(
    invoiceNumber: '201610001',
    issueDate: '2016-08-08',
    documentCurrencyCode: 'EUR',
    accountingCustomerParty: StorecoveApi::AccountingCustomerParty.new(
      party: StorecoveApi::Party.new(
        companyName: 'ManyMarkets Inc.',
        address: StorecoveApi::Address.new(
          department: 'Main Office',
          street1: 'Keizersgracht',
          number: '316',
          city: 'Amsterdam',
          zip: '1016EZ',
          country: 'NL'
        ),
        contact: StorecoveApi::Contact.new(
          firstName: 'Norm',
          lastName: 'Peters',
          email: 'norm@peters.example.com'
        )
      ),
      accountId: 'SupplierAccountCode1234'
    ),
    invoiceLines: [
      StorecoveApi::InvoiceLine.new(
        description: 'Pilot G2 Premium Retractable Gel Roller Pens, Bold Point, Blue, 12/Pack (31257)',
        id: 'ccvvffgg',
        itemPrice: 2.69,
        quantity: 3,
        amountExcludingVat: 8.07,
        tax: StorecoveApi::Tax.new(
          amount: 1.69,
          percentage: 21,
          country: 'NL'
        ),
        accountingCostCode: StorecoveApi::AccountingCostCode.new(
          code: '4206010',
          list: 'RGS',
          listVersion: '1.1',
          listAgency: 'SBR'
        ),
        invoicePeriod: '2016-07-01 - 2016-07-15'
      ),
      StorecoveApi::InvoiceLine.new(
        description: 'Elmer\'s Clear Glue Stick Class Pack, .24oz, 30/Pack',
        id: 'xxaabbcc',
        itemPrice: 4.8,
        quantity: 3.1,
        amountExcludingVat: 14.88,
        tax: StorecoveApi::Tax.new(
          amount: 3.12,
          percentage: 21,
          country: 'NL'
        ),
        accountingCostCode: StorecoveApi::AccountingCostCode.new(
          code: '4206011',
          list: 'RGS',
          listVersion: '1.1',
          listAgency: 'SBR'
        ),
        invoicePeriod: '2016-07-16 - 2016-07-31'
      )
    ],
    amountIncludingVat: 27.77,
    accountingCostCode: StorecoveApi::AccountingCostCode.new(
      code: '4206012',
      list: 'RGS',
      listVersion: '1.1',
      listAgency: 'SBR'
    ),
    dueDate: '2016-09-07',
    invoiceType: '380',
    invoicePeriod: '2016-07-01 - 2016-07-31',
    taxPointDate: '2016-08-08', # note: in some countries, like NL, this MUST match the issueDate
    buyerReference: 'a1234567',
    orderReference: 'b1234567',
    billingReference: 'c1234567',
    contractDocumentReference: 'd1234567',
    projectReference: 'e1234567',
    paymentMeansCode: nil,
    paymentMeansIban: 'NL00ABNA0123456789',
    paymentMeansPaymentId: '201610001 / XXXXX'
  )
)
begin
  client = StorecoveApiClient.new
  invoice_submission_result = client.invoice_submissions.create_invoice_submission(invoice_submission)
rescue StorecoveApi::ApiError => e
  # handle error - best use a queue manager!
  puts e.code
end

puts invoice_submission_result.guid

The following example contains only the mandatory fields.

invoice_submission = StorecoveApi::InvoiceSubmission.new(
  mode: 'direct',
  legalEntityId: 1234567890,
  invoiceRecipient: StorecoveApi::InvoiceRecipient.new(id: @external_id_dev_support),
  invoice: StorecoveApi::Invoice.new(
    invoiceNumber: '201610001',
    issueDate: '2016-08-08',
    documentCurrencyCode: 'EUR',
    accountingCustomerParty: StorecoveApi::AccountingCustomerParty.new(
      party: StorecoveApi::Party.new(
        companyName: 'ManyMarkets Inc.',
        address: StorecoveApi::Address.new(
          country: 'NL'
        )
      )
    ),
    invoiceLines: [
      StorecoveApi::InvoiceLine.new(
        description: 'Pilot G2 Premium Retractable Gel Roller Pens, Bold Point, Blue, 12/Pack (31257)',
        amountExcludingVat: 8.07,
        tax: StorecoveApi::Tax.new(
          amount: 1.69,
          percentage: 21,
          country: 'NL'
        )
      ),
      StorecoveApi::InvoiceLine.new(
        description: 'Elmer\'s Clear Glue Stick Class Pack, .24oz, 30/Pack',
        amountExcludingVat: 14.88,
        tax: StorecoveApi::Tax.new(
          amount: 3.12,
          percentage: 21,
          country: 'NL'
        )
      )
    ],
    amountIncludingVat: 27.77
  )
)
Parameters
Type Name Description Schema

Body

invoice_submission
required

Invoice to submit

Responses
HTTP Code Description Schema

200

Success

401

Unauthorized

No Content

403

Forbidden

No Content

422

Unprocessable Entity

< ErrorModel > array

Consumes
  • application/json

Preflight an invoice recipient
POST /invoice_submissions/preflight
Description

Check whether Storecove can deliver an invoice for a list of ids.

TODO
invoice_recipient_preflight = StorecoveApi::InvoiceRecipientPreflight.new(
    StorecoveApi::InvoiceRecipient.new(
        publicIdentifiers: [
            StorecoveApi::PublicIdentifier.new(
                id: '810418052',
                scheme: 'NO:ORGNR'
            )
        ]
    )
)
client = StorecoveApiClient.new
begin
    preflight_invoice_recipient_result = client.preflight_invoice_recipient(invoice_recipient_preflight)
rescue StorecoveApi::ApiError => e
    # handle error - best use a queue manager!
    puts e.code
end

puts preflight_invoice_recipient_result.code # will be 'ok' or 'nok'
Parameters
Type Name Description Schema

Body

invoice_recipient_preflight
required

The invoice recipient to preflight

Responses
HTTP Code Description Schema

200

Success

401

Unauthorized

No Content

403

Forbidden

No Content

422

Unprocessable Entity

< ErrorModel > array

Consumes
  • application/json

6.1.2. LegalEntities

POST /legal_entities
Description

Create a new LegalEntity.

Parameters
Type Name Description Schema

Body

legal_entity
required

LegalEntity to create

Responses
HTTP Code Description Schema

200

Success

401

Unauthorized

No Content

403

Forbidden

No Content

422

Unprocessable Entity

< ErrorModel > array

Consumes
  • application/json

GET /legal_entities/{id}
Description

Get a specific LegalEntity.

Parameters
Type Name Description Schema

Path

id
required

legal_entity id

integer (int64)

Responses
HTTP Code Description Schema

200

Success

401

Unauthorized

No Content

403

Forbidden

No Content

404

Not Found

No Content

DELETE /legal_entities/{id}
Description

Delete a specific LegalEntity.

Parameters
Type Name Description Schema

Path

id
required

legal_entity id

integer (int64)

Responses
HTTP Code Description Schema

204

Success

No Content

401

Unauthorized

No Content

403

Forbidden

No Content

404

Not Found

No Content

PATCH /legal_entities/{id}
Description

Update a specific LegalEntity.

Parameters
Type Name Description Schema

Path

id
required

legal_entity id

integer (int64)

Body

legal_entity
required

LegalEntity updates

Responses
HTTP Code Description Schema

200

Success

401

Unauthorized

No Content

403

Forbidden

No Content

404

Not Found

No Content

422

Unprocessable Entity

< ErrorModel > array

6.1.3. PeppolIdentifiers

Create a new PeppolIdentifier
POST /legal_entities/{legal_entity_id}/peppol_identifiers
Description

Create a new PeppolIdentifier.

Parameters
Type Name Description Schema

Path

legal_entity_id
required

The id of the LegalEntity for which to create the PeppolIdentifier

integer (int64)

Body

peppol_identifier
required

PeppolIdentifier to create

Responses
HTTP Code Description Schema

200

Success

401

Unauthorized

No Content

403

Forbidden

No Content

404

Not Found

No Content

422

Unprocessable Entity

< ErrorModel > array

Consumes
  • application/json

Delete PeppolIdentifier
DELETE /legal_entities/{legal_entity_id}/peppol_identifiers/{superscheme}/{scheme}/{identifier}
Description

Delete a PeppolIdentifier.

Parameters
Type Name Description Schema

Path

identifier
required

PEPPOL identifier

string

Path

legal_entity_id
required

The id of the LegalEntity this PeppolIdentifier belongs to

integer (int64)

Path

scheme
required

PEPPOL identifier scheme id, e.g. "DE:VAT". For a full list see «peppol_schemes_list».

string

Path

superscheme
required

The superscheme of the identifier. Should always be "iso6523-actorid-upis".

string

Responses
HTTP Code Description Schema

204

Success

No Content

401

Unauthorized

No Content

403

Forbidden

No Content

404

Not Found

No Content

6.1.4. PurchaseInvoices

Get Purchase invoice data
GET /purchase_invoices/{guid}/{packaging}/{package_version}
Description

Get a specific Invoice.

Parameters
Type Name Description Schema Default

Path

guid
required

purchase invoice guid

string (uuid)

Path

package_version
optional

The version of the ubl package (ignored for packaging "json").

enum (original, si11, si12)

"si12"

Path

packaging
optional

How to package the purchase invoice. Use "json" or "ubl"

enum (json, ubl)

"json"

Responses
HTTP Code Description Schema

200

Success

401

Unauthorized

No Content

403

Forbidden

No Content

404

Not Found

No Content

6.1.5. ShopAccountRequests

Create ShopAccountRequest
POST /shop_account_requests
Description

Create a new ShopAccountRequest

TODO
shop_account_request_input = StorecoveApi::ShopAccountRequestInput.new
shop_account_request_input.username = 'username'
shop_account_request_input.password = 'secret'
shop_account_request_input.request_name = 'Storecove'
shop_account_request_input.password = 'https:/www.storecove.com/'
shop_account_request_input.external_user_id = '<your entity id>'
client = StorecoveApiClient.new
begin
    shop_account_request_result = client.shop_account_requests.create_shop_account_request(shop_account_request_input)
rescue StorecoveApi::ApiError => e
    # handle error - best use a queue manager!
    puts e.code
end
Parameters
Type Name Description Schema

Body

shop_account_request
required

ShopAccountRequest to add

Responses
HTTP Code Description Schema

200

Success

401

Unauthorized

No Content

403

Forbidden

No Content

422

Unprocessable Entity

< ErrorModel > array

Consumes
  • application/json

Get ShopAccountRequests
GET /shop_account_requests
Description

Retrieve all active ShopAccountRequests for one of your entities.

TODO
client = StorecoveApiClient.new
shop_account_requests = client.shop_account_requests.shop_account_requests_index('your_entity_id')
Parameters
Type Name Description Schema

Query

external_user_id
required

Filter by the external_user_id

string

Responses
HTTP Code Description Schema

200

Success

401

Unauthorized

No Content

403

Forbidden

No Content

Get ShopAccountRequest
GET /shop_account_requests/{id}
Description

Show a specific ShopAccountRequest

TODO
client = StorecoveApiClient.new
shop_account_request = client.shop_account_requests.get_shop_account_request(1234567890)
Parameters
Type Name Description Schema

Path

id
required

shop_account_request id

integer (int64)

Responses
HTTP Code Description Schema

200

Success

401

Unauthorized

No Content

403

Forbidden

No Content

Delete ShopAccountRequest
DELETE /shop_account_requests/{id}
Description

Delete a specific ShopAccountRequest

TODO
client = StorecoveApiClient.new
begin
    client.shop_account_requests.delete_shop_account_request(1234567890)
rescue StorecoveApi::ApiError => e
    # handle error - best use a queue manager!
end
Parameters
Type Name Description Schema

Path

id
required

shop_account_request id

integer (int64)

Responses
HTTP Code Description Schema

204

Success

No Content

401

Unauthorized

No Content

403

Forbidden

No Content

Update ShopAccountRequest
PATCH /shop_account_requests/{id}
Description

Update a specific ShopAccountRequest

TODO
shop_account_request_update = StorecoveApi::ShopAccountUpdate.new
shop_account_request_update.username = 'newusername'
shop_account_request_update.password = 'newsecret'
shop_account_request_update.email = 'newsendto@example.com'
client = StorecoveApiClient.new
begin
    shop_account_request_result = client.shop_account_requests.update_shop_account_request(shop_account_request_update)
rescue StorecoveApi::ApiError => e
    # handle error - best use a queue manager!
    puts e.code
end
Parameters
Type Name Description Schema

Path

id
required

shop_account_request id

integer (int64)

Body

shop_account_request
required

ShopAccountRequest updates

Responses
HTTP Code Description Schema

200

Success

401

Unauthorized

No Content

403

Forbidden

No Content

422

Unprocessable Entity

< ErrorModel > array

6.1.6. ShopAccounts

Create ShopAccount
POST /shop_accounts
Description

Create a new ShopAccount.

TODO
shop_account_input = StorecoveApi::ShopAccountInput.new
shop_account_input.username = 'username'
shop_account_input.password = 'secret'
shop_account_input.shop_id = 123456789
shop_account_input.external_user_id = 'your_user_id'
shop_account_input.email = 'sendto@example.com'
client = StorecoveApiClient.new
begin
    shop_account_result = client.shop_accounts.create_shop_account(shop_account_input)
rescue StorecoveApi::ApiError => e
    # handle error - best use a queue manager!
    puts e.code
end
Parameters
Type Name Description Schema

Body

shop_account
required

ShopAccount to add

Responses
HTTP Code Description Schema

200

Success

401

Unauthorized

No Content

403

Forbidden

No Content

422

Unprocessable Entity

< ErrorModel > array

Consumes
  • application/json

Get ShopAccounts for an entity
GET /shop_accounts
Description

Retrieve all active ShopAccounts for one of your entities.

TODO
client = StorecoveApiClient.new
shop_accounts = client.shop_accounts.shop_accounts_index('your_entity_id')
Parameters
Type Name Description Schema

Query

external_user_id
required

Filter by the external_user_id

string

Responses
HTTP Code Description Schema

200

Success

< ShopAccountResult > array

401

Unauthorized

No Content

403

Forbidden

No Content

Get ShopAccounts with authorization failures
GET /shop_accounts/auth_failures
Description

Get ShopAccounts with authorization failures.

TODO
client = StorecoveApiClient.new
shop_accounts = client.shop_accounts.shop_accounts_auth_failures
Responses
HTTP Code Description Schema

200

Success

< ShopAccountResult > array

401

Unauthorized

No Content

403

Forbidden

No Content

Get ShopAccount
GET /shop_accounts/{id}
Description

Get a specific ShopAccount.

TODO
client = StorecoveApiClient.new
shop_account = client.shop_accounts.get_shop_account(1234567890)
Parameters
Type Name Description Schema

Path

id
required

shop_account id

integer (int64)

Responses
HTTP Code Description Schema

200

Success

401

Unauthorized

No Content

403

Forbidden

No Content

Delete ShopAccount
DELETE /shop_accounts/{id}
Description

Delete a specific ShopAccount.

TODO
client = StorecoveApiClient.new
begin
    client.shop_accounts.delete_shop_account(1234567890)
rescue StorecoveApi::ApiError => e
    # handle error - best use a queue manager!
end
Parameters
Type Name Description Schema

Path

id
required

shop_account id

integer (int64)

Responses
HTTP Code Description Schema

204

Success

No Content

401

Unauthorized

No Content

403

Forbidden

No Content

Update ShopAccount
PATCH /shop_accounts/{id}
Description

Update a specific ShopAccount.

TODO
shop_account_update = StorecoveApi::ShopAccountUpdate.new
shop_account_update.username = 'newusername'
shop_account_update.password = 'newsecret'
shop_account_update.email = 'newsendto@example.com'
client = StorecoveApiClient.new
begin
    shop_account_result = client.shop_accounts.update_shop_account(shop_account_update)
rescue StorecoveApi::ApiError => e
    # handle error - best use a queue manager!
    puts e.code
end
Parameters
Type Name Description Schema

Path

id
required

shop_account id

integer (int64)

Body

shop_account
required

ShopAccount updates

Responses
HTTP Code Description Schema

200

Success

401

Unauthorized

No Content

403

Forbidden

No Content

422

Unprocessable Entity

< ErrorModel > array

6.1.7. Shops

Get Shops
GET /shops
Description

Get all available shops.

curl -X GET --header 'Accept: application/json' --header 'Authorization: <api_key>' 'https://api.storecove.com/api/v2/shops'

Response:

[
  {
    "id": 0,
    "name": "string",
    "logo": {
      "thumb": "string",
      "small": "string",
      "medium": "string"
    },
    "description": "string",
    "legal_entities": [
      {
        "name": "string",
        "line1": "string",
        "zip": "string",
        "city": "string",
        "county": "string",
        "country": "string",
        "identifiers": [
          {
            "identifier": "string",
            "scheme": "string",
            "scheme_agency": "string"
          }
        ]
      }
    ]
  }
]
client = StorecoveApiClient.new
shops = client.shops.shops_index
Parameters
Type Name Description Schema

Query

cc
optional

Include creditcards in list. Add ?cc=true to URL to use.

string

Responses
HTTP Code Description Schema

200

Success

< Shop > array

401

Unauthorized

No Content

6.2. Definitions

6.2.1. AccountingCostCode

The code in the chart of accounts used by the receiver of the invoice.

Name Description Schema

code
optional

The buyer’s accounting cost centre for this invoice(line), expressed as a code
Minimum length : 1

string

list
optional

The identification of a list of codes.
Minimum length : 1

string

listAgency
optional

An agency that maintains one or more lists of codes.
Minimum length : 1

string

listVersion
optional

The version of the list of codes.
Minimum length : 1

string

6.2.2. AccountingCustomerParty

The customer receiving the invoice.

Name Description Schema

accountId
optional

The account id you assigned to the customer.

string

party
required

6.2.3. AccountingSupplierParty

The party sending the invoice. Most data for the AccountingSupplierParty is taken from the Storecove database, where your sender identity resides and has been validated. However, we provide a limited number of fields here that you can specify on an invoice-by-invoice basis.

Name Schema

party
optional

6.2.4. AdditionalItemProperty

An additional property for the item

Name Description Schema

name
required

The name of the property.
Minimum length : 1

string

value
required

The value of the property.

string

6.2.5. Address

The address

Name Description Schema

city
optional

The name of the city.
Minimum length : 2

string

country
required

county
optional

An optional county name.

string

department
optional

The department

string

number
optional

This number will be added to the street1 element. The number can be provided in this field OR in the street1 field, but not in both.

string

postbox
optional

The postbox number

string

street1
optional

The street name. The number can be provided in this fiedl OR in the number field, but not in both.
Minimum length : 2

string

street2
optional

The second street field. Use this if you used the first field for the building name.

string

zip
optional

The zipcode/postalzone.
Minimum length : 2

string

6.2.6. AllowanceCharge

Name Description Schema

amountExcludingVat
required

The amount for the allowance or charge, excluding VAT

number

reason
optional

The reason for the allowance or charge, free text
Default : "Agreed settlement"

string

reasonCode
optional

Do not use. Contact Storecove first if you want to use this field.

string

tax
required

The tax for this allowance or charge.

Tax

6.2.7. Attachment

A document attachment to the invoice.

Name Description Schema

document
required

The base64 encoded version of the document attachment.
Minimum length : 5

string

filename
optional

The name of the file attachment.
Pattern : "^[a-zA-Z0-9]([a-zA-Z0-9.-]*[a-zA-Z0-9])?\\.[a-zA-Z0-9-]+$"

string

mimeType
required

The document attachment mime type. Currently only application/pdf is allowed.

enum (application/pdf)

primaryImage
optional

Whether or not this document is a visual representation of the invoice data.
Default : false

boolean

6.2.8. BuyerCustomerParty

The buyer receiving the invoice.

Name Description Schema

accountId
optional

The account id you assigned to the customer.

string

party
required

6.2.9. Contact

Contact details for the invoice

Name Description Schema

email
optional

string (email)

firstName
optional

string

lastName
optional

string

phone
optional

Only supported for AccountingSupplierParty.

string

6.2.10. Country

An ISO 3166-1 alpha-2 country code.

Type : enum (AD, AE, AF, AG, AI, AL, AM, AO, AQ, AR, AS, AT, AU, AW, AX, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BL, BM, BN, BO, BQ, BR, BS, BT, BV, BW, BY, BZ, CA, CC, CD, CF, CG, CH, CI, CK, CL, CM, CN, CO, CR, CU, CV, CW, CX, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, EH, ER, ES, ET, FI, FJ, FK, FM, FO, FR, GA, GB, GD, GE, GF, GG, GH, GI, GL, GM, GN, GP, GQ, GR, GS, GT, GU, GW, GY, HK, HM, HN, HR, HT, HU, ID, IE, IL, IM, IN, IO, IQ, IR, IS, IT, JE, JM, JO, JP, KE, KG, KH, KI, KM, KN, KP, KR, KW, KY, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MF, MG, MH, MK, ML, MM, MN, MO, MP, MQ, MR, MS, MT, MU, MV, MW, MX, MY, MZ, NA, NC, NE, NF, NG, NI, NL, NO, NP, NR, NU, NZ, OM, PA, PE, PF, PG, PH, PK, PL, PM, PN, PR, PS, PT, PW, PY, QA, RE, RO, RS, RU, RW, SA, SB, SC, SD, SE, SG, SH, SI, SJ, SK, SL, SM, SN, SO, SR, SS, ST, SV, SX, SY, SZ, TC, TD, TF, TG, TH, TJ, TK, TL, TM, TN, TO, TR, TT, TV, TW, TZ, UA, UG, UM, US, UY, UZ, VA, VC, VE, VG, VI, VN, VU, WF, WS, YE, YT, ZA, ZM, ZW)

6.2.11. CurrencyCode

The ISO 4217 currency code.

Type : enum (AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BYN, BYR, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRO, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SSP, STD, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UZS, VEF, VND, VUV, WST, XAF, XAG, XAU, XBA, XBB, XBC, XBD, XCD, XDR, XFU, XOF, XPD, XPF, XPT, XSU, XTS, XUA, XXX, YER, ZAR, ZMW)

6.2.12. Delivery

Name Description Schema

actualDate
optional

The actual date of the delivery.
Pattern : "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"

string

location
optional

quantity
optional

The quantity of the delivery.

number

location

Name Description Schema

address
optional

id
optional

The location identifier.
Minimum length : 2

string

schemeAgencyId
optional

The schemeAgencyId of the location identifier (e.g. 'ZZZ')

string

schemeId
optional

The schemeId of the location identifier (e.g. 'EAN')

string

6.2.13. ErrorModel

Name Schema

details
optional

string

source
optional

string

6.2.14. Invoice

The invoice to send

Name Description Schema

accountingCost
optional

DEPRECATED. Use accountingCostCode. The buyer’s accounting cost centre for this invoice, expressed as text.
Minimum length : 1

string

accountingCostCode
optional

accountingCustomerParty
required

The party the invoice is sent to.

accountingSupplierParty
optional

The party sending the invoice. Most data for the AccountingSupplierParty is taken from the Storecove database, where your sender identity resides and has been validated. However, we provide a limited number of fields (mainly contact fields) here that you can specify on an invoice-by-invoice basis. Contact us if you want to use this feature.

allowanceCharges
optional

An array of allowance charges.

< AllowanceCharge > array

amountIncludingVat
required

amountIncludingVat is important because of rounding differences. In many invoices, the sum of the line item amounts excluding VAT and the VAT amounts is not equal to first summing the line items without VAT, and then applying VAT. The difference is automatically calculated and included in the electronic invoice, so the receiving accounting package can process the electronic invoice without problems.

number

billingReference
optional

A reference to a commercial invoice or corrective invoice of which the current invoice is a correction. This field is mandatory when sending invoiceType 384.

string

buyerCustomerParty
optional

The buyer party.

buyerReference
optional

A reference provided by the buyer used for internal routing of the document.

string

contractDocumentReference
optional

A reference to a contract or framework agreement that this invoice relates to.

string

delivery
optional

The delivery of the invoice.

documentCurrencyCode
optional

The documentCurrencyCode is the currency for the entire invoice. We currently do not support invoices in multiple currencies. If left out, will default to EUR

dueDate
optional

Format: yyyy-mm-dd.
Pattern : "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"

string

invoiceLines
required

An array of invoice lines.

< InvoiceLine > array

invoiceNumber
required

The invoice number you assigned to the invoice. The invoiceNumber should be unique for the legalEntityId and year of the issueDate. This means invoice numbers can be reused in different years, as is customary in some countries.
Minimum length : 1

string

invoicePeriod
optional

The period (or specific date) to which the invoice applies. Format: yyyy-mm-dd - yyyy-mm-dd.
Pattern : "^[0-9]{4}-[0-9]{2}-[0-9]{2} - [0-9]{4}-[0-9]{2}-[0-9]{2}$"

string

invoiceType
optional

Do not use. This field is available for legacy reasons only. If you want to send a regular invoice (aka UBL type '380'), make sure you have a positive invoice amount. For a credit note (aka UBL type '381'), simply provide a negative invoice amount. If you, in addition to a negative invoice amount, also specify a billingReferences, your invoice will become a corrective invoice (aka UBL type '384'). If your invoice is not sent in the UBL syntax, Storecove will provide the appropriate type for the syntax the invoice is sent in.
Default : "380"

enum (380, 381, 384)

issueDate
required

Format: yyyy-mm-dd.
Pattern : "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"

string

note
optional

A note to add to the invoice

string

orderReference
optional

A reference to an order for this invoice, assigned by the buyer. Note that this often is a key field, since many receivers of invoices will use this field to automatically match the invoice to an order they placed. Many receivers refuse invoices that cannot be automatically matched, in particular government agencies. So it is highly recommended to fill this field whenever possible.

string

paymentMeansCode
optional

How the invoice has been / will be paid. Use only online_payment_service (payment will be made or has been made by an online payment service), bank_card (e.g. debit card, credit card), direct_debit (the amount has been / will be taken out of the client’s bank account), standing_agreement (an unspecified payment means known to both buyer and seller) or credit_transfer (the buyer will do / has done a bank transfer). The numeric codes are for legacy purposes, they should not be used.

enum (online_payment_service, bank_card, direct_debit, standing_agreement, credit_transfer, , 1, 30, 31, 42, 48, 49, 57, 58)

paymentMeansIban
optional

The IBAN the amount payable should be transferred to

string

paymentMeansPaymentId
optional

The payment id that you will use to match the payment against the invoice.

string

prepaidAmount
optional

The amount already paid.

number

projectReference
optional

Information about the project this invoice relates to.

string

salesOrderId
optional

A reference to an order for this invoice, assigned by the seller.

string

taxExemptReason
optional

The reason no tax is present on the invoice. allowed: export, reverse_charge, zero_rated. Note that this is an invoice level field and you cannot currently specify it per invoice line.

enum (export, reverse_charge, zero_rated)

taxPointDate
optional

The tax date is the date on which the supply of goods or of services was made or completed or the date on which the payment on account was made insofar as that date can be determined and differs from the date of the issue of the invoice. EU 2006-112 Article 226 Point 7. Note: For the Dutch TAX authorities the tac date should be the same as the issue date.
Pattern : "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"

string

taxSubtotals
optional

An array of tax subtotals. This element is mandatory for taxSystem 'tax_line_percentages'.

< TaxSubtotal > array

taxSystem
optional

The tax system used for the invoice. The system 'tax_line_percentages' is preferred, but for historic purposes 'tax_line_amounts is supported and default. Since not all invoice formats that we are required to send support 'tax_line_amounts' we will need to convert the invoice to the 'tax_line_percentags' system if we are forced to send the invoice in that tax system.
Default : "tax_line_amounts"

enum (tax_line_amounts, tax_line_percentages)

ublExtensions
optional

An array of ubl extensions.

< string > array

vatReverseCharge
optional

DEPRECTATED. Use taxExemptReason.
Default : false

boolean

6.2.15. InvoiceLine

Name Description Schema

accountingCost
optional

The buyer’s accounting cost centre for this invoice line, expressed as text.
Minimum length : 1

string

accountingCostCode
optional

additionalItemProperties
optional

An array of additional item properties.

allowanceCharge
optional

The discount or surcharge on this item. Should be negative for discounts

number

amountExcludingVat
required

The amount excluding VAT. Should equal quantity x itemPrice + allowanceCharge.

number

buyersItemIdentification
optional

The ID the buyer assigned to this item.
Minimum length : 1

string

delivery
optional

The delivery of the invoice line.

description
optional

The description for this invoice line.
Minimum length : 1

string

invoicePeriod
optional

The period (or specific date) to which the invoice line applies. Format: yyyy-mm-dd - yyyy-mm-dd.
Pattern : "^[0-9]{4}-[0-9]{2}-[0-9]{2} - [0-9]{4}-[0-9]{2}-[0-9]{2}$"

string

itemPrice
optional

The price per item (may be fractional)

number

name
optional

A short name for this invoice line. If not provided, it will be taken from description and description will be set to an emtpy string.
Minimum length : 1

string

quantity
optional

The number of items (may be fractional).

number

quantityUnitCode
optional

A unit code from UNECE Rec20. The complete list can be found at http://www.datypic.com/sc/ubl20/a-unitCode-4.html
Default : "C62"

enum (04, 05, 08, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 43, 44, 45, 46, 47, 48, 53, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 69, 71, 72, 73, 74, 76, 77, 78, 80, 81, 84, 85, 87, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 1A, 1B, 1C, 1D, 1E, 1F, 1G, 1H, 1I, 1J, 1K, 1L, 1M, 1X, 2A, 2B, 2C, 2I, 2J, 2K, 2L, 2M, 2N, 2P, 2Q, 2R, 2U, 2V, 2W, 2X, 2Y, 2Z, 3B, 3C, 3E, 3G, 3H, 3I, 4A, 4B, 4C, 4E, 4G, 4H, 4K, 4L, 4M, 4N, 4O, 4P, 4Q, 4R, 4T, 4U, 4W, 4X, 5A, 5B, 5C, 5E, 5F, 5G, 5H, 5I, 5J, 5K, 5P, 5Q, A1, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A2, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A3, A30, A31, A32, A33, A34, A35, A36, A37, A38, A39, A4, A40, A41, A42, A43, A44, A45, A47, A48, A49, A5, A50, A51, A52, A53, A54, A55, A56, A57, A58, A6, A60, A61, A62, A63, A64, A65, A66, A67, A68, A69, A7, A70, A71, A73, A74, A75, A76, A77, A78, A79, A8, A80, A81, A82, A83, A84, A85, A86, A87, A88, A89, A9, A90, A91, A93, A94, A95, A96, A97, A98, AA, AB, ACR, AD, AE, AH, AI, AJ, AK, AL, AM, AMH, AMP, ANN, AP, APZ, AQ, AR, ARE, AS, ASM, ASU, ATM, ATT, AV, AW, AY, AZ, B0, B1, B11, B12, B13, B14, B15, B16, B18, B2, B20, B21, B22, B23, B24, B25, B26, B27, B28, B29, B3, B31, B32, B33, B34, B35, B36, B37, B38, B39, B4, B40, B41, B42, B43, B44, B45, B46, B47, B48, B49, B5, B50, B51, B52, B53, B54, B55, B56, B57, B58, B59, B6, B60, B61, B62, B63, B64, B65, B66, B67, B69, B7, B70, B71, B72, B73, B74, B75, B76, B77, B78, B79, B8, B81, B83, B84, B85, B86, B87, B88, B89, B9, B90, B91, B92, B93, B94, B95, B96, B97, B98, B99, BAR, BB, BD, BE, BFT, BG, BH, BHP, BIL, BJ, BK, BL, BLD, BLL, BO, BP, BQL, BR, BT, BTU, BUA, BUI, BW, BX, BZ, C0, C1, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C2, C20, C22, C23, C24, C25, C26, C27, C28, C29, C3, C30, C31, C32, C33, C34, C35, C36, C38, C39, C4, C40, C41, C42, C43, C44, C45, C46, C47, C48, C49, C5, C50, C51, C52, C53, C54, C55, C56, C57, C58, C59, C6, C60, C61, C62, C63, C64, C65, C66, C67, C68, C69, C7, C70, C71, C72, C73, C75, C76, C77, C78, C8, C80, C81, C82, C83, C84, C85, C86, C87, C88, C89, C9, C90, C91, C92, C93, C94, C95, C96, C97, C98, C99, CA, CCT, CDL, CEL, CEN, CG, CGM, CH, CJ, CK, CKG, CL, CLF, CLT, CMK, CMQ, CMT, CNP, CNT, CO, COU, CQ, CR, CS, CT, CTM, CU, CUR, CV, CWA, CWI, CY, CZ, D1, D10, D12, D13, D14, D15, D16, D17, D18, D19, D2, D20, D21, D22, D23, D24, D25, D26, D27, D28, D29, D30, D31, D32, D33, D34, D35, D37, D38, D39, D40, D41, D42, D43, D44, D45, D46, D47, D48, D49, D5, D50, D51, D52, D53, D54, D55, D56, D57, D58, D59, D6, D60, D61, D62, D63, D64, D65, D66, D67, D69, D7, D70, D71, D72, D73, D74, D75, D76, D77, D79, D8, D80, D81, D82, D83, D85, D86, D87, D88, D89, D9, D90, D91, D92, D93, D94, D95, D96, D97, D98, D99, DAA, DAD, DAY, DB, DC, DD, DE, DEC, DG, DI, DJ, DLT, DMK, DMQ, DMT, DN, DPC, DPR, DPT, DQ, DR, DRA, DRI, DRL, DRM, DS, DT, DTN, DU, DWT, DX, DY, DZN, DZP, E2, E3, E4, E5, EA, EB, EC, EP, EQ, EV, F1, F9, FAH, FAR, FB, FC, FD, FE, FF, FG, FH, FL, FM, FOT, FP, FR, FS, FTK, FTQ, G2, G3, G7, GB, GBQ, GC, GD, GE, GF, GFI, GGR, GH, GIA, GII, GJ, GK, GL, GLD, GLI, GLL, GM, GN, GO, GP, GQ, GRM, GRN, GRO, GRT, GT, GV, GW, GWH, GY, GZ, H1, H2, HA, HAR, HBA, HBX, HC, HD, HE, HF, HGM, HH, HI, HIU, HJ, HK, HL, HLT, HM, HMQ, HMT, HN, HO, HP, HPA, HS, HT, HTZ, HUR, HY, IA, IC, IE, IF, II, IL, IM, INH, INK, INQ, IP, IT, IU, IV, J2, JB, JE, JG, JK, JM, JO, JOU, JR, K1, K2, K3, K5, K6, KA, KB, KBA, KD, KEL, KF, KG, KGM, KGS, KHZ, KI, KJ, KJO, KL, KMH, KMK, KMQ, KNI, KNS, KNT, KO, KPA, KPH, KPO, KPP, KR, KS, KSD, KSH, KT, KTM, KTN, KUR, KVA, KVR, KVT, KW, KWH, KWT, KX, L2, LA, LBR, LBT, LC, LD, LE, LEF, LF, LH, LI, LJ, LK, LM, LN, LO, LP, LPA, LR, LS, LTN, LTR, LUM, LUX, LX, LY, M0, M1, M4, M5, M7, M9, MA, MAL, MAM, MAW, MBE, MBF, MBR, MC, MCU, MD, MF, MGM, MHZ, MIK, MIL, MIN, MIO, MIU, MK, MLD, MLT, MMK, MMQ, MMT, MON, MPA, MQ, MQH, MQS, MSK, MT, MTK, MTQ, MTR, MTS, MV, MVA, MWH, N1, N2, N3, NA, NAR, NB, NBB, NC, NCL, ND, NE, NEW, NF, NG, NH, NI, NIU, NJ, NL, NMI, NMP, NN, NPL, NPR, NPT, NQ, NR, NRL, NT, NTT, NU, NV, NX, NY, OA, OHM, ON, ONZ, OP, OT, OZ, OZA, OZI, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, PA, PAL, PB, PD, PE, PF, PG, PGL, PI, PK, PL, PM, PN, PO, PQ, PR, PS, PT, PTD, PTI, PTL, PU, PV, PW, PY, PZ, Q3, QA, QAN, QB, QD, QH, QK, QR, QT, QTD, QTI, QTL, QTR, R1, R4, R9, RA, RD, RG, RH, RK, RL, RM, RN, RO, RP, RPM, RPS, RS, RT, RU, S3, S4, S5, S6, S7, S8, SA, SAN, SCO, SCR, SD, SE, SEC, SET, SG, SHT, SIE, SK, SL, SMI, SN, SO, SP, SQ, SR, SS, SST, ST, STI, STN, SV, SW, SX, T0, T1, T3, T4, T5, T6, T7, T8, TA, TAH, TC, TD, TE, TF, TI, TJ, TK, TL, TN, TNE, TP, TPR, TQ, TQD, TR, TRL, TS, TSD, TSH, TT, TU, TV, TW, TY, U1, U2, UA, UB, UC, UD, UE, UF, UH, UM, VA, VI, VLT, VQ, VS, W2, W4, WA, WB, WCD, WE, WEB, WEE, WG, WH, WHR, WI, WM, WR, WSD, WTT, WW, X1, YDK, YDQ, YL, YRD, YT, Z1, Z2, Z3, Z4, Z5, Z6, Z8, ZP, ZZ)

sellersItemIdentification
optional

The ID the seller assigned to this item.
Minimum length : 1

string

standardItemIdentification
optional

Standardized ID for the item.
Minimum length : 1

string

standardItemIdentificationSchemeAgencyId
optional

The scheme agency for the standardized ID for the item.
Default : "9"
Minimum length : 1

string

standardItemIdentificationSchemeId
optional

The scheme for the standardized ID for the item.
Default : "GTIN"
Minimum length : 1

string

tax
optional

The tax for this invoice line.

Tax

6.2.16. InvoiceRecipient

Ids that identify this invoice recipient. When sending invoices with VAT (or with a taxExemptReason), a receiver VAT number is required. Only within the NL legal domain is it allowed to send invoices with VAT but without a VAT number.

Name Description Schema

emails
optional

The email addresses the invoice should be sent to if none of the other identifiers can be used

< string (email) > array

publicIdentifiers
optional

The public identifiers for this invoice recipient. These are the identifiers used on the Peppol network. Note that when sending invoices with VAT (or with a taxExemptReason), a receiver VAT number is required and that should be one of these publicIdentifiers. Only within the NL legal domain is it allowed to send invoices with VAT but without a VAT number.

6.2.17. InvoiceRecipientPreflight

Identifies the invoice recipient to preflight

Name Description Schema

publicIdentifiers
optional

The public identifiers for this invoice recipient.

6.2.18. InvoiceSubmission

The invoice you want Storecove to process, with some meta-data.

Name Description Schema

attachments
optional

An array of attachments. You may provide up to 10 attchments, but the total size must not exceed 10MB after Base64 encoding.

< Attachment > array

document
optional

DEPRECATED. Use attachments.

string

documentUrl
optional

DEPRECATED. Use attachments.

string (uri)

invoice
required

invoiceRecipient
required

legalEntityId
optional

The id of the LegalEntity this invoice should be sent for.

integer

legalSupplierId
optional

DEPRECATED. Use legalEntityId

integer

mode
optional

DEPRECATED.

enum (direct)

supplierId
optional

DEPRECATED.

integer

6.2.19. InvoiceSubmissionResult

The result of an invoice submission

Name Description Schema

guid
optional

A (V4) GUID for the invoice submission

string

6.2.20. LegalEntity

Polymorphism : Composition

Name Description Schema

city
optional

The city.
Length : 2 - 64

string

country
optional

county
optional

County, if applicable
Maximal length : 64

string

id
optional

The Storecove assigned id for the LegalEntity.

integer (int64)

line1
optional

The first address line.
Length : 2 - 64

string

line2
optional

The second address line, if applicable
Maximal length : 64

string

party_name
optional

The name of the company.
Length : 2 - 64

string

peppol_identifiers
optional

< PeppolIdentifier > array

tenant_id
optional

The id of the tenant, to be used in case of multi-tenant solutions. This property will included in webhook events.
Maximal length : 64

string

zip
optional

The zipcode.
Length : 2 - 32

string

6.2.21. LegalEntityCreate

Name Description Schema

city
required

The city.
Length : 2 - 64

string

country
required

county
optional

County, if applicable
Maximal length : 64

string

line1
required

The first address line.
Length : 2 - 64

string

line2
optional

The second address line, if applicable
Maximal length : 64

string

party_name
required

The name of the company.
Length : 2 - 64

string

tenant_id
optional

The id of the tenant, to be used in case of multi-tenant solutions. This property will included in webhook events.
Maximal length : 64

string

zip
required

The zipcode.
Length : 2 - 32

string

6.2.22. LegalEntityIdentifier

Name Schema

identifier
optional

string

scheme
optional

string

scheme_agency
optional

string

6.2.23. LegalEntityShop

Name Schema

city
optional

string

country
optional

string

county
optional

string

identifiers
optional

line1
optional

string

line2
optional

string

name
optional

string

zip
optional

string

6.2.24. LegalEntityUpdate

Name Description Schema

city
optional

The city.
Length : 2 - 64

string

country
optional

county
optional

County, if applicable
Maximal length : 64

string

id
optional

The Storecove assigned id for the LegalEntity.

integer (int64)

line1
optional

The first address line.
Length : 2 - 64

string

line2
optional

The second address line, if applicable
Maximal length : 64

string

party_name
optional

The name of the company.
Length : 2 - 64

string

tenant_id
optional

The id of the tenant, to be used in case of multi-tenant solutions. This property will included in webhook events.
Maximal length : 64

string

zip
optional

The zipcode.
Length : 2 - 32

string

6.2.25. Logos

Name Schema

medium
optional

string

small
optional

string

thumb
optional

string

6.2.26. Party

A party that can receive or send invoices

Name Description Schema

address
required

companyName
required

The name of the company receiving the invoice
Minimum length : 2

string

contact
optional

6.2.27. PeppolIdentifier

Name Description Schema

identifier
optional

The identifier.
Length : 2 - 64

string

scheme
optional

The scheme of the identifier. See Peppol Schemes List for a list.
Length : 2 - 64

string

superscheme
optional

The superscheme of the identifier. Should always be "iso6523-actorid-upis".
Length : 2 - 64

string

6.2.28. PeppolIdentifierCreate

Name Description Schema

identifier
required

The identifier.
Length : 2 - 64

string

scheme
required

The scheme of the identifier. See Peppol Schemes List for a list.
Length : 2 - 64

string

superscheme
required

The superscheme of the identifier. Should always be "iso6523-actorid-upis".
Length : 2 - 64

string

6.2.29. PreflightInvoiceRecipientResult

The result of preflighting an invoice recipient

Name Description Schema

code
optional

The result code of the preflight request

enum (ok, nok)

6.2.30. PublicIdentifier

A public identifier for this customer.

Name Description Schema

id
required

The actual identifier.
Minimum length : 2

string

scheme
required

The scheme of the identifier. See Peppol Schemes List for a list.
Minimum length : 3

string

6.2.31. PublicIdentifiers

A list of public identifiers that uniquely identifiy this customer.

Type : < PublicIdentifier > array

6.2.32. PurchaseInvoice

Name Description Schema

accounting
optional

The accounting details for the invoice.

allowance_charge
optional

A correction on the amount to pay, for instance if the invoice has been prepaid, in which case it will be negative.

number

amount_including_vat
optional

The total invoice amount payable, including VAT. This is equal to the sum of the invoice_lines (amount_excluding_vat + vat.amount)

number

billing_reference
optional

The end date of the period this invoice relates to. Format "YYYY-MM-DD".

string

buyer_reference
optional

The end date of the period this invoice relates to. Format "YYYY-MM-DD".

string

contract_document_reference
optional

The end date of the period this invoice relates to. Format "YYYY-MM-DD".

string

document
optional

The Base64 encoded PDF document associated with the invoice.

string

document_currency_code
optional

The ISO 4217 currency for the invoice.

string

due_date
optional

The date the invoice must be payed by. Format "YYYY-MM-DD".

string

external_key
optional

Used for accountants. The id you specified for the organization.

string

external_user_id
optional

Used for the embedded portal retrieval service. The external_user_id you provided when the ShopAccount was created.

string

guid
optional

The GUID of the invoice

string (uuid)

invoice_lines
optional

invoice_number
optional

The invoicenumber.

string

invoice_type
optional

The type of invoice.

enum (invoice, creditnote, correctioninvoice)

issue_date
optional

The date the invoice was issued. Format "YYYY-MM-DD".

string

legal_entity_id
optional

The id of the LegalEntity the invoice was received for.

integer (int64)

payable_amount
optional

The total invoice amount payable including VAT. This is equal to amount_including_vat + allowance_charge + payable_rounding_amount. This property is redundant and provided only to make invoice processing more easy. You can also choose to only store this property, instead of the underlying fields.

number

payable_rounding_amount
optional

The difference between the invoice total and the sum of the invoice lines.

number

payment_means
optional

How the invoice can be paid.

period_end
optional

The end date of the period this invoice relates to. Format "YYYY-MM-DD".

string

period_start
optional

The start date of the period this invoice relates to. Format "YYYY-MM-DD".

string

prepaid_amount
optional

The amount already paid.

number

sender
optional

The organzation that sent the invoice.

source
optional

The source the invoice was received from.

enum (peppol, script, supplier, email)

tax_point_date
optional

The date the invoice was issued for tax purposes. In most countries MUST match the issue_date. Format "YYYY-MM-DD".

string

vat_reverse_charge
optional

Whether or not the invoice is reverse charged.

boolean

Payment Means

Name Description Schema

iban
optional

The IBAN to which to transfer.

string

id
optional

An id to mention in the transfer.

string

6.2.33. PurchaseInvoiceAccountingDetails

Name Description Schema

code
optional

The the code of the general ledger account.

string

list
optional

The name of the list for the code, e.g. "RGS".

string

list_version
optional

The version of the list for the code, e.g. "1.1".

string

name
optional

A textual descroption of the code.

string

6.2.34. PurchaseInvoiceInvoiceLine

Name Description Schema

accounting
optional

The accounting details for the invoice line.

allowance_charge
optional

The adjustment to the price, for instance a discount.

number

amount_excluding_vat
optional

The amount excluding VAT. This is equal to quantity x price_amount + allowance_charge. This property is redundant and provided only to make invoice processing more easy. You can also choose to only store this property, instead of the underlying fields.

number

description
optional

The description for the invoice line.

string

price_amount
optional

The price for one item, excluding VAT.

number

quantity
optional

The quantity of the item.

number

vat
optional

The VAT details for the invoice line.

VAT Details

Name Description Schema

amount
optional

The amount of VAT for the invoice line.

number

country
optional

The ISO 3166 country of the VAT for the invoice line.

string

percentage
optional

The percentage of VAT for the invoice line.

number

6.2.35. PurchaseInvoiceSender

Name Description Schema

billing_contact
optional

The billing contact for the invoice.

city
optional

The city.

string

country
optional

The country.

string

county
optional

The county.

string

department
optional

The department who sent the invoice.

string

line1
optional

The address

string

line2
optional

The address, line 2

string

party_name
optional

The party who sent the invoice.

string

peppol_identifiers
optional

< PeppolIdentifier > array

zip
optional

The zip code.

string

6.2.36. PurchaseInvoiceSenderBillingContact

Name Description Schema

email
optional

The email of the billing contact.

string

first_name
optional

The first name of the billing contact.

string

last_name
optional

The last name of the billing contact.

string

6.2.37. PurchaseInvoiceUbl

Name Description Schema

external_key
optional

Used for accountants. The id you specified for the organization.

string

external_user_id
optional

Used for the embedded portal retrieval service. The external_user_id you provided when the ShopAccount was created.

string

guid
optional

The GUID of the invoice

string (uuid)

legal_entity_id
optional

The id of the LegalEntity the invoice was received for.

integer (int64)

ubl
optional

The Base64 encoded UBL invoice.

string

6.2.38. Shop

Name Description Schema

description
optional

string

id
optional

integer (int64)

legal_entities
optional

< LegalEntityShop > array

logo
optional

name
optional

string

purpose
optional

The purpose of the shop. Either "invoice" or "statement"

string

6.2.39. ShopAccountInput

Name Description Schema

email
optional

DEPRECATED

string

external_user_id
required

The external_user_id is what identifies the entity for which you create this ShopAccount. This could be a user, however, if your users can manage multiple organizations/administrations, then it is a better idea to put the organization/administration identifier in this field, because the external_user_id groups ShopAccounts into a set that all deliver their invoices to the same destination. The external_user_id is present in the purchase invoice that is retrieved upon receiving the 'received_invoice' webhook.

string

password
required

The password for the account.

string

shop_id
required

The id of the Shop the account is for.

integer (int64)

username
required

The username for the account. The username needs to be unique in combination with the shop_id.

string

6.2.40. ShopAccountRequestInput

Name Schema

external_user_id
required

string

password
required

string

request_name
required

string

request_url
required

string

username
required

string

6.2.41. ShopAccountRequestResult

Name Schema

external_user_id
optional

string

id
optional

integer (int64)

request_name
optional

string

request_url
optional

string

username
optional

string

6.2.42. ShopAccountRequestUpdate

Name Schema

password
optional

string

request_name
optional

string

request_url
optional

string

username
optional

string

6.2.43. ShopAccountResult

Name Description Schema

email
optional

DEPRECATED

string

external_user_id
optional

string

from_date
optional

The date from invoices will be collected. This field defaults to the first day of the month the ShopAccount was created in.

string (date)

id
optional

The Storecove id for the ShopAccount

integer (int64)

shop
optional

sign_in_error_confirmed
optional

Whether or not Storecove has detected and confirmed a sign-in failure. This field is reset to false each time a ShopAccount is updated and the username or password has changed.

boolean

sign_in_error_confirmed_at
optional

The date on which the sign-in error was confirmed.

string (date)

username
optional

string

6.2.44. ShopAccountUpdate

Name Description Schema

email
optional

DEPRECATED

string

password
optional

string

username
optional

string

6.2.45. SupplierParty

A party that can send invoices

Name Schema

contact
optional

6.2.46. Tax

Name Description Schema

amount
optional

The amount of VAT. Mandatory if taxSystem == 'tax_line_amounts'.

number

country
required

percentage
optional

The percentage VAT. This should be a valid VAT percentage in the country at the time of the issueDate of this invoice. Mandatory if taxSystem == 'line_amount_percentages

number

6.2.47. TaxSubtotal

The total amount of tax of this type in the invoice.

Name Description Schema

country
optional

Mandatory unless a taxExemptReason is provided.

percentage
optional

The tax percentage. This should be a valid tax percentage in the country at the time of the taxpointDate of this invoice. Mandatory unless a taxExemptReason is provided.

number

taxAmount
optional

The amount of tax. Mandatory unless a taxExemptReason is provided.

number

taxableAmount
required

The amount on which the tax is levied.

number