1. Introduction

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

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 there are two solutions that we offer:

  • The Peppol European e-invoicing network

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

Both 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.

Receiving invoices

For receiving invoices for your Clients we offer our Peppol Access Point as a Service

This allows you to publish your Client’s Peppol identifiers (i.e. Chambre of Commerce number, VAT number, 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 (being mandated in the EU and Asia for 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. We can also setup periodic reporting.

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, SAP IDoc, 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 and we will create one for you

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>_<participant_identifier>.<extension> or

  • <file_id>_additional_<counter>.<extension> or

  • <file_id>_additional_<counter>_<participant_identifier>.<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 must be a uuid (any version) and therefore may contain only the following characters:

  • a-f, 0-9 and '-'

and have the following structure:

  • cccccccc-cccc-cccc-cccc-cccccccccccc

Note that if you use a hash of 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)

  • structure (see below)

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_primary_nl-oin.00000000000000000000.pdf

  • 82b3785e-0569-482d-a683-ee437eb3df13_additional_hr-vat.hr12345678901_1.pdf

  • 82b3785e-0569-482d-a683-ee437eb3df13_primary_0190.00000000000000000000.pdf

  • 82b3785e-0569-482d-a683-ee437eb3df13_additional_9934.hr12345678901_1.pdf

Tip
It is best to provide your participant identifiers in the data file. That way, you can provide as many as you have. If you are not able to include the participant identifiers in the data file, the filename is the next best option. It can, however, hold only a single participant identifier. The full list of participant identifiers can be found here: Peppol Schemes List
Structure

If you always provide the same set of files (for instance: only a data file or only a data file + a PDF file) then we will configure this statically when we setup your SFTP upload capability. If, however, you wish to have the ability to provide different sets of documents (for instance: sometimes you provide one or more additional attachments, but sometimes you don’t) then it is possible to send us structure of your invoice submission through a separate file, the structure file. It contains a description of which files make up the invoice submission and so we will wait processing the already uploaded files until the set is complete. The contents of the structure file looks like this:

{
    “documents”: [
        {
            “purpose”: “data”,
            “extension”: “xml”,
            “count”: 1
        },
        {
            “purpose”: “primary”,
            “extension”: “pdf”,
            “count”: 1
        },
        {
            “purpose”: “additional”,
            “extension”: “pdf”,
            “count”: 2
        }
    ]
}

You have to choose: either you always provide the same set of files, or you always provide a structure file.
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

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 and email

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.

There are two main ways to submit an invoice for submission:

  • submit a JSON object that contains the invoice data

  • submit a Base64 encoded string that contains the invoice data in a certain format, such as UBL, CII, SAP IDoc, etc. Currently we have enabled only UBL, but we are ready to enable other formats on request for a controlled go-live.

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 as a sender.

Available in the web interface (for individual companies) or to be created via the API (individual companies or Access Point as a Service)

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

 0190, 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. Software Suppliers

3.1. Access Point as-a Service

3.1.1. Introduction

Use the API calls

to mange your organizations and their peppol identifiers.

3.1.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.

3.1.3. Receiving

Configure the appropriate webhook. See Webhooks.

4. Using the API

4.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 key. 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.

4.2. Endpoint

The API endpoint is

4.3. Client Libraries

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

There are many generic REST clients for available for different platforms. However, if you wish to roll your own, or would like to quickly generate the model classes, you could use Swagger Codegen.

4.4. Postman

Using our OpenAPI 2.0 specification, it is easy to test drive the API, for instance with Postman:

Click "Import," select "Import from From Link," and copy/paste our OpenAPI 2.0 specification URL:

Next, click on the "Headers" tab and copy/paste the API token. You are now ready to test drive the API!

4.5. Swagger Codegen

This tool makes it easy to to generate a client library in your favorite language:

First, download the lastest version 2 Java jar:

wget --output-document=swagger-codegen-cli.jar http://central.maven.org/maven2/io/swagger/swagger-codegen-cli/2.4.10/swagger-codegen-cli-2.4.10.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

4.6. 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.

4.7. 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

4.7.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.

4.7.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",
    "invoice_number": "20231105/002",
    "tenant_id": "YourTenantId"
}

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

endpoint, or a similar endpoint for different versions.

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. API Reference

5.1. Resources

5.1.1. InvoiceSubmissions

Submit a new invoice
POST /invoice_submissions
Description

Submit an invoice for delivery.

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.

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

5.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

5.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

5.1.4. PurchaseInvoices

Get Purchase invoice data as JSON
GET /purchase_invoices/{guid}
Description

Get a specific PurchaseInvoice, in JSON format. Recommended way of getting a PurchaseInvoice, since it provides the data in a JSON object and the JSON format is the richest we have that supports all features a PurchaseInvoice can have.

Parameters
Type Name Description Schema

Path

guid
required

purchase invoice guid

string (uuid)

Responses
HTTP Code Description Schema

200

Success

401

Unauthorized

No Content

403

Forbidden

No Content

404

Not Found

No Content

Get Purchase invoice data as JSON with a Base64-encoded SI-1.2 UBL string
GET /purchase_invoices/{guid}/{packaging}
Description

Get a specific PurchaseInvoice. Using /json as {packaging} is recommended (in which case you can just omit it), however, this endpoint allows getting the invoice in a differently serialized format such as UBL.

Parameters
Type Name Description Schema Default

Path

guid
required

purchase invoice guid

string (uuid)

Path

packaging
required

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

Get Purchase invoice data as JSON with a Base64-encoded UBL string in the specified version
GET /purchase_invoices/{guid}/{packaging}/{package_version}
Description

Get a specific PurchaseInvoice in a non-JSON serialized format with version.

Parameters
Type Name Description Schema Default

Path

guid
required

purchase invoice guid

string (uuid)

Path

package_version
required

The version of the ubl package.

enum (original, si11, si12)

"si12"

Path

packaging
required

How to package the purchase invoice. Use "ubl"

enum (ubl)

"ubl"

Responses
HTTP Code Description Schema

200

Success

401

Unauthorized

No Content

403

Forbidden

No Content

404

Not Found

No Content

5.2. Definitions

5.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

5.2.2. AccountingCustomerParty

The customer receiving the invoice.

Name Description Schema

accountId
optional

The account id you assigned to the customer.

string

party
required

5.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

5.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

5.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

5.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

5.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

5.2.8. BuyerCustomerParty

The buyer receiving the invoice.

Name Description Schema

accountId
optional

The account id you assigned to the customer.

string

party
required

5.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

5.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)

5.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)

5.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

5.2.13. ErrorModel

Name Schema

details
optional

string

source
optional

string

5.2.14. Invoice

The invoice to send. Provide either invoice, or incoiceData, but not both.

Name Description Schema

accountingCost
optional

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

paymentMeansBic
optional

The BIC (Swift) of the bank where the amount payable should be transferred to
Pattern : "^[A-Z]{6}[2-9A-Z][0-9A-NP-Z]([A-Z0-9]{3}|X{3})?$"

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 in the invoice. Note that this is an invoice level field and you cannot specify it per invoice line. This field is mandatory unless tax is present in the invoice.

enum (export, reverse_charge, zero_rated, exempt, outside_scope, intra_community)

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, tax_no_tax)

ublExtensions
optional

An array of ubl extensions.

< string > array

vatReverseCharge
optional

DEPRECTATED. Use taxExemptReason.
Default : false

boolean

5.2.15. InvoiceData

The invoice to send, in base64 encoded format. Provide either invoice, or incoiceData, but not both.

Name Description Schema

conversionStrategy
optional

How to interpret the document.

enum (ubl)

document
optional

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

string

5.2.16. 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

5.2.17. InvoiceRecipient

The different ways to send the invoice to the recipient. The publicIdentifiers are used to send via the Peppol network, if the recipient is not registered on the Peppol network, the invoice will be sent to the email addresses in the emails property. This property is only mandatory when sending the invoice data using the Invoice property, not when sending using the InvoiceData property, in which case this information will be extracted from the InvoiceData object. If you do specify an InvoiceRecipient object and an InvoiceData object, the data from the two will be merged.

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.

5.2.18. InvoiceRecipientPreflight

Identifies the invoice recipient to preflight

Name Description Schema

publicIdentifiers
optional

The public identifiers for this invoice recipient.

5.2.19. 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
optional

invoiceData
optional

invoiceRecipient
optional

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

5.2.20. InvoiceSubmissionResult

The result of an invoice submission

Name Description Schema

guid
optional

A (V4) GUID for the invoice submission

string

5.2.21. 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

public
optional

Whether or not this LegalEntity is public. Public means it will be listed in the PEPPOL directory at https://directory.peppol.eu/ which is normally what you want. If you have a good reason to not want the LegalEntity listed, provide false.
Default : true

boolean

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

5.2.22. 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

public
optional

Whether or not this LegalEntity is public. Public means it will be entered into the PEPPOL directory at https://directory.peppol.eu/
Default : true

boolean

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

5.2.23. 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

public
optional

Whether or not this LegalEntity is public. Public means it will be listed in the PEPPOL directory at https://directory.peppol.eu/ which is normally what you want. If you have a good reason to not want the LegalEntity listed, provide false.
Default : true

boolean

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

5.2.24. 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

5.2.25. 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

5.2.26. 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

5.2.27. PreflightInvoiceRecipientResult

The result of preflighting an invoice recipient

Name Description Schema

code
optional

The result code of the preflight request

enum (ok, nok)

5.2.28. 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

5.2.29. PublicIdentifiers

A list of public identifiers that uniquely identifiy this customer.

Type : < PublicIdentifier > array

5.2.30. 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

5.2.31. 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

5.2.32. 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

5.2.33. 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

5.2.34. 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

5.2.35. 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

5.2.36. SupplierParty

A party that can send invoices

Name Schema

contact
optional

5.2.37. 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

5.2.38. TaxSubtotal

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

Name Description Schema

country
required

The country levying the tax.

percentage
optional

The tax percentage. This should be a valid tax percentage in the country at the time of the taxpointDate of this invoice.

number

taxAmount
required

The amount of tax.

number

taxableAmount
required

The amount on which the tax is levied.

number