Introduction

The e-Invoice Connect API is created as a means to enable integrating e-Invoice Connect into other products that want to use e-invoicing and leverage its functionality.

The API is built around these major pieces of functionality provided by e-Invoice Connect:

  • Creation and setup of member accounts

  • Invoice delivery and status management

  • Invoice sending

  • Recipient search

The API is implemented as a REST web service and is available at https://web.invoiceportal.net/api.

The default and main used media type to represent resources that can be exchanged with the service is JSON. Thus use the Accept and Content-Type standard HTTP request headers and set them to application/json.

Find more details about the requirements to calling the API in the security section.

The API has a unified structure and defines some endpoints as collection resources and the rest as singular resources. As it can be derived from the two resource types naming, a collection resource returns you a collection of items that represent some business objects, like member, address, invoice, and so on. The other type of resources are singular, and they represent exactly one business object.

To refer a singular resource, you need to know its parent collection resource endpoint and the resource ID assigned to it by the service to build the resource unique URI.

The collection resources return information about business objects they contain always in a short summary form, whereas a request to a singular resource with a few exceptions always returns a larger set of data fully describing the found business object.

The API offers a means for paging large collections.

Member Account Creation and Setup

This major piece of the API defines how to create and set up an e-Invoice Connect member account, which is necessary to send and receive invoices with e-Invoice Connect.

To create a valid account in e-Invoice Connect, provide a few pieces of essential information that combined define a party that can receive invoices:

  • A party identifier (an organization number)

  • A legal address and a recipient address

  • A user

In order to have an account that is able to send invoices add to the above information the following:

  • A payment means

If a member account is being created only for invoice sending, specifying a recipient address may be omitted.

For each of these four types of objects, there are separate collection resource endpoints that are intended to manage them.

A member created via the API by a product integrated with e-Invoice Connect becomes associated with that product.

Member endpoint

This endpoint is a collection resource that manages members and member settings.

List members / member lookup

Returns a list of members existing in e-Invoice Connect.

GET /api/members HTTP/1.1

Path parameters

No parameters.

Query parameters

Parameter Type Description

q

Object

Optional extended query for member lookup. The parameters that can be specified for lookup are:

1. identifier - party identifier value

2. countryId - country ID

3. type - party identifier type

4. detailedType - party identifier detailedType

sort

String

Optional sorting parameter. The properties that can be specified for sorting are:

1. id - member ID

2. status - member status

3. legalName - member legal name

Supports standard paging query parameters.

Request fields

No request body.

Response fields

Path Type Description

page

Number

Page number.

count

Number

Actual size of content array (number of items).

total

Number

Total number of existing items.

pages

Number

Total number of pages with current page size.

items

Array

Array of members.

items[].id

Number

Member unique ID.

items[].legalName

String

Member name.

items[].status

String

Member status. The field can have the following values and in ascending order sorts as PendingApproval, Pending, Active, Blocked, Unregistered.

Example request

$ curl 'https://web.invoiceportal.net/api/members' -i -X GET

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 338

{
  "page" : 1,
  "count" : 3,
  "total" : 3,
  "pages" : 1,
  "items" : [ {
    "id" : 43,
    "legalName" : "Test Member43",
    "status" : "Active"
  }, {
    "id" : 44,
    "legalName" : "Test Member44",
    "status" : "Active"
  }, {
    "id" : 45,
    "legalName" : "Test Member45",
    "status" : "Active"
  } ]
}

Get member details

Returns detailed information about a member existing in e-Invoice Connect.

From the security perspective and to avoid disclosure of personal identifiable information the API calls from a product integrated with e-Invoice Connect for retrieving information about a member that is not associated with that product return a reduced set of fields in response. The descriptions provided in the response field list below cover all possible response fields.

GET /api/members/43 HTTP/1.1

Path parameters

Table 1. /members/{memberId}
Parameter Description

memberId

Unique member ID.

Query parameters

No parameters.

Request fields

No request body.

Response fields

Path Type Description

id

Number

Member unique ID.

legalName

String

Member name.

status

String

Member status. The field is mainly either Active or Unregistered, but it also can be set by the service to PendingApproval, Pending, Blocked.

product

String

A product the member belongs to.

apiEnabled

Boolean

The setting that enables or disables access to the member via the API.

sendingEnabled

Boolean

The setting that enables or disables ability of the member to submit invoices via the API.

selfBillingEnabled

Boolean

The setting that enables self-billing submissions for a buyer. For correct configuration sending must be active and additional configuration might be needed if Peppol exchange has been setup.

autoremindInvites

Boolean

The auto reminder setting value

noDaysToKeepNonRejectableInvoices

Number

Number of days until auto accepting invoices with errors for which sender cannot be notified. 0 to auto accept without delay.

noDaysToKeepRejectedInvoices

Number

Number of days until auto rejecting invoices with errors for which sender can be notified. 0 to disable management of stopped invoices before sender is notified.

neverAutoAcceptNonRejectableInvoices

Boolean

Never auto accept invoices when sender cannot be notified.

preventDuplicateInvoiceNo

Boolean

The prevent duplicate invoice number within the same year setting value.

transferInformationSettings

Object

Optional transfer information settings object which properties may alter the invoice data produced by the sender’s business system via the configured substitution rules.

transferInformationSettings.supplierPaymentMeansUpdateTypes

Object

Object that describes the configured supplier payment means substitution rules.

transferInformationSettings.supplierPaymentMeansUpdateTypes.BANK

String

Substitution rule for the BANK type, either always or if_empty or missing.

transferInformationSettings.supplierPaymentMeansUpdateTypes.CARD

String

Substitution rule for the CARD type, either always or if_empty or missing.

transferInformationSettings.supplierPaymentMeansUpdateTypes.CASH

String

Substitution rule for the CASH type, either always or if_empty or missing.

transferInformationSettings.supplierPaymentMeansUpdateTypes.DirectDebit

String

Substitution rule for the DirectDebit type, either always or if_empty or missing.

transferInformationSettings.supplierPaymentMeansUpdateTypes.DK_FIK

String

Substitution rule for the DK_FIK type, either always or if_empty or missing.

transferInformationSettings.supplierPaymentMeansUpdateTypes.DK_Giro

String

Substitution rule for the DK_Giro type, either always or if_empty or missing.

transferInformationSettings.supplierPaymentMeansUpdateTypes.IBAN

String

Substitution rule for the IBAN type, either always or if_empty or missing.

transferInformationSettings.supplierPaymentMeansUpdateTypes.PaymentMandate

String

Substitution rule for the PaymentMandate type, either always or if_empty or missing.

transferInformationSettings.supplierPaymentMeansUpdateTypes.SE_BankGiro

String

Substitution rule for the SE_BankGiro type, either always or if_empty or missing.

transferInformationSettings.supplierPaymentMeansUpdateTypes.SE_PlusGiro

String

Substitution rule for the SE_PlusGiro type, either always or if_empty or missing.

fromReplyToAddressSuppliers

String

E-mail address to be used as From address when sending invoices via e-mail to suppliers.

partyIdentifiers

Object

An object that contains a collection of party identifiers.

partyIdentifiers.count

Number

Number of party identifiers in the collection.

partyIdentifiers.items

Array

Array of party identifiers.

partyIdentifiers.items[].id

Number

Party identifier unique ID.

partyIdentifiers.items[].primary

Boolean

Attribute that shows if the party identifier is a primary one for the country

partyIdentifiers.items[].type

String

Party identifier type.

partyIdentifiers.items[].detailedType

String

Party identifier detailed type.

partyIdentifiers.items[].identifier

String

Party identifier value.

addresses

Object

Object that contains a collection of addresses

addresses.count

Number

Number of addresses in the collection.

addresses.items

Array

Array of addresses

addresses.items[].partyIdentifier

Object

Address party identifier object.

addresses.items[].partyIdentifier.id

Number

Address party identifier unique ID.

addresses.items[].partyIdentifier.type

String

Address party identifier type.

addresses.items[].partyIdentifier.detailedType

String

Address party identifier detailed type.

addresses.items[].partyIdentifier.countryId

String

Address party identifier country ID.

addresses.items[].partyIdentifier.identifier

String

Address party identifier value.

addresses.items[].name

String

Address name.

addresses.items[].countryId

String

Address country ID.

addresses.items[].city

String

City.

addresses.items[].streetAddress

String

Street address.

addresses.items[].coAddress

String

Co-address.

addresses.items[].zipCode

String

Zip code.

addresses.items[].legalAddress

Boolean

Attribute that shows if the address is a legal address.

addresses.items[].addressLine

String

Address line.

addresses.items[].countrySubentity

String

Country subentity.

addresses.items[].recipientAddress

Boolean

Attribute that shows if the address is a recipient address.

addresses.items[].deliveryAddress

Boolean

Attribute that shows if the address is a delivery address.

addresses.items[].partysReference

String

Party’s reference

users

Object

Object that contains a collection of member users.

users.count

Number

Number of users in the collection.

users.items

Array

Array of member users.

users.items[].id

Number

Member user unique ID.

users.items[].name

String

User name.

users.items[].email

String

User email.

users.items[].fax

String

User fax number.

users.items[].phone

String

User phone number.

users.items[].mobilePhone

String

User mobile phone number.

paymentMeans

Object

Optional object that contains a collection of payment means.

paymentMeans.count

Number

Number of payment means in the collection.

paymentMeans.items

Array

Array of member payment means objects.

paymentMeans.items[].id

Number

Payment means unique ID.

paymentMeans.items[].type

String

Name of the payment means type.

paymentMeans.items[].subtype

String

Payment means subtype value.

paymentMeans.items[].account

String

Payment means account value.

paymentMeans.items[].swiftCode

String

SWIFT code.

paymentMeans.items[].branchCode

String

Identification of branch or office within institution, such as clearing no.

paymentMeans.items[].bankName

String

Name of the payment service institution, such as the name of the bank

paymentMeans.items[].cardNetworkId

String

Card network identification, such as Mastercard.

paymentMeans.items[].cardHolderName

String

Card holder name.

paymentMeans.items[].paymentMandate

String

Payment mandate.

paymentMeans.items[].payerFinancialAccount

String

Payer financial account value.

clearanceWorkflowEnabled

Boolean

The setting that enables or disables Clearance workflow subscription.

serviceProviderClearanceEnabled

Boolean

The setting that shows if Clearance service is enabled.

serviceProviderRetrievalEnabled

Boolean

The setting that shows if Retrieval service is enabled.

serviceProviderTestClearanceEnabled

Boolean

The setting that shows if Clearance service is enabled in the test environment.

serviceProviderTestRetrievalEnabled

Boolean

The setting that shows if Retrieval service is enabled in the test environment.

serviceProviderFullBuyerModeEnabled

Boolean

The setting that shows if full buyer mode service is enabled.

receiveFromPeppol

Boolean

Option to receive messages from Peppol.

externalRegistriesConsent

Boolean

Acceptance of exposure member data in external registries including Peppol.

invoices

Object

Object with information about the invoice subresource.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43' -i -X GET

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 2197

{
  "id" : 43,
  "legalName" : "Test Member43",
  "status" : "Active",
  "product" : "AP Essentials",
  "apiEnabled" : true,
  "sendingEnabled" : true,
  "selfBillingEnabled" : false,
  "fromReplyToAddressSuppliers" : "member43@email.com",
  "autoremindInvites" : true,
  "noDaysToKeepNonRejectableInvoices" : 2,
  "noDaysToKeepRejectedInvoices" : 3,
  "neverAutoAcceptNonRejectableInvoices" : false,
  "preventDuplicateInvoiceNo" : true,
  "partyIdentifiers" : {
    "count" : 2,
    "items" : [ {
      "id" : 44,
      "primary" : false,
      "type" : "GLN",
      "detailedType" : "GLN",
      "identifier" : "4449920066431"
    }, {
      "id" : 43,
      "primary" : true,
      "type" : "SE:ORGNR",
      "detailedType" : "SE:ORGNR",
      "countryId" : "SE",
      "identifier" : "4323411514"
    } ]
  },
  "addresses" : {
    "count" : 1,
    "items" : [ {
      "id" : 43,
      "partyIdentifier" : {
        "id" : 44,
        "primary" : false,
        "type" : "GLN",
        "detailedType" : "GLN",
        "identifier" : "4449920066431"
      },
      "name" : "Test Member43",
      "countryId" : "SE",
      "city" : "City 43",
      "streetAddress" : "Street 43",
      "coAddress" : "coAddress 43",
      "zipCode" : "30243",
      "legalAddress" : true,
      "addressLine" : "Address line 43",
      "countrySubentity" : "Country subentity 43",
      "recipientAddress" : false,
      "deliveryAddress" : false,
      "partysReference" : "Party reference 43"
    } ]
  },
  "users" : {
    "count" : 1,
    "items" : [ {
      "id" : 43,
      "name" : "Test User43",
      "email" : "test.email43@kofax.com",
      "phone" : "+46 322 12 34 56",
      "mobilePhone" : "+46 322 56 43 21",
      "fax" : "+46 322 12 34 56"
    } ]
  },
  "invoices" : { },
  "clearanceWorkflowEnabled" : false,
  "serviceProviderClearanceEnabled" : false,
  "serviceProviderRetrievalEnabled" : false,
  "serviceProviderTestClearanceEnabled" : false,
  "serviceProviderTestRetrievalEnabled" : false,
  "serviceProviderFullBuyerModeEnabled" : true,
  "receiveFromPeppol" : false,
  "externalRegistriesConsent" : false
}

Create a new member

Creates a new member.

To create a new member, provide the service with a unique party identifier, i.e. an organization number, that follows the requirements of the country the party belongs to, a unique legal address in the country of the party origin, and a unique user. Additionally provide a payment means in case a new member will send invoices and provide a recipient address to make a new member be able to receive invoices.

POST /api/members HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 1236

{
  "partyIdentifiers" : {
    "items" : [ {
      "identifier" : "190528-5209",
      "detailedType" : "SE:ORGNR",
      "type" : "SE:ORGNR",
      "countryId" : "SE"
    } ]
  },
  "autoremindInvites" : true,
  "neverAutoAcceptNonRejectableInvoices" : false,
  "addresses" : {
    "items" : [ {
      "zipCode" : "99988",
      "coAddress" : "coAddress 88",
      "countrySubentity" : "Country subentity 88",
      "city" : "City 88",
      "streetAddress" : "Street 88",
      "name" : "Test Member88",
      "addressLine" : "Address line 88",
      "partysReference" : "Party reference 88",
      "partyIdentifier" : {
        "identifier" : "7884620772928",
        "detailedType" : "GLN",
        "type" : "GLN"
      },
      "countryId" : "SE",
      "legalAddress" : true
    } ]
  },
  "noDaysToKeepRejectedInvoices" : 3,
  "noDaysToKeepNonRejectableInvoices" : 5,
  "fromReplyToAddressSuppliers" : "member88@email.com",
  "preventDuplicateInvoiceNo" : true,
  "users" : {
    "items" : [ {
      "mobilePhone" : "+46 322 56 43 21",
      "phone" : "+46 322 12 34 56",
      "name" : "Test User",
      "fax" : "+46 322 12 34 56",
      "email" : "test.email@kofax.com"
    } ]
  }
}

Path parameters

No parameters.

Query parameters

No parameters.

Request fields

Path Type Description

autoremindInvites

Boolean

Auto reminder setting value

noDaysToKeepNonRejectableInvoices

Number

Number of days until auto accepting invoices with errors for which sender cannot be notified. 0 to auto accept without delay.

noDaysToKeepRejectedInvoices

Number

Number of days until auto rejecting invoices with errors for which sender can be notified. 0 to disable management of stopped invoices before sender is notified.

neverAutoAcceptNonRejectableInvoices

Boolean

Never auto accept invoices when sender cannot be notified.

preventDuplicateInvoiceNo

Boolean

The value for the setting to prevent duplicate invoice number within the same year.

fromReplyToAddressSuppliers

String

E-mail address to be used as From address when sending invoices via e-mail to suppliers.

transferInformationSettings

Object

Object containing optional information for the invoice sending setup to configure the rules for substituting specific invoice data parts.

partyIdentifiers

Object

Object containing a collection of party identifiers.

addresses

Object

Object containing a collection of addresses.

users

Object

Object containing a collection of users. The 'email' property of the users must be unique across the collection and must not be used by any already existing user.

paymentMeans

Object

Object containing an optional collection of payment means for the invoice sending setup.

Response fields

Path Type Description

id

Number

Member unique ID.

legalName

String

Member name.

status

String

Member status. The field is mainly either Active or Unregistered, but it also can be set by the service to PendingApproval, Pending, Blocked.

product

String

A product the member belongs to.

apiEnabled

Boolean

The setting that enables or disables access to the member via the API.

sendingEnabled

Boolean

The setting that enables or disables ability of the member to submit invoices via the API.

selfBillingEnabled

Boolean

The setting that enables self-billing submissions for a buyer. For correct configuration sending must be active and additional configuration might be needed if Peppol exchange has been setup.

autoremindInvites

Boolean

The auto reminder setting value

noDaysToKeepNonRejectableInvoices

Number

Number of days until auto accepting invoices with errors for which sender cannot be notified. 0 to auto accept without delay.

noDaysToKeepRejectedInvoices

Number

Number of days until auto rejecting invoices with errors for which sender can be notified. 0 to disable management of stopped invoices before sender is notified.

neverAutoAcceptNonRejectableInvoices

Boolean

Never auto accept invoices when sender cannot be notified.

preventDuplicateInvoiceNo

Boolean

The prevent duplicate invoice number within the same year setting value.

transferInformationSettings

Object

Optional transfer information settings object which properties may alter the invoice data produced by the sender’s business system via the configured substitution rules.

transferInformationSettings.supplierPaymentMeansUpdateTypes

Object

Object that describes the configured supplier payment means substitution rules.

transferInformationSettings.supplierPaymentMeansUpdateTypes.BANK

String

Substitution rule for the BANK type, either always or if_empty or missing.

transferInformationSettings.supplierPaymentMeansUpdateTypes.CARD

String

Substitution rule for the CARD type, either always or if_empty or missing.

transferInformationSettings.supplierPaymentMeansUpdateTypes.CASH

String

Substitution rule for the CASH type, either always or if_empty or missing.

transferInformationSettings.supplierPaymentMeansUpdateTypes.DirectDebit

String

Substitution rule for the DirectDebit type, either always or if_empty or missing.

transferInformationSettings.supplierPaymentMeansUpdateTypes.DK_FIK

String

Substitution rule for the DK_FIK type, either always or if_empty or missing.

transferInformationSettings.supplierPaymentMeansUpdateTypes.DK_Giro

String

Substitution rule for the DK_Giro type, either always or if_empty or missing.

transferInformationSettings.supplierPaymentMeansUpdateTypes.IBAN

String

Substitution rule for the IBAN type, either always or if_empty or missing.

transferInformationSettings.supplierPaymentMeansUpdateTypes.PaymentMandate

String

Substitution rule for the PaymentMandate type, either always or if_empty or missing.

transferInformationSettings.supplierPaymentMeansUpdateTypes.SE_BankGiro

String

Substitution rule for the SE_BankGiro type, either always or if_empty or missing.

transferInformationSettings.supplierPaymentMeansUpdateTypes.SE_PlusGiro

String

Substitution rule for the SE_PlusGiro type, either always or if_empty or missing.

fromReplyToAddressSuppliers

String

E-mail address to be used as From address when sending invoices via e-mail to suppliers.

partyIdentifiers

Object

An object that contains a collection of party identifiers.

partyIdentifiers.count

Number

Number of party identifiers in the collection.

partyIdentifiers.items

Array

Array of party identifiers.

partyIdentifiers.items[].id

Number

Party identifier unique ID.

partyIdentifiers.items[].primary

Boolean

Attribute that shows if the party identifier is a primary one for the country

partyIdentifiers.items[].type

String

Party identifier type.

partyIdentifiers.items[].detailedType

String

Party identifier detailed type.

partyIdentifiers.items[].identifier

String

Party identifier value.

addresses

Object

Object that contains a collection of addresses

addresses.count

Number

Number of addresses in the collection.

addresses.items

Array

Array of addresses

addresses.items[].partyIdentifier

Object

Address party identifier object.

addresses.items[].partyIdentifier.id

Number

Address party identifier unique ID.

addresses.items[].partyIdentifier.type

String

Address party identifier type.

addresses.items[].partyIdentifier.detailedType

String

Address party identifier detailed type.

addresses.items[].partyIdentifier.countryId

String

Address party identifier country ID.

addresses.items[].partyIdentifier.identifier

String

Address party identifier value.

addresses.items[].name

String

Address name.

addresses.items[].countryId

String

Address country ID.

addresses.items[].city

String

City.

addresses.items[].streetAddress

String

Street address.

addresses.items[].coAddress

String

Co-address.

addresses.items[].zipCode

String

Zip code.

addresses.items[].legalAddress

Boolean

Attribute that shows if the address is a legal address.

addresses.items[].addressLine

String

Address line.

addresses.items[].countrySubentity

String

Country subentity.

addresses.items[].recipientAddress

Boolean

Attribute that shows if the address is a recipient address.

addresses.items[].deliveryAddress

Boolean

Attribute that shows if the address is a delivery address.

addresses.items[].partysReference

String

Party’s reference

users

Object

Object that contains a collection of member users.

users.count

Number

Number of users in the collection.

users.items

Array

Array of member users.

users.items[].id

Number

Member user unique ID.

users.items[].name

String

User name.

users.items[].email

String

User email.

users.items[].fax

String

User fax number.

users.items[].phone

String

User phone number.

users.items[].mobilePhone

String

User mobile phone number.

paymentMeans

Object

Optional object that contains a collection of payment means.

paymentMeans.count

Number

Number of payment means in the collection.

paymentMeans.items

Array

Array of member payment means objects.

paymentMeans.items[].id

Number

Payment means unique ID.

paymentMeans.items[].type

String

Name of the payment means type.

paymentMeans.items[].subtype

String

Payment means subtype value.

paymentMeans.items[].account

String

Payment means account value.

paymentMeans.items[].swiftCode

String

SWIFT code.

paymentMeans.items[].branchCode

String

Identification of branch or office within institution, such as clearing no.

paymentMeans.items[].bankName

String

Name of the payment service institution, such as the name of the bank

paymentMeans.items[].cardNetworkId

String

Card network identification, such as Mastercard.

paymentMeans.items[].cardHolderName

String

Card holder name.

paymentMeans.items[].paymentMandate

String

Payment mandate.

paymentMeans.items[].payerFinancialAccount

String

Payer financial account value.

clearanceWorkflowEnabled

Boolean

The setting that enables or disables Clearance workflow subscription.

serviceProviderClearanceEnabled

Boolean

The setting that shows if Clearance service is enabled.

serviceProviderRetrievalEnabled

Boolean

The setting that shows if Retrieval service is enabled.

serviceProviderTestClearanceEnabled

Boolean

The setting that shows if Clearance service is enabled in the test environment.

serviceProviderTestRetrievalEnabled

Boolean

The setting that shows if Retrieval service is enabled in the test environment.

serviceProviderFullBuyerModeEnabled

Boolean

The setting that shows if full buyer mode service is enabled.

receiveFromPeppol

Boolean

Option to receive messages from Peppol.

externalRegistriesConsent

Boolean

Acceptance of exposure member data in external registries including Peppol.

invoices

Object

Object with information about the invoice subresource.

Example request

$ curl 'https://web.invoiceportal.net/api/members' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
  "partyIdentifiers" : {
    "items" : [ {
      "identifier" : "190528-5209",
      "detailedType" : "SE:ORGNR",
      "type" : "SE:ORGNR",
      "countryId" : "SE"
    } ]
  },
  "autoremindInvites" : true,
  "neverAutoAcceptNonRejectableInvoices" : false,
  "addresses" : {
    "items" : [ {
      "zipCode" : "99988",
      "coAddress" : "coAddress 88",
      "countrySubentity" : "Country subentity 88",
      "city" : "City 88",
      "streetAddress" : "Street 88",
      "name" : "Test Member88",
      "addressLine" : "Address line 88",
      "partysReference" : "Party reference 88",
      "partyIdentifier" : {
        "identifier" : "7884620772928",
        "detailedType" : "GLN",
        "type" : "GLN"
      },
      "countryId" : "SE",
      "legalAddress" : true
    } ]
  },
  "noDaysToKeepRejectedInvoices" : 3,
  "noDaysToKeepNonRejectableInvoices" : 5,
  "fromReplyToAddressSuppliers" : "member88@email.com",
  "preventDuplicateInvoiceNo" : true,
  "users" : {
    "items" : [ {
      "mobilePhone" : "+46 322 56 43 21",
      "phone" : "+46 322 12 34 56",
      "name" : "Test User",
      "fax" : "+46 322 12 34 56",
      "email" : "test.email@kofax.com"
    } ]
  }
}'

Example response

HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 2195

{
  "id" : 88,
  "legalName" : "Test Member88",
  "status" : "Active",
  "product" : "AP Essentials",
  "apiEnabled" : true,
  "sendingEnabled" : false,
  "selfBillingEnabled" : false,
  "fromReplyToAddressSuppliers" : "member88@email.com",
  "autoremindInvites" : true,
  "noDaysToKeepNonRejectableInvoices" : 5,
  "noDaysToKeepRejectedInvoices" : 3,
  "neverAutoAcceptNonRejectableInvoices" : false,
  "preventDuplicateInvoiceNo" : true,
  "partyIdentifiers" : {
    "count" : 2,
    "items" : [ {
      "id" : 15,
      "primary" : false,
      "type" : "GLN",
      "detailedType" : "GLN",
      "identifier" : "7884620772928"
    }, {
      "id" : 74,
      "primary" : true,
      "type" : "SE:ORGNR",
      "detailedType" : "SE:ORGNR",
      "countryId" : "SE",
      "identifier" : "1905285209"
    } ]
  },
  "addresses" : {
    "count" : 1,
    "items" : [ {
      "id" : 17,
      "partyIdentifier" : {
        "id" : 15,
        "primary" : false,
        "type" : "GLN",
        "detailedType" : "GLN",
        "identifier" : "7884620772928"
      },
      "name" : "Test Member88",
      "countryId" : "SE",
      "city" : "City 88",
      "streetAddress" : "Street 88",
      "coAddress" : "coAddress 88",
      "zipCode" : "99988",
      "legalAddress" : true,
      "addressLine" : "Address line 88",
      "countrySubentity" : "Country subentity 88",
      "recipientAddress" : false,
      "deliveryAddress" : false,
      "partysReference" : "Party reference 88"
    } ]
  },
  "users" : {
    "count" : 1,
    "items" : [ {
      "id" : 26,
      "name" : "Test User",
      "email" : "test.email@kofax.com",
      "phone" : "+46 322 12 34 56",
      "mobilePhone" : "+46 322 56 43 21",
      "fax" : "+46 322 12 34 56"
    } ]
  },
  "invoices" : { },
  "clearanceWorkflowEnabled" : false,
  "serviceProviderClearanceEnabled" : false,
  "serviceProviderRetrievalEnabled" : false,
  "serviceProviderTestClearanceEnabled" : false,
  "serviceProviderTestRetrievalEnabled" : false,
  "serviceProviderFullBuyerModeEnabled" : false,
  "receiveFromPeppol" : false,
  "externalRegistriesConsent" : false
}

Update a member

Manages the settings and status of an existing member.

To change a member setting, send a JSON document that contains a new value for the specific setting referred by a property name that corresponds to it.

In the same way a member can be activated or deactivated by sending a JSON document containing the status property with the values set to Active or Unregistered respectively.

Each time when the payment means are being updated by the request specify ALL payment means to be configured for the member.

PATCH /api/members/43 HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 208

{
  "noDaysToKeepRejectedInvoices" : 70,
  "noDaysToKeepNonRejectableInvoices" : 71,
  "transferInformationSettings" : {
    "supplierPaymentMeansUpdateTypes" : {
      "IBAN" : "if_empty"
    }
  }
}

Path parameters

Table 2. /members/{memberId}
Parameter Description

memberId

Unique member ID.

Query parameters

No parameters.

Request fields

No request body.

Response fields

Path Type Description

id

Number

Member unique ID.

legalName

String

Member name.

status

String

Member status. The field is mainly either Active or Unregistered, but it also can be set by the service to PendingApproval, Pending, Blocked.

product

String

A product the member belongs to.

apiEnabled

Boolean

The setting that enables or disables access to the member via the API.

sendingEnabled

Boolean

The setting that enables or disables ability of the member to submit invoices via the API.

selfBillingEnabled

Boolean

The setting that enables self-billing submissions for a buyer. For correct configuration sending must be active and additional configuration might be needed if Peppol exchange has been setup.

autoremindInvites

Boolean

The auto reminder setting value

noDaysToKeepNonRejectableInvoices

Number

Number of days until auto accepting invoices with errors for which sender cannot be notified. 0 to auto accept without delay.

noDaysToKeepRejectedInvoices

Number

Number of days until auto rejecting invoices with errors for which sender can be notified. 0 to disable management of stopped invoices before sender is notified.

neverAutoAcceptNonRejectableInvoices

Boolean

Never auto accept invoices when sender cannot be notified.

preventDuplicateInvoiceNo

Boolean

The prevent duplicate invoice number within the same year setting value.

transferInformationSettings

Object

Optional transfer information settings object which properties may alter the invoice data produced by the sender’s business system via the configured substitution rules.

transferInformationSettings.supplierPaymentMeansUpdateTypes

Object

Object that describes the configured supplier payment means substitution rules.

transferInformationSettings.supplierPaymentMeansUpdateTypes.BANK

String

Substitution rule for the BANK type, either always or if_empty or missing.

transferInformationSettings.supplierPaymentMeansUpdateTypes.CARD

String

Substitution rule for the CARD type, either always or if_empty or missing.

transferInformationSettings.supplierPaymentMeansUpdateTypes.CASH

String

Substitution rule for the CASH type, either always or if_empty or missing.

transferInformationSettings.supplierPaymentMeansUpdateTypes.DirectDebit

String

Substitution rule for the DirectDebit type, either always or if_empty or missing.

transferInformationSettings.supplierPaymentMeansUpdateTypes.DK_FIK

String

Substitution rule for the DK_FIK type, either always or if_empty or missing.

transferInformationSettings.supplierPaymentMeansUpdateTypes.DK_Giro

String

Substitution rule for the DK_Giro type, either always or if_empty or missing.

transferInformationSettings.supplierPaymentMeansUpdateTypes.IBAN

String

Substitution rule for the IBAN type, either always or if_empty or missing.

transferInformationSettings.supplierPaymentMeansUpdateTypes.PaymentMandate

String

Substitution rule for the PaymentMandate type, either always or if_empty or missing.

transferInformationSettings.supplierPaymentMeansUpdateTypes.SE_BankGiro

String

Substitution rule for the SE_BankGiro type, either always or if_empty or missing.

transferInformationSettings.supplierPaymentMeansUpdateTypes.SE_PlusGiro

String

Substitution rule for the SE_PlusGiro type, either always or if_empty or missing.

fromReplyToAddressSuppliers

String

E-mail address to be used as From address when sending invoices via e-mail to suppliers.

partyIdentifiers

Object

An object that contains a collection of party identifiers.

partyIdentifiers.count

Number

Number of party identifiers in the collection.

partyIdentifiers.items

Array

Array of party identifiers.

partyIdentifiers.items[].id

Number

Party identifier unique ID.

partyIdentifiers.items[].primary

Boolean

Attribute that shows if the party identifier is a primary one for the country

partyIdentifiers.items[].type

String

Party identifier type.

partyIdentifiers.items[].detailedType

String

Party identifier detailed type.

partyIdentifiers.items[].identifier

String

Party identifier value.

addresses

Object

Object that contains a collection of addresses

addresses.count

Number

Number of addresses in the collection.

addresses.items

Array

Array of addresses

addresses.items[].partyIdentifier

Object

Address party identifier object.

addresses.items[].partyIdentifier.id

Number

Address party identifier unique ID.

addresses.items[].partyIdentifier.type

String

Address party identifier type.

addresses.items[].partyIdentifier.detailedType

String

Address party identifier detailed type.

addresses.items[].partyIdentifier.countryId

String

Address party identifier country ID.

addresses.items[].partyIdentifier.identifier

String

Address party identifier value.

addresses.items[].name

String

Address name.

addresses.items[].countryId

String

Address country ID.

addresses.items[].city

String

City.

addresses.items[].streetAddress

String

Street address.

addresses.items[].coAddress

String

Co-address.

addresses.items[].zipCode

String

Zip code.

addresses.items[].legalAddress

Boolean

Attribute that shows if the address is a legal address.

addresses.items[].addressLine

String

Address line.

addresses.items[].countrySubentity

String

Country subentity.

addresses.items[].recipientAddress

Boolean

Attribute that shows if the address is a recipient address.

addresses.items[].deliveryAddress

Boolean

Attribute that shows if the address is a delivery address.

addresses.items[].partysReference

String

Party’s reference

users

Object

Object that contains a collection of member users.

users.count

Number

Number of users in the collection.

users.items

Array

Array of member users.

users.items[].id

Number

Member user unique ID.

users.items[].name

String

User name.

users.items[].email

String

User email.

users.items[].fax

String

User fax number.

users.items[].phone

String

User phone number.

users.items[].mobilePhone

String

User mobile phone number.

paymentMeans

Object

Optional object that contains a collection of payment means.

paymentMeans.count

Number

Number of payment means in the collection.

paymentMeans.items

Array

Array of member payment means objects.

paymentMeans.items[].id

Number

Payment means unique ID.

paymentMeans.items[].type

String

Name of the payment means type.

paymentMeans.items[].subtype

String

Payment means subtype value.

paymentMeans.items[].account

String

Payment means account value.

paymentMeans.items[].swiftCode

String

SWIFT code.

paymentMeans.items[].branchCode

String

Identification of branch or office within institution, such as clearing no.

paymentMeans.items[].bankName

String

Name of the payment service institution, such as the name of the bank

paymentMeans.items[].cardNetworkId

String

Card network identification, such as Mastercard.

paymentMeans.items[].cardHolderName

String

Card holder name.

paymentMeans.items[].paymentMandate

String

Payment mandate.

paymentMeans.items[].payerFinancialAccount

String

Payer financial account value.

clearanceWorkflowEnabled

Boolean

The setting that enables or disables Clearance workflow subscription.

serviceProviderClearanceEnabled

Boolean

The setting that shows if Clearance service is enabled.

serviceProviderRetrievalEnabled

Boolean

The setting that shows if Retrieval service is enabled.

serviceProviderTestClearanceEnabled

Boolean

The setting that shows if Clearance service is enabled in the test environment.

serviceProviderTestRetrievalEnabled

Boolean

The setting that shows if Retrieval service is enabled in the test environment.

serviceProviderFullBuyerModeEnabled

Boolean

The setting that shows if full buyer mode service is enabled.

receiveFromPeppol

Boolean

Option to receive messages from Peppol.

externalRegistriesConsent

Boolean

Acceptance of exposure member data in external registries including Peppol.

invoices

Object

Object with information about the invoice subresource.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
  "noDaysToKeepRejectedInvoices" : 70,
  "noDaysToKeepNonRejectableInvoices" : 71,
  "transferInformationSettings" : {
    "supplierPaymentMeansUpdateTypes" : {
      "IBAN" : "if_empty"
    }
  }
}'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 2476

{
  "id" : 43,
  "legalName" : "Test Member43",
  "status" : "Active",
  "product" : "AP Essentials",
  "apiEnabled" : true,
  "sendingEnabled" : true,
  "selfBillingEnabled" : false,
  "fromReplyToAddressSuppliers" : "member43@email.com",
  "autoremindInvites" : true,
  "noDaysToKeepNonRejectableInvoices" : 71,
  "noDaysToKeepRejectedInvoices" : 70,
  "neverAutoAcceptNonRejectableInvoices" : false,
  "preventDuplicateInvoiceNo" : true,
  "transferInformationSettings" : {
    "supplierPaymentMeansUpdateTypes" : {
      "IBAN" : "if_empty"
    }
  },
  "partyIdentifiers" : {
    "count" : 2,
    "items" : [ {
      "id" : 44,
      "primary" : false,
      "type" : "GLN",
      "detailedType" : "GLN",
      "identifier" : "4431378575016"
    }, {
      "id" : 43,
      "primary" : true,
      "type" : "SE:ORGNR",
      "detailedType" : "SE:ORGNR",
      "countryId" : "SE",
      "identifier" : "4385394905"
    } ]
  },
  "addresses" : {
    "count" : 1,
    "items" : [ {
      "id" : 43,
      "partyIdentifier" : {
        "id" : 44,
        "primary" : false,
        "type" : "GLN",
        "detailedType" : "GLN",
        "identifier" : "4431378575016"
      },
      "name" : "Test Member43",
      "countryId" : "SE",
      "city" : "City 43",
      "streetAddress" : "Street 43",
      "coAddress" : "coAddress 43",
      "zipCode" : "92443",
      "legalAddress" : true,
      "addressLine" : "Address line 43",
      "countrySubentity" : "Country subentity 43",
      "recipientAddress" : false,
      "deliveryAddress" : false,
      "partysReference" : "Party reference 43"
    } ]
  },
  "users" : {
    "count" : 1,
    "items" : [ {
      "id" : 43,
      "name" : "Test User43",
      "email" : "test.email43@kofax.com",
      "phone" : "+46 322 12 34 56",
      "mobilePhone" : "+46 322 56 43 21",
      "fax" : "+46 322 12 34 56"
    } ]
  },
  "paymentMeans" : {
    "count" : 1,
    "items" : [ {
      "id" : 707,
      "type" : "IBAN",
      "account" : "00000058398257466"
    } ]
  },
  "invoices" : { },
  "clearanceWorkflowEnabled" : false,
  "serviceProviderClearanceEnabled" : false,
  "serviceProviderRetrievalEnabled" : false,
  "serviceProviderTestClearanceEnabled" : false,
  "serviceProviderTestRetrievalEnabled" : false,
  "serviceProviderFullBuyerModeEnabled" : false,
  "receiveFromPeppol" : false,
  "externalRegistriesConsent" : false
}

Member address endpoint

This endpoint is a collection resource that manages member addresses.

Get member addresses

Returns a list of member addresses.

GET /api/members/43/addresses HTTP/1.1

Path parameters

Table 3. /members/{memberId}/addresses
Parameter Description

memberId

Unique member ID.

Query parameters

Parameter Type Description

sort

String

Optional sorting parameter. The properties that can be specified for sorting are:

1. id - address ID

2. name - address name

Request fields

No request body.

Response fields

Path Type Description

count

Number

Actual size of content array (number of items).

items

Array

Array of address objects.

items[].id

Number

Address unique ID.

items[].name

String

Address name.

items[].legalAddress

Boolean

Attribute that shows if the address is a legal address.

items[].recipientAddress

Boolean

Attribute that shows if the address is a recipient address.

items[].deliveryAddress

Boolean

Attribute that shows if the address is a delivery address.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/addresses' -i -X GET

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 331

{
  "count" : 2,
  "items" : [ {
    "id" : 24,
    "name" : "Test Member24",
    "legalAddress" : false,
    "recipientAddress" : false,
    "deliveryAddress" : false
  }, {
    "id" : 43,
    "name" : "Test Member43",
    "legalAddress" : true,
    "recipientAddress" : false,
    "deliveryAddress" : false
  } ]
}

Add member address

Creates a new address and associates it with a member.

POST /api/members/43/addresses HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 507

{
  "zipCode" : "55524",
  "coAddress" : "coAddress 24",
  "city" : "City 24",
  "addressLine" : "Address line 24",
  "countryId" : "SE",
  "legalAddress" : false,
  "countrySubentity" : "Country subentity 24",
  "streetAddress" : "Street 24",
  "deliveryAddress" : false,
  "name" : "Test Address 24",
  "recipientAddress" : false,
  "partysReference" : "Party reference 24",
  "partyIdentifier" : {
    "identifier" : "7858637348797",
    "detailedType" : "GLN",
    "type" : "GLN"
  }
}

Path parameters

Table 4. /members/{memberId}/addresses
Parameter Description

memberId

Unique member ID.

Query parameters

No parameters.

Request fields

Path Type Description

name

String

Address name.

countryId

String

Country ID.

city

String

City.

streetAddress

String

Street address.

zipCode

String

Address zip code.

coAddress

String

Co-address.

addressLine

String

Address line

countrySubentity

String

Country subentity.

partysReference

String

Party’s reference.

legalAddress

Boolean

Attribute that shows if the address is a legal address.

recipientAddress

Boolean

Attribute that shows if the address is a recipient address.

deliveryAddress

Boolean

Attribute that shows if the address it a delivery address.

partyIdentifier

Object

Address party identifier object.

Response fields

Path Type Description

id

Number

Address unique ID.

name

String

Address name.

countryId

String

Country ID.

city

String

City.

streetAddress

String

Street address.

zipCode

String

Address zip code.

coAddress

String

Co-address.

addressLine

String

Address line.

countrySubentity

String

Country subentity.

partysReference

String

Party’s reference.

legalAddress

Boolean

Attribute that shows if the address is a legal address.

recipientAddress

Boolean

Attribute that shows if the address is a recipient address.

deliveryAddress

Boolean

Attribute that shows if the address is a delivery address.

partyIdentifier

Object

Address party identifier object.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/addresses' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
  "zipCode" : "55524",
  "coAddress" : "coAddress 24",
  "city" : "City 24",
  "addressLine" : "Address line 24",
  "countryId" : "SE",
  "legalAddress" : false,
  "countrySubentity" : "Country subentity 24",
  "streetAddress" : "Street 24",
  "deliveryAddress" : false,
  "name" : "Test Address 24",
  "recipientAddress" : false,
  "partysReference" : "Party reference 24",
  "partyIdentifier" : {
    "identifier" : "7858637348797",
    "detailedType" : "GLN",
    "type" : "GLN"
  }
}'

Example response

HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 545

{
  "id" : 24,
  "partyIdentifier" : {
    "primary" : false,
    "type" : "GLN",
    "detailedType" : "GLN",
    "identifier" : "7858637348797"
  },
  "name" : "Test Address 24",
  "countryId" : "SE",
  "city" : "City 24",
  "streetAddress" : "Street 24",
  "coAddress" : "coAddress 24",
  "zipCode" : "55524",
  "legalAddress" : false,
  "addressLine" : "Address line 24",
  "countrySubentity" : "Country subentity 24",
  "recipientAddress" : false,
  "deliveryAddress" : false,
  "partysReference" : "Party reference 24"
}

Get member address details

Returns detailed information about a member address.

GET /api/members/43/addresses/43 HTTP/1.1

Path parameters

Table 5. /members/{memberId}/addresses/{addressId}
Parameter Description

memberId

Unique member ID.

addressId

Address unique ID.

Query parameters

No parameters.

Request fields

No request body.

Response fields

Path Type Description

id

Number

Address unique ID.

name

String

Address name.

countryId

String

Country ID.

city

String

City.

streetAddress

String

Street address.

zipCode

String

Address zip code.

coAddress

String

Co-address.

addressLine

String

Address line.

countrySubentity

String

Country subentity.

partysReference

String

Party’s reference.

legalAddress

Boolean

Attribute that shows if the address is a legal address.

recipientAddress

Boolean

Attribute that shows if the address is a recipient address.

deliveryAddress

Boolean

Attribute that shows if the address is a delivery address.

partyIdentifier

Object

Address party identifier object.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/addresses/43' -i -X GET

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 558

{
  "id" : 43,
  "partyIdentifier" : {
    "id" : 44,
    "primary" : false,
    "type" : "GLN",
    "detailedType" : "GLN",
    "identifier" : "4454678092915"
  },
  "name" : "Test Member43",
  "countryId" : "SE",
  "city" : "City 43",
  "streetAddress" : "Street 43",
  "coAddress" : "coAddress 43",
  "zipCode" : "53643",
  "legalAddress" : true,
  "addressLine" : "Address line 43",
  "countrySubentity" : "Country subentity 43",
  "recipientAddress" : false,
  "deliveryAddress" : false,
  "partysReference" : "Party reference 43"
}

Remove member address

Removes a member address.

DELETE /api/members/43/addresses/24 HTTP/1.1

Path parameters

Table 6. /members/{memberId}/addresses/{addressId}
Parameter Description

memberId

Unique member ID.

addressId

Address unique ID.

Query parameters

No parameters.

Request fields

No request body.

Response fields

No content.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/addresses/24' -i -X DELETE

Example response

HTTP/1.1 204 No Content

Member party identifier endpoint

This endpoint is a collection resource that manages member party identifiers.

Check out the rules for the supported party identifier types and formatting.

Get member party identifiers

Returns a list of member party identifiers.

GET /api/members/43/partyIdentifiers HTTP/1.1

Path parameters

Table 7. /members/{memberId}/partyIdentifiers
Parameter Description

memberId

Unique member ID.

Query parameters

No parameters.

Request fields

No request body.

Response fields

Path Type Description

count

Number

Actual size of content array (number of items).

items

Array

Array of party identifier objects.

items[].id

Number

Party identifier unique ID.

items[].primary

Boolean

Attribute that shows if the party identifier is a primary one.

items[].type

String

Party identifier type.

items[].detailedType

String

Party identifier detailedType.

items[].identifier

String

Party identifier value.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/partyIdentifiers' -i -X GET

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 335

{
  "count" : 2,
  "items" : [ {
    "id" : 43,
    "primary" : true,
    "type" : "SE:ORGNR",
    "detailedType" : "SE:ORGNR",
    "countryId" : "SE",
    "identifier" : "4365097775"
  }, {
    "id" : 25,
    "primary" : false,
    "type" : "GLN",
    "detailedType" : "GLN",
    "identifier" : "2501602398475"
  } ]
}

Add a new member party identifier

Creates a new party identifier for a member.

POST /api/members/43/partyIdentifiers HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 78

{
  "identifier" : "1020743243",
  "type" : "DK:P",
  "countryId" : "DK"
}

Path parameters

Table 8. /members/{memberId}/partyIdentifiers
Parameter Description

memberId

Unique member ID.

Query parameters

No parameters.

Request fields

Path Type Description

type

String

Party identifier type.

identifier

String

Party identifier value.

countryId

String

Party identifier country ID.

Response fields

Path Type Description

id

Number

Party identifier unique ID.

primary

Boolean

Attribute that shows if the party identifier is a primary one.

type

String

Party identifier type.

detailedType

String

Party identifier detailedType.

identifier

String

Party identifier value.

countryId

String

Party identifier country ID.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/partyIdentifiers' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
  "identifier" : "1020743243",
  "type" : "DK:P",
  "countryId" : "DK"
}'

Example response

HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 142

{
  "id" : 24,
  "primary" : false,
  "type" : "DK:P",
  "detailedType" : "DK:P",
  "countryId" : "DK",
  "identifier" : "1020743243"
}

Get member party identifier details

Returns detailed information about a member party identifier.

GET /api/members/43/partyIdentifiers/43 HTTP/1.1

Path parameters

Table 9. /members/{memberId}/partyIdentifiers/{partyIdentifierId}
Parameter Description

memberId

Unique member ID.

partyIdentifierId

Party identifier unique ID.

Query parameters

No parameters.

Request fields

No request body.

Response fields

Path Type Description

id

Number

Party identifier unique ID.

primary

Boolean

Attribute that shows if the party identifier is a primary one.

type

String

Party identifier type.

detailedType

String

Party identifier detailedType.

identifier

String

Party identifier value.

countryId

String

Party identifier country ID.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/partyIdentifiers/43' -i -X GET

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 149

{
  "id" : 43,
  "primary" : true,
  "type" : "SE:ORGNR",
  "detailedType" : "SE:ORGNR",
  "countryId" : "SE",
  "identifier" : "4344206083"
}

Remove member party identifier

Removes a member party identifier.

DELETE /api/members/43/partyIdentifiers/85 HTTP/1.1

Path parameters

Table 10. /members/{memberId}/partyIdentifiers/{partyIdentifierId}
Parameter Description

memberId

Unique member ID.

partyIdentifierId

Party identifier unique ID.

Query parameters

No parameters.

Request fields

No request body.

Response fields

No content.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/partyIdentifiers/85' -i -X DELETE

Example response

HTTP/1.1 204 No Content

Member user endpoint

This endpoint is a collection resource that manages member users.

Get member users

Returns a list of member users.

GET /api/members/43/users HTTP/1.1

Path parameters

Table 11. /members/{memberId}/users
Parameter Description

memberId

Unique member ID.

Query parameters

Parameter Type Description

sort

String

Optional sorting parameter. The properties that can be specified for sorting are:

1. id - user ID

2. name - user name

Request fields

No request body.

Response fields

Path Type Description

count

Number

Actual size of content array (number of items).

items

Array

Array of user objects.

items[].id

Number

User unique ID.

items[].name

String

User name.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/users' -i -X GET

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 140

{
  "count" : 2,
  "items" : [ {
    "id" : 25,
    "name" : "Test User25"
  }, {
    "id" : 29,
    "name" : "Test User29"
  } ]
}

Add member user

Creates a new member user.

POST /api/members/43/users HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 168

{
  "mobilePhone" : "+46 322 65 43 21",
  "phone" : "+46 322 12 34 56",
  "name" : "Test User",
  "fax" : "+46 322 12 34 56",
  "email" : "test.email@kofax.com"
}

Path parameters

Table 12. /members/{memberId}/users
Parameter Description

memberId

Unique member ID.

Query parameters

No parameters.

Request fields

Path Type Description

name

String

User name.

email

String

User email address.

fax

String

User fax number.

phone

String

User phone number.

mobilePhone

String

User mobile phone number.

Response fields

Path Type Description

id

Number

User unique ID.

name

String

User name.

email

String

User email address.

fax

String

User fax number.

phone

String

User phone number.

mobilePhone

String

User mobile phone number.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/users' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
  "mobilePhone" : "+46 322 65 43 21",
  "phone" : "+46 322 12 34 56",
  "name" : "Test User",
  "fax" : "+46 322 12 34 56",
  "email" : "test.email@kofax.com"
}'

Example response

HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 182

{
  "id" : 56,
  "name" : "Test User",
  "email" : "test.email@kofax.com",
  "phone" : "+46 322 12 34 56",
  "mobilePhone" : "+46 322 65 43 21",
  "fax" : "+46 322 12 34 56"
}

Get member user details

Returns detailed information about a member user.

GET /api/members/43/users/43 HTTP/1.1

Path parameters

Table 13. /members/{memberId}/users/{userId}
Parameter Description

memberId

Unique member ID.

userId

User unique ID.

Query parameters

No parameters.

Request fields

No request body.

Response fields

Path Type Description

id

Number

User unique ID.

name

String

User name.

email

String

User email address.

fax

String

User fax number.

phone

String

User phone number.

mobilePhone

String

User mobile phone number.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/users/43' -i -X GET

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 186

{
  "id" : 43,
  "name" : "Test User43",
  "email" : "test.email43@kofax.com",
  "phone" : "+46 322 12 34 56",
  "mobilePhone" : "+46 322 56 43 21",
  "fax" : "+46 322 12 34 56"
}

Update member user

Updates a member user.

PATCH /api/members/43/users/43 HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 34

{
  "fax" : "+46 322 99 99 99"
}

Path parameters

Table 14. /members/{memberId}/users/{userId}
Parameter Description

memberId

Unique member ID.

userId

User unique ID.

Query parameters

No parameters.

Request fields

No request body.

Response fields

Path Type Description

id

Number

User unique ID.

name

String

User name.

email

String

User email address.

fax

String

User fax number.

phone

String

User phone number.

mobilePhone

String

User mobile phone number.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/users/43' -i -X PATCH \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
  "fax" : "+46 322 99 99 99"
}'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 186

{
  "id" : 43,
  "name" : "Test User43",
  "email" : "test.email43@kofax.com",
  "phone" : "+46 322 12 34 56",
  "mobilePhone" : "+46 322 56 43 21",
  "fax" : "+46 322 99 99 99"
}

Delete member user

Removes a member user.

DELETE /api/members/43/users/25 HTTP/1.1

Path parameters

Table 15. /members/{memberId}/users/{userId}
Parameter Description

memberId

Unique member ID.

userId

User unique ID.

Query parameters

No parameters.

Request fields

No request body.

Response fields

No content.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/users/25' -i -X DELETE

Example response

HTTP/1.1 204 No Content

Member payment means endpoint

This endpoint is a collection resource that manages member payment means.

Get member payment means collection

Returns a list of member payment means.

GET /api/members/43/paymentMeans HTTP/1.1
Accept: application/json

Path parameters

Table 16. /members/{memberId}/paymentMeans
Parameter Description

memberId

Unique member ID.

Query parameters

No parameters.

Request fields

No request body.

Response fields

Path Type Description

count

Number

Actual size of content array (number of items).

items

Array

Array of payment means objects.

items[].id

Number

Payment means unique ID.

items[].type

String

Name of the payment means type.

items[].subtype

String

Payment means subtype value.

items[].account

String

Payment means account value.

items[].swiftCode

String

SWIFT code.

items[].branchCode

String

Identification of branch or office within institution, such as clearing no.

items[].bankName

String

Name of the payment service institution, such as the name of the bank

items[].cardNetworkId

String

Card network identification, such as Mastercard.

items[].cardHolderName

String

Card holder name.

items[].paymentMandate

String

Payment mandate.

items[].payerFinancialAccount

String

Payer financial account value.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/paymentMeans' -i -X GET \
    -H 'Accept: application/json'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 119

{
  "count" : 1,
  "items" : [ {
    "id" : 89,
    "type" : "IBAN",
    "account" : "00000058398257466"
  } ]
}

Add member payment means

Creates a new payment means and associates it with a member.

POST /api/members/43/paymentMeans HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 131

{
  "cardNetworkId" : "Mastercard",
  "cardHolderName" : "Name Surname",
  "type" : "CARD",
  "account" : "1234567890123456"
}

Path parameters

Table 17. /members/{memberId}/paymentMeans
Parameter Description

memberId

Unique member ID.

Query parameters

No parameters.

Request fields

Path Type Description

type

String

Name of the payment means type.

subtype

String

Payment means subtype value.

account

String

Payment means account value.

swiftCode

String

SWIFT code.

branchCode

String

Identification of branch or office within institution, such as clearing no.

bankName

String

Name of the payment service institution, such as the name of the bank

cardNetworkId

String

Card network identification, such as Mastercard.

cardHolderName

String

Card holder name.

paymentMandate

String

Payment mandate.

payerFinancialAccount

String

Payer financial account value.

Response fields

Path Type Description

id

Number

Payment means unique ID.

type

String

Name of the payment means type.

subtype

String

Payment means subtype value.

account

String

Payment means account value.

swiftCode

String

SWIFT code.

branchCode

String

Identification of branch or office within institution, such as clearing no.

bankName

String

Name of the payment service institution, such as the name of the bank

cardNetworkId

String

Card network identification, such as Mastercard.

cardHolderName

String

Card holder name.

paymentMandate

String

Payment mandate.

payerFinancialAccount

String

Payer financial account value.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/paymentMeans' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
  "cardNetworkId" : "Mastercard",
  "cardHolderName" : "Name Surname",
  "type" : "CARD",
  "account" : "1234567890123456"
}'

Example response

HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 147

{
  "id" : 9345,
  "type" : "CARD",
  "account" : "1234567890123456",
  "cardNetworkId" : "Mastercard",
  "cardHolderName" : "Name Surname"
}

Get member payment means details

Returns detailed information about a member payment means.

GET /api/members/43/paymentMeans/507 HTTP/1.1
Accept: application/json

Path parameters

Table 18. /members/{memberId}/paymentMeans/{paymentMeansId}
Parameter Description

memberId

Unique member ID.

paymentMeansId

Payment means unique ID.

Query parameters

No parameters.

Request fields

No request body.

Response fields

Path Type Description

id

Number

Payment means unique ID.

type

String

Name of the payment means type.

subtype

String

Payment means subtype value.

account

String

Payment means account value.

swiftCode

String

SWIFT code.

branchCode

String

Identification of branch or office within institution, such as clearing no.

bankName

String

Name of the payment service institution, such as the name of the bank

cardNetworkId

String

Card network identification, such as Mastercard.

cardHolderName

String

Card holder name.

paymentMandate

String

Payment mandate.

payerFinancialAccount

String

Payer financial account value.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/paymentMeans/507' -i -X GET \
    -H 'Accept: application/json'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 74

{
  "id" : 507,
  "type" : "IBAN",
  "account" : "00000058398257466"
}

Remove member payment means

Removes a member payment means.

DELETE /api/members/43/paymentMeans/881 HTTP/1.1
Accept: application/json

Path parameters

Table 19. /members/{memberId}/paymentMeans/{paymentMeansId}
Parameter Description

memberId

Unique member ID.

paymentMeansId

Payment means unique ID.

Query parameters

No parameters.

Request fields

No request body.

Response fields

No content.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/paymentMeans/881' -i -X DELETE \
    -H 'Accept: application/json'

Example response

HTTP/1.1 204 No Content

Invoice Delivery and Status Management

This second major part of the API is the core functionality that allows to get information about incoming invoices processed by e-Invoice Connect for members, as well as to receive invoice and invoice attachment payloads.

It also covers what can be done in terms of managing the invoice status.

Invoice endpoint

This endpoint is a collection resource that manages received member invoices.

Get member invoices / invoice lookup

Returns a list of invoices received for members and stored by e-Invoice Connect.

GET /api/members/43/invoices HTTP/1.1

Path parameters

Table 20. /members/{memberId}/invoices
Parameter Description

memberId

Unique member ID.

Query parameters

Parameter Type Description

q

Object

Optional extended query for invoice lookup and filtering. The parameters that can be specified for the invoice search are:

1. status - invoice status

2. senderName - legal name of a sending party

3. invoiceNo - invoice number

4. invoiceDate - invoice date

5. arrivedAt - date and time invoice arrived at

sort

String

Optional sorting parameter. The properties that can be specified for sorting are:

1. id - invoice ID

2. invoiceType - invoice type

3. typeOfSending - invoice sending type

4. invoiceNo - invoice number

5. invoiceDate - invoice date

6. dueDate - invoice due date

7. arrivedAt - date and time invoice arrived at

8. receivedAt - date and time invoice was received at

9. deliveredAt - date and time invoice was delivered at

10. verifiedAt - date and time invoice was verified at

11. approvedAt - date and time invoice was approved at

12. currency - invoice currency

13. toPay - invoice total amount

14. selfBillingOnly - if true - list only self-billing invoices when applicable

Supports standard paging query parameters.

Request fields

No request body.

Response fields

Path Type Description

page

Number

Page number.

count

Number

Actual size of content array (number of items).

total

Number

Total number of existing items.

pages

Number

Total number of pages with current page size.

items

Array

Array of invoice objects.

items[].id

Number

Invoice unique ID.

items[].invoiceType

String

Invoice type code.

items[].typeOfSending

String

Type of invoice sending: eInvoice, email, print or reporting.

items[].status

String

Invoice status.

items[].invoiceNo

String

Invoice number assigned by the sender.

items[].senderName

String

Name of the invoice sender.

items[].senderIdentifiers

Array

The invoice sender party identifier object array.

items[].invoiceDate

String

Invoice date.

items[].dueDate

String

Invoice due date.

items[].arrivedAt

String

Date and time of the invoice arrival.

items[].receivedAt

String

Date and time of the invoice receiving by the receiving member.

items[].deliveredAt

String

Date and time of changing the invoice status to Delivered.

items[].verifiedAt

String

Date and time of changing the invoice status to Verified.

items[].approvedAt

String

Date and time of changing the invoice status to Approved.

items[].appovedAt

String

Deprecated field superseded by approvedAt.

items[].currency

String

Invoice currency represented as a three-letter ISO-4217 code.

items[].toPay

Number

Total amount to pay including VAT.

items[].errors

Array

Array of text items with invoice errors.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/invoices' -i -X GET

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1195

{
  "page" : 1,
  "count" : 2,
  "total" : 2,
  "pages" : 1,
  "items" : [ {
    "id" : 59,
    "invoiceType" : "Debit",
    "typeOfSending" : "eInvoice",
    "status" : "Received",
    "invoiceNo" : "invoice@2024-07#416",
    "senderName" : "Test Member62",
    "senderIdentifiers" : [ ],
    "invoiceDate" : "2026-04-01",
    "dueDate" : "2026-04-16",
    "arrivedAt" : "2026-04-01T12:31:31+02:00",
    "receivedAt" : "2026-04-01T12:31:33+02:00",
    "currency" : "SEK",
    "toPay" : 12028,
    "errors" : [ ]
  }, {
    "id" : 64,
    "invoiceType" : "Debit",
    "typeOfSending" : "eInvoice",
    "status" : "Approved",
    "invoiceNo" : "invoice@2024-07#480",
    "senderName" : "Test Member62",
    "senderIdentifiers" : [ ],
    "invoiceDate" : "2026-04-01",
    "dueDate" : "2026-04-11",
    "arrivedAt" : "2026-04-01T12:31:31+02:00",
    "receivedAt" : "2026-04-01T12:31:33+02:00",
    "deliveredAt" : "2026-04-01T12:43:13+02:00",
    "verifiedAt" : "2026-04-01T14:36:53+02:00",
    "approvedAt" : "2026-04-01T16:46:02+02:00",
    "appovedAt" : "2026-04-01T16:46:02+02:00",
    "currency" : "EUR",
    "toPay" : 510.5,
    "errors" : [ ]
  } ]
}

Get member invoice details

Returns detailed information about an invoice processed for a member.

GET /api/members/43/invoices/59 HTTP/1.1

Path parameters

Table 21. /members/{memberId}/invoices/{invoiceId}
Parameter Description

memberId

Unique member ID.

invoiceId

Invoice unique ID.

Query parameters

No parameters.

Request fields

No request body.

Response fields

Path Type Description

id

Number

Invoice unique ID.

invoiceType

String

Invoice type code.

typeOfSending

String

Type of invoice sending: eInvoice, email, print or reporting.

invoicingMode

String

Type of invoice mode: currently only SB can be expected in output for Self-billing mode.

status

String

Invoice status.

invoiceNo

String

Invoice number assigned by the sender.

senderName

String

Name of the invoice sender.

senderIdentifiers

Array

The invoice sender party identifier object array.

invoiceDate

String

Invoice date.

dueDate

String

Invoice due date.

arrivedAt

String

Date and time of the invoice arrival.

receivedAt

String

Date and time of the invoice receiving by the receiving member.

deliveredAt

String

Date and time of changing the invoice status to Delivered.

verifiedAt

String

Date and time of changing the invoice status to Verified.

approvedAt

String

Date and time of changing the invoice status to Approved.

appovedAt

String

Deprecated field superseded by approvedAt.

currency

String

Invoice currency represented as a three-letter ISO-4217 code.

toPay

Number

Total amount to pay including VAT.

totalExclVat

Number

Total amount excluding VAT.

totalInclVat

Number

Total amount including VAT but excluding round off.

totalPrepaidAmount

Number

Total prepaid amount.

attachmentCount

Number

Number of the invoice attachments.

contentRejectForbidden

Boolean

Attribute that shows if the invoice rejection is forbidden per agreement with a sending operator.

correctingInvoiceId

Number

ID of another invoice that is considered as more recent version of this one.

errors

Array

Array of strings with invoice errors.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/invoices/59' -i -X GET

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 752

{
  "id" : 59,
  "invoiceType" : "Debit",
  "typeOfSending" : "eInvoice",
  "status" : "Received",
  "invoiceNo" : "invoice-Property[weekyear]413",
  "senderName" : "Test Member62",
  "senderIdentifiers" : [ {
    "id" : 62,
    "type" : "SE:ORGNR",
    "detailedType" : "SE:ORGNR",
    "countryId" : "SE",
    "identifier" : "6236298615"
  }, {
    "id" : 63,
    "type" : "GLN",
    "detailedType" : "GLN",
    "identifier" : "6396725371117"
  } ],
  "invoiceDate" : "2026-04-01",
  "dueDate" : "2026-05-01",
  "arrivedAt" : "2026-04-01T12:31:16+02:00",
  "receivedAt" : "2026-04-01T12:31:16+02:00",
  "currency" : "SEK",
  "toPay" : 3000059,
  "attachmentCount" : 0,
  "contentRejectForbidden" : false,
  "errors" : [ ]
}

Download invoice

Downloads an XML document containing invoice payload.

The payload document has the e-Invoice Connect defined XML schema ESXML2.
GET /api/members/43/invoices/59/payload HTTP/1.1
Accept: application/xml, application/json

Path parameters

Table 22. /members/{memberId}/invoices/{invoiceId}/payload
Parameter Description

memberId

Unique member ID.

invoiceId

Invoice unique ID.

Query parameters

No parameters.

Request fields

No request body.

Response fields

Returns invoice payload or the 404 (Not Found) error code if not found.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/invoices/59/payload' -i -X GET \
    -H 'Accept: application/xml, application/json'

Example response

HTTP/1.1 200 OK
Content-Disposition: form-data; name="attachment"; filename="invoice.xml"
Content-Type: application/xml
Content-Length: 44
Accept-Ranges: bytes

[ Body containing the invoice XML document ]
To avoid an error response, the Accept header for this request must include the application/xml content type of the payload.

Get member test clearance invoices

Please, note test API endpoint(s) currently support Polish clearance flows exclusively.

Returns a list of test clearance invoices received for members and stored by e-Invoice Connect. This endpoint only returns invoices that were submitted via the test invoice submission API endpoint.

GET /api/members/43/test-invoices HTTP/1.1

Path parameters

Table 23. /members/{memberId}/test-invoices
Parameter Description

memberId

Unique member ID.

Query parameters

Parameter Type Description

q

Object

Optional extended query for invoice lookup and filtering. The parameters that can be specified for the invoice search are:

1. status - invoice status

2. senderName - legal name of a sending party

3. invoiceNo - invoice number

4. invoiceDate - invoice date

5. arrivedAt - date and time invoice arrived at

sort

String

Optional sorting parameter. The properties that can be specified for sorting are:

1. id - invoice ID

2. invoiceType - invoice type

3. typeOfSending - invoice sending type

4. invoiceNo - invoice number

5. invoiceDate - invoice date

6. dueDate - invoice due date

7. arrivedAt - date and time invoice arrived at

8. receivedAt - date and time invoice was received at

9. deliveredAt - date and time invoice was delivered at

10. verifiedAt - date and time invoice was verified at

11. approvedAt - date and time invoice was approved at

12. currency - invoice currency

13. toPay - invoice total amount

14. selfBillingOnly - if true - list only self-billing invoices when applicable

Supports standard paging query parameters.

Request fields

No request body.

Response fields

Path Type Description

page

Number

Page number.

count

Number

Actual size of content array (number of items).

total

Number

Total number of existing items.

pages

Number

Total number of pages with current page size.

items

Array

Array of invoice objects.

items[].id

Number

Invoice unique ID.

items[].invoiceType

String

Invoice type code.

items[].typeOfSending

String

Type of invoice sending: eInvoice, email, print or reporting.

items[].status

String

Invoice status.

items[].invoiceNo

String

Invoice number assigned by the sender.

items[].senderName

String

Name of the invoice sender.

items[].senderIdentifiers

Array

The invoice sender party identifier object array.

items[].invoiceDate

String

Invoice date.

items[].dueDate

String

Invoice due date.

items[].arrivedAt

String

Date and time of the invoice arrival.

items[].receivedAt

String

Date and time of the invoice receiving by the receiving member.

items[].deliveredAt

String

Date and time of changing the invoice status to Delivered.

items[].verifiedAt

String

Date and time of changing the invoice status to Verified.

items[].approvedAt

String

Date and time of changing the invoice status to Approved.

items[].appovedAt

String

Deprecated field superseded by approvedAt.

items[].currency

String

Invoice currency represented as a three-letter ISO-4217 code.

items[].toPay

Number

Total amount to pay including VAT.

items[].errors

Array

Array of text items with invoice errors.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/test-invoices' -i -X GET

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 999

{
  "page" : 1,
  "count" : 2,
  "total" : 2,
  "pages" : 1,
  "items" : [ {
    "id" : 59,
    "invoiceType" : "Debit",
    "typeOfSending" : "eInvoice",
    "status" : "Received",
    "invoiceNo" : "invoice@2024-07#416",
    "senderName" : "Test Member62",
    "senderIdentifiers" : [ ],
    "invoiceDate" : "2026-04-01",
    "dueDate" : "2026-04-16",
    "arrivedAt" : "2026-04-01T12:32:11+02:00",
    "receivedAt" : "2026-04-01T12:32:13+02:00",
    "currency" : "SEK",
    "toPay" : 12028,
    "errors" : [ ]
  }, {
    "id" : 64,
    "invoiceType" : "Debit",
    "typeOfSending" : "eInvoice",
    "status" : "Received",
    "invoiceNo" : "invoice@2024-07#480",
    "senderName" : "Test Member62",
    "senderIdentifiers" : [ ],
    "invoiceDate" : "2026-04-01",
    "dueDate" : "2026-04-11",
    "arrivedAt" : "2026-04-01T12:32:11+02:00",
    "receivedAt" : "2026-04-01T12:32:14+02:00",
    "currency" : "EUR",
    "toPay" : 510.5,
    "errors" : [ ]
  } ]
}

Download test invoice payload

Please, note test API endpoint(s) currently support Polish clearance flows exclusively.

Downloads an XML document containing test invoice payload. This endpoint only returns invoices that were submitted via the test invoice submission API endpoint.

The payload document has the e-Invoice Connect defined XML schema ESXML2.
GET /api/members/43/test-invoices/59/payload HTTP/1.1
Accept: application/xml, application/json

Path parameters

Table 24. /members/{memberId}/test-invoices/{invoiceId}/payload
Parameter Description

memberId

Unique member ID.

invoiceId

Invoice unique ID.

Query parameters

No parameters.

Request fields

No request body.

Response fields

Returns test invoice payload or the 404 (Not Found) error code if not found or if the invoice is not a test invoice.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/test-invoices/59/payload' -i -X GET \
    -H 'Accept: application/xml, application/json'

Example response

HTTP/1.1 200 OK
Content-Disposition: form-data; name="attachment"; filename="test-invoice.xml"
Content-Type: application/xml
Content-Length: 44
Accept-Ranges: bytes

[ Body containing the invoice XML document ]
To avoid an error response, the Accept header for this request must include the application/xml content type of the payload.

Download original invoice

Downloads a document that a given member invoice originated from, that is a content that was received by e-Invoice Connect from an external invoice operator or via a configured business integration of a sending member or via the invoice sending API.

GET /api/members/43/invoices/59/original HTTP/1.1
Accept: application/xml, application/json

Path parameters

Table 25. /members/{memberId}/invoices/{invoiceId}/original
Parameter Description

memberId

Unique member ID.

invoiceId

Invoice unique ID.

Query parameters

No parameters.

Request fields

No request body.

Response fields

Returns an original incoming document for an invoice, the 404 (Not Found) error code if not found, or the 204 (No Content) status code if the original file is still being processed and cannot be returned yet.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/invoices/59/original' -i -X GET \
    -H 'Accept: application/xml, application/json'

Example response

HTTP/1.1 200 OK
Content-Disposition: attachment;filename=invoice.xml
Content-Type: application/xml
Content-Length: 44
Accept-Ranges: bytes

[ Body containing the invoice XML document ]
To avoid an error response, the Accept header for this request must include the application/xml content type of the payload.

Update invoice status

Changes the invoice status.

To change the invoice status, send a PATCH request with a JSON document in the request body, containing the new status value set in the status property.

Find here the information about the basic invoice statuses. Find here the information about the business-level statuses, which can be set by or on behalf of the invoice recipient.

If the invoice is in the Pending status, you can accept the invoice content by changing status to Received.

If the invoice is in the Pending or Received status, you can reject the invoice content by changing status to Rejected along with setting an optional error message in the error JSON property. Rejecting an invoice may trigger an electronic notification containing the error message to be sent to the sending party or operator.

A request to change the invoice status to one of the business-level statuses can also include any number of arbitrary status properties defined as a collection of key-value pairs. These user-defined properties can be set using the statusFields property. If the invoice sender is part of a properly configured partner, they will receive the status change electronic notification along with the specified key-value properties.

Table 26. Allowed invoice status transitions
From To

Pending

Received, Queried, Invalidated, Verified, ConditionallyAccepted, Approved, Paid, Rejected

Received

Queried, Invalidated, Verified, ConditionallyAccepted, Approved, Paid, Rejected

Delivered

Queried, Invalidated, Verified, ConditionallyAccepted, Approved, Paid, Rejected

Queried

Invalidated, Verified, ConditionallyAccepted, Approved, Paid, Rejected

Invalidated

Verified, ConditionallyAccepted, Approved, Paid, Rejected

Verified

ConditionallyAccepted, Approved, Paid, Rejected

ConditionallyAccepted

Approved, Paid, Rejected

Approved

Paid

In many cases, the business-level status change will be accepted even if the requested status is not listed in the table above. For instance, a request to set the status to Approved can be sent for a Paid invoice. The system processes such requests by setting a timestamp property related to the requested status, as outlined in the table below. In this example, the invoice status will remain Paid, but the invoice’s approvedAt timestamp will be updated. The invoice sender may also be notified of the status change to Approved, along with any additional status fields set by or on behalf of the invoice recipient.

Table 27. Invoice status timestamps
Status Name

Delivered

deliveredAt

Queried

queriedAt

Invalidated

invalidatedAt

Verified

verifiedAt

ConditionallyAccepted

conditionallyAcceptedAt

Approved

approvedAt

Paid

paidAt

Rejected

rejectedAt

PATCH /api/members/43/invoices/59 HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 150

{
  "status" : "Paid",
  "statusFields" : {
    "items" : [
      { "name" : "paymentReference", "value" : "IVA-123" },
      { "name" : "paymentDate", "value" : "2025-12-22" }
    ]
  }
}

Path parameters

Table 28. /members/{memberId}/invoices/{invoiceId}
Parameter Description

memberId

Unique member ID.

invoiceId

Invoice unique ID.

Query parameters

No parameters.

Request fields

Path Type Description

status

String

New invoice status.

statusFields

Object

Arbitrary user-defined status properties.

statusFields.items[]

Array

Array of key-value pair objects.

statusFields.items[].name

String

Property name. A mandatory, non-blank, unique string, up to 255 characters in length.

statusFields.items[].value

String

Property value. An optional, non-blank string, up to 65535 characters in length.

Response fields

See the response field information here.

Invoice attachment endpoint

This endpoint is a collection resource that manages invoice attachments.

Get invoice attachments

Returns a list of invoice attachments.

GET /api/members/43/invoices/59/attachments HTTP/1.1

Path parameters

Table 29. /members/{memberId}/invoices/{invoiceId}/attachments
Parameter Description

memberId

Unique member ID.

invoiceId

Invoice unique ID.

Query parameters

No parameters.

Request fields

No request body.

Response fields

Path Type Description

count

Number

Actual size of content array (number of items).

items

Array

Array of the invoice attachment objects.

items[].id

Number

Attachment unique ID.

items[].fileName

String

Attachment file name.

items[].size

Number

Attachment file size.

items[].mimeType

String

Attachment content type.

items[].attachmentType

String

Attachment document type.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/invoices/59/attachments' -i -X GET

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 474

{
  "count" : 3,
  "items" : [ {
    "id" : 27,
    "fileName" : "attachment27.txt",
    "size" : 46,
    "mimeType" : "text/plain",
    "attachmentType" : "Regular"
  }, {
    "id" : 34,
    "fileName" : "attachment34.txt",
    "size" : 46,
    "mimeType" : "text/plain",
    "attachmentType" : "Regular"
  }, {
    "id" : 41,
    "fileName" : "attachment41.txt",
    "size" : 46,
    "mimeType" : "text/plain",
    "attachmentType" : "Regular"
  } ]
}

Get invoice attachment details

Returns detailed information about an invoice attachment.

GET /api/members/43/invoices/59/attachments/27 HTTP/1.1

Path parameters

Table 30. /members/{memberId}/invoices/{invoiceId}/attachments/{attachmentId}
Parameter Description

memberId

Unique member ID.

invoiceId

Invoice unique ID.

attachmentId

Invoice attachment unique ID.

Query parameters

No parameters.

Request fields

No request body.

Response fields

Path Type Description

id

Number

Attachment unique ID.

fileName

String

Attachment file name.

size

Number

Attachment file size.

mimeType

String

Attachment content type.

attachmentType

String

Attachment document type.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/invoices/59/attachments/27' -i -X GET

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 132

{
  "id" : 27,
  "fileName" : "attachment27.txt",
  "size" : 46,
  "mimeType" : "text/plain",
  "attachmentType" : "Regular"
}

Download invoice attachment

Downloads an invoice attachment.

GET /api/members/43/invoices/59/attachments/27/payload HTTP/1.1
Accept: */*, application/json

Path parameters

Table 31. /members/{memberId}/invoices/{invoiceId}/attachments/{attachmentId}/payload
Parameter Description

memberId

Unique member ID.

invoiceId

Invoice unique ID.

attachmentId

Invoice attachment unique ID.

Query parameters

No parameters.

Request fields

No request body.

Response fields

Returns the invoice attachment payload or the 404 (Not Found) error code if not found.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/invoices/59/attachments/27/payload' -i -X GET \
    -H 'Accept: */*, application/json'

Example response

HTTP/1.1 200 OK
Content-Disposition: attachment;filename=attachment27.txt
Content-Type: text/plain
Content-Length: 46
Accept-Ranges: bytes

[ Body containing the binary attachment file ]
To avoid an error response, the Accept header for this request must include the content type of the payload, which in this case may be literally any. Therefore, it is recommended to include */* wildcard types.

Invoice Sending

This third major part of the API is a core functionality that allows to send invoices with e-Invoice Connect.

Invoice-sending API is now available for all members with a paid subscription. For the integrated products this API may be used by the products with which Tungsten Automation has agreements in place. If you are interested in utilizing this API for your product, please visit our customer or partner portal, or contact your Tungsten Automation sales representative for further information.

To send invoices an integrated product should be associated with a member enabled to use the e-Invoice Connect API. The member must meet the following requirements to complete the setup for invoice sending:

  1. Member must be active for any type of submissions.

  2. To submit invoices as a supplier member must:

    • configure the restricted sendingEnabled property and set it to true

    • configure payment means to have at least one payment means

    • have the ZIP code configured in the the legal address

  3. To submit invoices for e-reporting member must:

    • be onboarded with clearance service provider

    • enable clearance workflow to submit invoices for e-reporting.

Once the requirements are met, the integrated product may send invoices on behalf of the member.

Invoice submission endpoint

This endpoint is a collection resource that is used for sending invoices and getting information about the status of sent invoices.

Submit invoice data for sending

Creates a new invoice to send on behalf of a member.

POST /api/members/43/invoices/submissions HTTP/1.1
Content-Type: application/xml
Accept: application/json
Content-Length: 44

[ Body containing the invoice XML document ]

Path parameters

Table 32. /members/{memberId}/invoices/submissions
Parameter Description

memberId

Unique member ID.

Query parameters

No parameters.

Request headers

The Content-Type mandatory header defines the type of data the service expects to receive in the request body.

These content types are supported:

Content type Description

application/xml

The request body must contain a valid XML document.

The used XML format must follow the e-Invoice Connect defined XML schema ESXML2.

The document must contain one invoice.

Request body

The body must contain data which type matches the value of the Content-Type request header.

The invoice to submit must meet these requirements:

  • Invoice intended for delivery to a recipient must specify information to identify a recipient.

  • Invoice intended for e-reporting must have an invoice type that describes document subject for reporting.

  • Invoice must specify information to identify the sending member, the same one which ID is set to the memberId path parameter.

  • Invoice intended for delivery to a recipient must be valid against the validation rules of the recipient.

Response fields

Path Type Description

id

String

Invoice submission ID.

log

Object

Invoice processing history.

log.count

Number

Number of returned records in the history.

log.items[]

Array

History records.

log.items[].dateTime

String

Event date and time.

log.items[].eventType

String

Event type.

log.items[].errorType

String

Error type.

log.items[].errorText

String

Error text.

invoiceErrors

Array

Array of error strings describing the issues that occurred with the invoice upon processing, if any.

invoiceSendStatus

String

Sending status.

invoiceSendStatusDescription

String

Sending status description.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/invoices/submissions' -i -X POST \
    -H 'Content-Type: application/xml' \
    -H 'Accept: application/json' \
    -d '[ Body containing the invoice XML document ]'

Example response

HTTP/1.1 202 Accepted
Content-Type: application/json
Content-Length: 344

{
  "id" : "ksajrcyheb84dcxpbukhzfjhmy",
  "log" : {
    "count" : 1,
    "items" : [ {
      "dateTime" : "2023-12-25T00:59:59.000+01:00",
      "eventType" : "FileReceived"
    } ]
  },
  "invoiceErrors" : [ ],
  "invoiceSendStatus" : "InboundProcessing",
  "invoiceSendStatusDescription" : "Invoice document is being imported."
}

Get sent invoice status

Returns detailed information about an invoice sent on behalf of a member.

GET /api/members/43/invoices/submissions/agfpt1a5bj8tdjezbzngx19zpe HTTP/1.1
Accept: application/json

Path parameters

Table 33. /members/{memberId}/invoices/submissions/{invoiceSid}
Parameter Description

memberId

Unique member ID.

invoiceSid

Invoice submission ID.

Query parameters

No parameters.

Request fields

No request body.

Response fields

Path Type Description

id

String

Invoice submission ID.

log

Object

Invoice processing history.

log.count

Number

Number of returned records in the history.

log.items[]

Array

History records.

log.items[].dateTime

String

Event date and time.

log.items[].eventType

String

Event type.

log.items[].errorType

String

Error type.

log.items[].errorText

String

Error text.

invoiceErrors

Array

Array of error strings describing the issues that occurred with the invoice upon processing, if any.

invoiceSendStatus

String

Sending status.

invoiceSendStatusDescription

String

Sending status description.

invoiceReceiveStatus

String

Receiving status.

invoiceReceiveStatusDescription

String

Receiving status description.

Property invoiceSendStatus supports the following values:

Status Description

InboundProcessing

Invoice is being imported.

Draft

Invoice is yet to be sent.

Queued

Invoice is queued for printing.

ExceedingLimit

Invoice cannot be sent because the sending limit is exceeded.

Sent

Invoice is successfully sent.

SentSelfBilling

Self-billing invoice is successfully sent.

SentToOperator

Invoice is forwarded to a receiving operator.

Failed

Invoice is failed due to an error.

Deleted

Invoice is deleted.

InClearance

Invoice is sent for clearance.

Cleared

Invoice is successfully cleared.

InReporting

Invoice is sent for reporting.

FailedReporting

Failed to report. Member configuration required.

Reported

Reported.

Property invoiceReceiveStatus supports the following values:

Status Description

Received

Invoice is successfully received by recipient.

Forwarded

Invoice is successfully received and forwarded to recipient via a configured business integration.

ForwardedToOperator

Invoice is forwarded to a receiving operator upon arrival, and a copy is expected to come back to finally be received by recipient.

FailedPending

Invoice has failed validation, but recipient is given a chance to correct/accept instead of rejecting.

FailedPendingManual

Invoice has failed validation, but recipient chose to manually handle it.

Failed

Invoice is failed due to an error.

FailedCorrected

Invoice is failed due to an error, but has been corrected by subsequent invoice from the same supplier and with the same invoice number.

Retrieved

Invoice is retrieved via an operator from a clearance service provider. Invoice is not processed or validated by the service and is only presented in read-only mode.

FailedRetrieved

Invoice is retrieved via an operator from a clearance service provider but failed due to either recipient’s misconfiguration or exceeding the receiving limit or other technical reason.

Deleted

Invoice is deleted.

InReporting

Invoice is sent for reporting.

FailedReporting

Failed to report. Member configuration required.

Reported

Reported.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/invoices/submissions/agfpt1a5bj8tdjezbzngx19zpe' -i -X GET \
    -H 'Accept: application/json'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 980

{
  "id" : "agfpt1a5bj8tdjezbzngx19zpe",
  "log" : {
    "count" : 6,
    "items" : [ {
      "dateTime" : "2023-12-25T00:59:59.000+01:00",
      "eventType" : "FileReceived"
    }, {
      "dateTime" : "2023-12-25T00:59:59.100+01:00",
      "eventType" : "ImportStarted"
    }, {
      "dateTime" : "2023-12-25T00:59:59.130+01:00",
      "eventType" : "QueuedToFormatTransform"
    }, {
      "dateTime" : "2023-12-25T00:59:59.350+01:00",
      "eventType" : "FormatTransformed"
    }, {
      "dateTime" : "2023-12-25T01:00:00.250+01:00",
      "eventType" : "ForwardedToSendWorkflow"
    }, {
      "dateTime" : "2023-12-25T01:00:01.550+01:00",
      "eventType" : "ImportCompleted"
    } ]
  },
  "invoiceErrors" : [ ],
  "invoiceSendStatus" : "Sent",
  "invoiceSendStatusDescription" : "Invoice is successfully sent.",
  "invoiceReceiveStatus" : "Received",
  "invoiceReceiveStatusDescription" : "Invoice is successfully received by recipient."
}

Submit test invoice data for sending

Please, note test API endpoint(s) currently support Polish clearance flows exclusively.

Creates a new test invoice to send on behalf of a member. Test invoices are processed through the test clearance workflow and are not included in regular invoice listings unless explicitly requested.

POST /api/members/43/test-invoices/submissions HTTP/1.1
Content-Type: application/xml
Accept: application/json
Content-Length: 44

[ Body containing the invoice XML document ]

Path parameters

Table 34. /members/{memberId}/test-invoices/submissions
Parameter Description

memberId

Unique member ID.

Query parameters

No parameters.

Request headers

The Content-Type mandatory header defines the type of data the service expects to receive in the request body.

These content types are supported:

Content type Description

application/xml

The request body must contain a valid XML document.

The used XML format must follow the e-Invoice Connect defined XML schema ESXML2.

The document must contain one invoice.

Request body

The body must contain data which type matches the value of the Content-Type request header.

The invoice to submit must meet these requirements:

  • Invoice intended for delivery to a recipient must specify information to identify a recipient.

  • Invoice intended for e-reporting must have an invoice type that describes document subject for reporting.

  • Invoice must specify information to identify the sending member, the same one which ID is set to the memberId path parameter.

  • Invoice intended for delivery to a recipient must be valid against the validation rules of the recipient.

Response fields

Path Type Description

id

String

Invoice submission ID.

log

Object

Invoice processing history.

log.count

Number

Number of returned records in the history.

log.items[]

Array

History records.

log.items[].dateTime

String

Event date and time.

log.items[].eventType

String

Event type.

log.items[].errorType

String

Error type.

log.items[].errorText

String

Error text.

invoiceErrors

Array

Array of error strings describing the issues that occurred with the invoice upon processing, if any.

invoiceSendStatus

String

Sending status.

invoiceSendStatusDescription

String

Sending status description.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/test-invoices/submissions' -i -X POST \
    -H 'Content-Type: application/xml' \
    -H 'Accept: application/json' \
    -d '[ Body containing the invoice XML document ]'

Example response

HTTP/1.1 202 Accepted
Content-Type: application/json
Content-Length: 344

{
  "id" : "99ydi4xczj8xjdw1qd8zfcxqbe",
  "log" : {
    "count" : 1,
    "items" : [ {
      "dateTime" : "2023-12-25T00:59:59.000+01:00",
      "eventType" : "FileReceived"
    } ]
  },
  "invoiceErrors" : [ ],
  "invoiceSendStatus" : "InboundProcessing",
  "invoiceSendStatusDescription" : "Invoice document is being imported."
}

Get sent test invoice status

Please, note test API endpoint(s) currently support Polish clearance flows exclusively.

Returns detailed information about a test invoice sent on behalf of a member.

GET /api/members/43/test-invoices/submissions/nyjb6tqzwtnfjgfmwdt4bw4tsh HTTP/1.1
Accept: application/json

Path parameters

Table 35. /members/{memberId}/test-invoices/submissions/{invoiceSid}
Parameter Description

memberId

Unique member ID.

invoiceSid

Invoice submission ID.

Query parameters

No parameters.

Request fields

No request body.

Response fields

Path Type Description

id

String

Invoice submission ID.

log

Object

Invoice processing history.

log.count

Number

Number of returned records in the history.

log.items[]

Array

History records.

log.items[].dateTime

String

Event date and time.

log.items[].eventType

String

Event type.

log.items[].errorType

String

Error type.

log.items[].errorText

String

Error text.

invoiceErrors

Array

Array of error strings describing the issues that occurred with the invoice upon processing, if any.

invoiceSendStatus

String

Sending status.

invoiceSendStatusDescription

String

Sending status description.

invoiceReceiveStatus

String

Receiving status.

invoiceReceiveStatusDescription

String

Receiving status description.

Property invoiceSendStatus supports the following values:

Status Description

InboundProcessing

Invoice is being imported.

Draft

Invoice is yet to be sent.

Queued

Invoice is queued for printing.

ExceedingLimit

Invoice cannot be sent because the sending limit is exceeded.

Sent

Invoice is successfully sent.

SentSelfBilling

Self-billing invoice is successfully sent.

SentToOperator

Invoice is forwarded to a receiving operator.

Failed

Invoice is failed due to an error.

Deleted

Invoice is deleted.

InClearance

Invoice is sent for clearance.

Cleared

Invoice is successfully cleared.

InReporting

Invoice is sent for reporting.

FailedReporting

Failed to report. Member configuration required.

Reported

Reported.

Property invoiceReceiveStatus supports the following values:

Status Description

Received

Invoice is successfully received by recipient.

Forwarded

Invoice is successfully received and forwarded to recipient via a configured business integration.

ForwardedToOperator

Invoice is forwarded to a receiving operator upon arrival, and a copy is expected to come back to finally be received by recipient.

FailedPending

Invoice has failed validation, but recipient is given a chance to correct/accept instead of rejecting.

FailedPendingManual

Invoice has failed validation, but recipient chose to manually handle it.

Failed

Invoice is failed due to an error.

FailedCorrected

Invoice is failed due to an error, but has been corrected by subsequent invoice from the same supplier and with the same invoice number.

Retrieved

Invoice is retrieved via an operator from a clearance service provider. Invoice is not processed or validated by the service and is only presented in read-only mode.

FailedRetrieved

Invoice is retrieved via an operator from a clearance service provider but failed due to either recipient’s misconfiguration or exceeding the receiving limit or other technical reason.

Deleted

Invoice is deleted.

InReporting

Invoice is sent for reporting.

FailedReporting

Failed to report. Member configuration required.

Reported

Reported.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/test-invoices/submissions/nyjb6tqzwtnfjgfmwdt4bw4tsh' -i -X GET \
    -H 'Accept: application/json'

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 980

{
  "id" : "nyjb6tqzwtnfjgfmwdt4bw4tsh",
  "log" : {
    "count" : 6,
    "items" : [ {
      "dateTime" : "2023-12-25T00:59:59.000+01:00",
      "eventType" : "FileReceived"
    }, {
      "dateTime" : "2023-12-25T00:59:59.100+01:00",
      "eventType" : "ImportStarted"
    }, {
      "dateTime" : "2023-12-25T00:59:59.130+01:00",
      "eventType" : "QueuedToFormatTransform"
    }, {
      "dateTime" : "2023-12-25T00:59:59.350+01:00",
      "eventType" : "FormatTransformed"
    }, {
      "dateTime" : "2023-12-25T01:00:00.250+01:00",
      "eventType" : "ForwardedToSendWorkflow"
    }, {
      "dateTime" : "2023-12-25T01:00:01.550+01:00",
      "eventType" : "ImportCompleted"
    } ]
  },
  "invoiceErrors" : [ ],
  "invoiceSendStatus" : "Sent",
  "invoiceSendStatusDescription" : "Invoice is successfully sent.",
  "invoiceReceiveStatus" : "Received",
  "invoiceReceiveStatusDescription" : "Invoice is successfully received by recipient."
}

Recipients endpoint

This endpoint returns a collection of invoice recipients that can be used as the submitted invoice receivers.

Searching recipients for invoice

Searches for invoice recipients.

GET /api/recipients?name=recipient-name&country=SE&city=Stockholm&id=123456-6789&registry=1 HTTP/1.1

Path parameters

No parameters.

Query parameters

Parameter Type Description

name

String

Recipient name to search for. Only recipients with the exactly matching name (ignoring the case) will be returned if the city parameter is not specified for the request. If the city parameter is specified then the wildcard symbols can be used in the name parameter.

Either name or id parameter must be specified to make the request succeed. If the request specifies id then the name parameter is ignored.

country

String

Recipient country. The two-letter country code as defined by ISO 3166-1. It may be used as an additional recipient filter when the name parameter is specified.

Ignored if name is not specified.

city

String

Recipient city. It may be used as an additional recipient filter when the name parameter is specified.

The name parameter may have the wildcard when the city parameter is specified to search for recipients by partial name.

Ignored if name is not specified.

id

String

Party identifier of the recipient.

Either name or id parameter must be specified to make the request succeed. If the request specifies id then the name parameter is ignored.

registry

Boolean

Flag indicating that API should search for recipients in the e-Invoice Connect registry.

If neither registry nor 'peppol' parameter is specified then only e-Invoice Connect registry is searched.

If both registry and peppol parameters are specified then the Peppol registry is searched only if nothing is found in the e-Invoice Connect registry.

peppol

Boolean

Flag indicating that API should search for recipient in the Peppol registry.

If both registry and peppol parameters are specified then the Peppol registry is searched only if nothing is found in the e-Invoice Connect registry.

Request fields

No request body.

Response fields

Path Type Description

items

Array

Array of recipient objects.

count

Number

Number of returned recipients.

items[].partyIdentifiers

Object

An object that contains a collection of recipient’s party identifiers.

items[].partyIdentifiers.count

Number

Number of recipient’s party identifiers in the collection.

items[].partyIdentifiers.items

Array

Collection of recipient’s party identifiers

items[].partyIdentifiers.items[].countryId

String

Country ID.

items[].partyIdentifiers.items[].type

String

Identifier type.

items[].partyIdentifiers.items[].identifier

String

Identifier value.

items[].legalName

String

Recipient legal name.

items[].recipientName

String

Recipient address name.

items[].countryId

String

Country ID.

items[].countrySubentity

String

Country subentity.

items[].zipCode

String

Zip code.

items[].city

String

City.

items[].streetAddress

String

Street address.

items[].partyReference

String

Address party reference.

items[].addressLine

String

Address line.

items[].addressPartyIdentifier

Object

Address party identifier.

items[].addressPartyIdentifier.countryId

String

Country ID.

items[].addressPartyIdentifier.type

String

Identifier type.

items[].addressPartyIdentifier.identifier

String

Address party identifier value.

Example request

$ curl 'https://web.invoiceportal.net/api/recipients?name=recipient-name&country=SE&city=Stockholm&id=123456-6789&registry=1' -i -X GET

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 364

{
  "count" : 1,
  "items" : [ {
    "partyIdentifiers" : {
      "count" : 1,
      "items" : [ {
        "countryId" : "SE",
        "type" : "SE:ORGNR",
        "identifier" : "123456-6789"
      } ]
    },
    "legalName" : "Construction Ltd.",
    "recipientName" : "Construction Ltd.",
    "countryId" : "SE",
    "city" : "Stockholm"
  } ]
}

Invoice Statistics

Use this API to obtain a report on member sending/receiving activity through the invoice sending/receiving API. Report generation is very time-consuming, therefore we designed this process to be asynchronous.

With this API you can:

  • Submit a report request and provide the filtering criteria.

  • Monitor the status of the request and obtain the requested invoice statistics report when it is completed.

Invoice statistics endpoint

This endpoint is a collection resource to request the invoice statistics and obtain the invoice statistics result.

Request API invoice statistics report

Use this API to request the API invoice statistics report. It returns the request ID and status.

POST /api/reports/invoicestats?country=SE&memberId=1&dateFrom=01-11-24&dateTo=30-11-24 HTTP/1.1
Content-Type: application/x-www-form-urlencoded

country=SE&memberId=1&dateFrom=01-11-24&dateTo=30-11-24

Path parameters

No parameters.

Query parameters

Parameter Type Description

country

String

Country code to filter in the member for invoice statistics.

memberId

Number

Unique member ID.

dateFrom

String

First day of the date range to include statistics for.

dateTo

String

Last day of the date range to include statistics for.

Request fields

No request body.

Response fields

Path Type Description

requestId

String

Request ID to monitor the request status and get statistic report

requestStatus

String

Request status.

Example request

$ curl 'https://web.invoiceportal.net/api/reports/invoicestats?country=SE&memberId=1&dateFrom=01-11-24&dateTo=30-11-24' -i -X POST

Example response

HTTP/1.1 202 Accepted
Content-Type: application/json
Content-Length: 66

{
  "requestId" : "request-id",
  "requestStatus" : "Pending"
}

Get API invoice statistics result

Use this API to get the API invoice statistics report. It returns the status and the API invoice statistics report if status is Completed.

GET /api/reports/invoicestats/request-id HTTP/1.1

Path parameters

Table 36. /reports/invoicestats/{requestId}
Parameter Description

requestId

Unique request ID.

Query parameters

No parameters.

Request fields

No request body.

Response fields

Path Type Description

requestId

String

Request ID to monitor the request status and get statistic report

requestStatus

String

Request status.

statistic

Object

Invoice statistics report.

statistic.count

Number

Number of returned records in the statistics report.

statistic.items[]

Array

Invoice statistics report records.

statistic.items[].memberId

Number

Member ID.

statistic.items[].numberOfSubmittedInvoices

Number

Number of invoices submitted by member via API.

statistic.items[].numberOfDownloadedInvoices

Number

Number of invoices downloaded by member via API.

Example request

$ curl 'https://web.invoiceportal.net/api/reports/invoicestats/request-id' -i -X GET

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 360

{
  "requestId" : "request-id",
  "requestStatus" : "Completed",
  "statistic" : {
    "count" : 2,
    "items" : [ {
      "memberId" : 43,
      "numberOfSubmittedInvoices" : 22,
      "numberOfDownloadedInvoices" : 0
    }, {
      "memberId" : 44,
      "numberOfSubmittedInvoices" : 10,
      "numberOfDownloadedInvoices" : 30
    } ]
  }
}

Vendor Onboarding

API that serves the functionality of

  • Signaling to integrated service that supplier data is needed for a specific member

  • Uploading supplier data into e-Invoice Connect for that member

With this, integrated service can poll the signaling endpoint to know a data upload is requested and then upload the data per request.

Integrated service request endpoint

e-Invoice Connect uses it to publish a request to external integrated service that polls this endpoint to discover new pending entries.

List service requests

GET /api/requests HTTP/1.1

Path parameters

No parameters.

Query parameters

Parameter Type Description

q

Object

Optional extended query for integrated service request lookup. The parameters that can be specified for the lookup are:

1. status - request status

2. type - request type (only MemberSuppliersUpload supported)

3. member.id - member ID

4. user.id - user ID

Supports standard paging query parameters.

Request fields

No request body.

Response fields

Path Type Description

page

Number

Page number.

count

Number

Actual size of content array (number of items).

total

Number

Total number of existing items.

pages

Number

Total number of pages with current page size.

items

Array

Array of requests.

items[].id

Number

Request ID, a unique positive integer.

items[].type

String

Request type: MemberSuppliersUpload.

items[].status

String

Request status.

items[].member.id

Number

Request parameterization with info about a member.

items[].user.id

Number

Request parameterization with info about a user.

items[].upload.id

Number

Processing job ID created to process uploaded data.

items[].upload.status

String

Processing job status.

items[].createdAt

String

Request creation date/time.

items[].changedAt

String

Last modification date/time.

Example request

$ curl 'https://web.invoiceportal.net/api/requests' -i -X GET

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 771

{
  "page" : 1,
  "count" : 2,
  "total" : 2,
  "pages" : 1,
  "items" : [ {
    "id" : 43,
    "type" : "MemberSuppliersUpload",
    "status" : "Active",
    "member" : {
      "id" : 129
    },
    "user" : {
      "id" : 132
    },
    "upload" : {
      "id" : 135,
      "status" : "Accepted"
    },
    "createdAt" : "2026-04-01T12:30:16+02:00",
    "changedAt" : "2026-04-01T12:30:16+02:00"
  }, {
    "id" : 44,
    "type" : "MemberSuppliersUpload",
    "status" : "Active",
    "member" : {
      "id" : 132
    },
    "user" : {
      "id" : 135
    },
    "upload" : {
      "id" : 138,
      "status" : "Accepted"
    },
    "createdAt" : "2026-04-01T12:30:16+02:00",
    "changedAt" : "2026-04-01T12:30:16+02:00"
  } ]
}

Member supplier upload endpoint

This endpoint is a collection resource that manages uploads.

Create a new upload

The integrated service uses the endpoint to upload member information about its suppliers in response to the specific service request. e-Invoice Connect handles upload request asynchronously creating a job object that could be polled using suppliers upload endpoint.

POST /api/members/43/suppliers/uploads HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 1346

{
  "request" : 966,
  "multipart" : false,
  "parties" : {
    "count" : 1,
    "items" : [ {
      "address" : {
        "zipCode" : "99943",
        "coAddress" : "coAddress 43",
        "countrySubentity" : "Country subentity 43",
        "city" : "City 43",
        "streetAddress" : "Street 43",
        "name" : "Test Member 43",
        "addressLine" : "Address line 43",
        "partysReference" : "Party reference 43",
        "countryId" : "SE"
      },
      "sendBWPDF" : false,
      "identifiers" : [ {
        "identifier" : "453399-4408",
        "detailedType" : "SE:ORGNR",
        "type" : "SE:ORGNR",
        "countryId" : "SE"
      } ],
      "businessSystem" : "SAP",
      "locale" : "sv",
      "actionComment" : "memberFull",
      "paymentMeans" : [ {
        "swiftCode" : "ESSESEGCXXX",
        "bankName" : "Nordea",
        "clearingNo" : "4892",
        "type" : "Bank",
        "account" : "7368391178"
      } ],
      "noInvitation" : false,
      "contact" : {
        "emailAddress" : "me@example.com",
        "phone" : "1234567890",
        "contactName" : "John Doe"
      },
      "invoicesPerYear" : 2500,
      "comment" : "1-Full",
      "deadline" : "2021-05-05",
      "membersIdForParty" : "1-Full 43",
      "actionDate" : "2021-05-22"
    } ]
  }
}

Path parameters

Table 37. /members/{memberId}/suppliers/uploads
Parameter Description

memberId

Unique member ID.

Query parameters

No parameters.

Request fields

Path Type Description

request

Number

Optional field containing Integrated service request ID.

multipart

Boolean

Optional flag that indicates whether party data is sent in multiple parts.

parties

Object

Object that contains member parties.

parties.count

Number

Actual size of parties array (number of items).

parties.items[]

Array

Collection of member party objects.

parties.items[].address

Object

Object that contains address.

parties.items[].address.zipCode

String

Zip code.

parties.items[].address.coAddress

String

Co-address.

parties.items[].address.countrySubentity

String

Country subentity.

parties.items[].address.city

String

City.

parties.items[].address.streetAddress

String

Street address.

parties.items[].address.name

String

Address name.

parties.items[].address.addressLine

String

Address line.

parties.items[].address.partysReference

String

Party’s reference.

parties.items[].address.countryId

String

Address country ID.

parties.items[].sendBWPDF

Boolean

Flag that indicates that this customer will receive invoice PDF in B&W.

parties.items[].identifiers

Array

Object that contains a collection of party identifiers.

parties.items[].identifiers[].identifier

String

Party identifier.

parties.items[].identifiers[].countryId

String

Party identifier country.

parties.items[].identifiers[].type

String

Party identifier type.

parties.items[].identifiers[].detailedType

String

Party identifier detailed type.

parties.items[].identifiers[].countryId

String

Party identifier country ID.

parties.items[].businessSystem

String

Information about supplier´s current business system.

parties.items[].locale

String

Party record locale for invitation. 2 capital letter ISO 639-1 code.

parties.items[].actionComment

String

Comment on next step of action to be taken on the supplier.

parties.items[].paymentMeans

Array

Object that contains a collection of payment means.

parties.items[].paymentMeans[].swiftCode

String

Bank Identifier Code (same as SWIFT-address). For Sweden 8 capital letters.

parties.items[].paymentMeans[].bankName

String

The name of the financial institution responsible for the account.

parties.items[].paymentMeans[].clearingNo

String

4-digit bank identification number.

parties.items[].paymentMeans[].type

String

Payment means type: Bank, IBAN, DanishGiro, DanishJointPaymentForm, SwedishBankGiro, SwedishPlusGiro.

parties.items[].paymentMeans[].account

String

Bank account .

parties.items[].noInvitation

Boolean

Flag that indicates whether it is possible to send invitations to this party.

parties.items[].contact

Object

Object that contains contact information.

parties.items[].contact.emailAddress

String

Contact e-mail address.

parties.items[].contact.phone

String

Contact phone number.

parties.items[].contact.contactName

String

Contact name.

parties.items[].invoicesPerYear

String

Number of invoices sent per year.

parties.items[].comment

String

Comment text.

parties.items[].deadline

String

Deadline for sending paper invoices.

parties.items[].membersIdForParty

String

The record’s ID that can be used to match records from multiple uploads.

parties.items[].actionDate

String

Date when the next action should be taken on the supplier.

Response fields

Path Type Description

id

Number

Party upload unique ID.

status

String

Upload job status.

multipart

Boolean

Flag indicating whether party data is sent in multiple parts.

createdAt

Number

Upload creation date/time.

changedAt

String

Last modification date/time.

request.id

String

Integrated service request ID. This value is returned only when an end-user initiates the upload in TeC UI, after which e‑Invoice Connect publishes a request to the external integrated service.

parts

Object

Object that contains a collection of upload parts.

parts.count

Number

Number of upload parts in the collection.

parts.items

Array

Array of upload parts.

parts.items[].id

Number

Upload part unique ID.

parts.items[].createdAt

String

Date and time of the upload part creation.

parts.items[].last

Boolean

Flag that indicates whether the upload part finishes the multipart upload.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/suppliers/uploads' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
  "request" : 966,
  "multipart" : false,
  "parties" : {
    "count" : 1,
    "items" : [ {
      "address" : {
        "zipCode" : "99943",
        "coAddress" : "coAddress 43",
        "countrySubentity" : "Country subentity 43",
        "city" : "City 43",
        "streetAddress" : "Street 43",
        "name" : "Test Member 43",
        "addressLine" : "Address line 43",
        "partysReference" : "Party reference 43",
        "countryId" : "SE"
      },
      "sendBWPDF" : false,
      "identifiers" : [ {
        "identifier" : "453399-4408",
        "detailedType" : "SE:ORGNR",
        "type" : "SE:ORGNR",
        "countryId" : "SE"
      } ],
      "businessSystem" : "SAP",
      "locale" : "sv",
      "actionComment" : "memberFull",
      "paymentMeans" : [ {
        "swiftCode" : "ESSESEGCXXX",
        "bankName" : "Nordea",
        "clearingNo" : "4892",
        "type" : "Bank",
        "account" : "7368391178"
      } ],
      "noInvitation" : false,
      "contact" : {
        "emailAddress" : "me@example.com",
        "phone" : "1234567890",
        "contactName" : "John Doe"
      },
      "invoicesPerYear" : 2500,
      "comment" : "1-Full",
      "deadline" : "2021-05-05",
      "membersIdForParty" : "1-Full 43",
      "actionDate" : "2021-05-22"
    } ]
  }
}'

Example response

HTTP/1.1 202 Accepted
Content-Type: application/json
Content-Length: 357

{
  "id" : 135,
  "multipart" : false,
  "status" : "Accepted",
  "createdAt" : "2026-04-01T12:31:42+02:00",
  "changedAt" : "2026-04-01T12:31:42+02:00",
  "parts" : {
    "count" : 1,
    "items" : [ {
      "id" : 1001,
      "createdAt" : "2026-04-01T12:31:42+02:00",
      "last" : true
    } ]
  },
  "request" : {
    "id" : 966
  }
}

Create a multipart upload

If the volume of information about suppliers is large it is recommended splitting and sending it in multiple parts.

The multipart property in the upload request body set to true enables the mode where data can be uploaded in more than one part. In this mode the upload is created and remains with the Awaiting status until all multipart data has arrived. If all parts come valid and in a timely manner, the upload changes its status to Accepted. Other scenarios can result in that the upload ends up with the Failed or Expired statuses.

In either of the upload modes the information about suppliers that comes with the upload creation request becomes the first part of the upload. In the multipart upload mode sending more parts is allowed and the additional parts are sent using the endpoint for multipart uploading.

Example request

POST /api/members/43/suppliers/uploads HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 3375643

{
  "request" : 5787,
  "multipart" : true,
  "parties" : {
    "count" : 10000,
    "items" : [
      ...
    ]
  }
}

Example response

HTTP/1.1 202 Accepted
Content-Type: application/json
Content-Length: 398

{
  "id" : 239,
  "multipart" : true,
  "status" : "Awaiting",
  "createdAt" : "2024-04-26T18:00:55+02:00",
  "changedAt" : "2024-04-26T18:00:55+02:00",
  "parts" : {
    "count" : 1,
    "items" : [ {
      "id" : 4200211,
      "createdAt" : "2024-04-26T18:00:55+02:00",
      "last" : false
    } ]
  },
  "request" : {
    "id" : 5787
  }
}

Get upload details

Returns supplier upload details.

The endpoint may be polled to track the status of processing the uploaded data until completed or failed.

GET /api/members/43/suppliers/uploads/135 HTTP/1.1

Path parameters

Table 38. /members/{memberId}/suppliers/uploads/{uploadId}
Parameter Description

memberId

Unique member ID.

uploadId

Unique party upload ID.

Query parameters

No parameters.

Request fields

No request body.

Response fields

Path Type Description

id

Number

Party upload unique ID.

status

String

Upload job status.

multipart

Boolean

Flag indicating whether party data is sent in multiple parts.

createdAt

Number

Upload creation date/time.

changedAt

String

Last modification date/time.

request.id

String

Integrated service request ID. This value is returned only when an end-user initiates the upload in TeC UI, after which e‑Invoice Connect publishes a request to the external integrated service.

parts

Object

Object that contains a collection of upload parts.

parts.count

Number

Number of upload parts in the collection.

parts.items

Array

Array of upload parts.

parts.items[].id

Number

Upload part unique ID.

parts.items[].createdAt

String

Date and time of the upload part creation.

parts.items[].last

Boolean

Flag that indicates whether the upload part finishes the multipart upload.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/suppliers/uploads/135' -i -X GET

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 356

{
  "id" : 135,
  "multipart" : false,
  "status" : "Accepted",
  "createdAt" : "2026-04-01T12:30:32+02:00",
  "changedAt" : "2026-04-01T12:30:32+02:00",
  "parts" : {
    "count" : 1,
    "items" : [ {
      "id" : 1001,
      "createdAt" : "2026-04-01T12:30:32+02:00",
      "last" : true
    } ]
  },
  "request" : {
    "id" : 75
  }
}

Member supplier multipart upload endpoint

This endpoint is a collection resource that manages upload parts.

Create a new upload part

The integrated service uses the endpoint to upload additional parts of member information about its suppliers. e-Invoice Connect appends the posted information to an existing multipart upload in the Awaiting state. The property last in the request body set to true works for indicating that the multipart upload is finished. The parts must be sent in a determined sequence. Each subsequent part must be sent after receiving a response to the previous one. When the multipart upload is finished, the upload resource changes its status to Accepted and the upload is queued for processing.

POST /api/members/43/suppliers/uploads/239/parts HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 732092

{
  "last" : false,
  "parties" : {
    "count" : 10000,
    "items" : [
      ...
    ]
  }
}

Path parameters

Table 39. /members/{memberId}/suppliers/uploads/{uploadId}/parts
Parameter Description

memberId

Unique member ID.

uploadId

Unique party upload ID.

Query parameters

No parameters.

Request fields

Path Type Description

last

Boolean

Flag that indicates whether this part finishes multipart upload.

parties

Object

Object that contains member parties.

parties.count

Number

Actual size of parties array (number of items).

parties.items[]

Array

Collection of member party objects. The properties of the objects are the same as in the case of single-part upload.

Response fields

Path Type Description

id

Number

Upload part unique ID.

createdAt

Number

Upload part creation date/time.

last

Boolean

Flag that indicates whether this part finishes the upload.

Example response

HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 89

{
  "id" : 253099278,
  "createdAt" : "2024-04-27T14:47:40+02:00",
  "last" : false
}

List upload parts

Returns a list of parts of a multipart upload.

GET /api/members/43/suppliers/uploads/239/parts HTTP/1.1

Path parameters

Table 40. /members/{memberId}/suppliers/uploads/{uploadId}/parts
Parameter Description

memberId

Unique member ID.

uploadId

Unique party upload ID.

Query parameters

No parameters.

Request fields

No request body.

Response fields

Path Type Description

count

Number

Actual size of content array (number of items).

items

Array

Array of upload part objects.

items[].id

Number

Upload part unique ID.

items[].createdAt

String

Upload part creation date/time.

items[].last

Boolean

Flag that indicates whether this part finishes the upload.

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 180

{
  "count" : 2,
  "items" : [{
    "id" : 253099278,
    "createdAt" : "2024-04-27T14:47:40+02:00",
    "last" : false
  }, {
    "id" : 253099287,
    "createdAt" : "2024-04-27T14:47:44+02:00",
    "last" : true
  }]
}

Get upload part details

Returns detailed information about a part of a multipart upload.

GET /api/members/43/suppliers/uploads/239/parts/253099287 HTTP/1.1

Path parameters

Table 41. /members/{memberId}/suppliers/uploads/{uploadId}/parts/{partId}
Parameter Description

memberId

Unique member ID.

uploadId

Unique party upload ID.

partId

Unique party upload part ID.

Query parameters

No parameters.

Request fields

No request body.

Response fields

Path Type Description

id

Number

Upload part unique ID.

createdAt

String

Upload part creation date/time.

last

Boolean

Flag that indicates whether this part finishes the upload.

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 92

{
  "id" : 253099287,
  "createdAt" : "2024-04-27T14:47:44+02:00",
  "last" : true
}

Member Clearance and Onboarding settings

API that serves the functionality of

  • Management of Clearance service usage for a specific member (switching on and off the subcription)

  • Requesting the integrated Clearance Service provider for the enablement of clearance or/and retrieval services

  • Get request feedback from the integrated Clearance Service provider

With this, a customer service provider can be created, updated and disabled for a specific member. Meanwhile subscription on the service can be switched off/on independently. Member’s country must support clearance workflow.

DEPRECATED API

This API is deprecated and will be removed on February 25, 2026.

Please migrate to the new /services endpoint for extendable service management.

Clearance subscription

Clearance service subscription can be switched on/off on e-Invoice Connect side. Enabling the clearance service subscription will direct the invoice flow to the clearance procedure.

Subscribe or unsubscribe for Clearance

To enable clearance a member’s settings must meet the following conditions:

  • The member must be subscribed to one of the paid service levels.

  • There should exist clearance operator for member’s country.

To configure clearance settings, please refer to the Create new member and Update member sections of the documentation, and use the clearanceWorkflowEnabled property.

Onboard member with Clearance service provider

Send a request to the integrated Clearance Service provider to enable Clearance and/or Retrieval service(s) and track the request status. Customer Token must be sent in case if member country’s clearance provider requires it. Operations for enabling and disabling Clearance and Retrieval services must be processed in separate requests.

Submit onboarding request for a member

This endpoint is deprecated. Use the new /services endpoint instead.

Sunset date: February 25, 2026

POST /api/members/43/onboarding HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 50

{
  "retrieval" : false,
  "clearance" : true
}

Path parameters

Table 42. /members/{memberId}/onboarding
Parameter Description

memberId

Unique member ID.

Query parameters

No parameters.

Request fields

Path Type Description

clearance

Boolean

Clearance on/off setting.

retrieval

Boolean

Retrieval on/off setting.

customerToken

String

Optional field to be used for members which country’s clearance provider requires Customer Token.

Response fields

Path Type Description

requestId

String

Clearance service provider request ID.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/onboarding' -i -X POST \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -d '{
  "retrieval" : false,
  "clearance" : true
}'

Example response

HTTP/1.1 201 Created
Warning: 299 - "Deprecated API: use /services for extendable service management"
Sunset: Fri, 25 Feb 2026 00:00:00 GMT
Link: <https://invoiceportal.net/rest/docs>
Content-Type: application/json
Content-Length: 60

{
  "requestId" : "11111111-1111-1111-1111-111111111111"
}

Get information about API request to Clearance service provider

This endpoint is deprecated. Use the new /services endpoint instead.

Sunset date: February 25, 2026

GET /api/members/43/onboarding/11111111-1111-1111-1111-111111111111 HTTP/1.1

Path parameters

Table 43. /members/{memberId}/onboarding/{requestId}
Parameter Description

memberId

Unique member ID.

requestId

Unique API request ID from Clearance service provider.

Query parameters

No parameters.

Request fields

No request body.

Response fields

Path Type Description

requestId

String

API request ID from Clearance service provider.

requestStatus

String

API request status from Clearance service provider.

requestStatusTitle

String

Description of an API request status from Clearance service provider.

operation

String

API operation type from Clearance service provider.

errors

Object

Object that contains API request errors from Clearance service provider if any.

errors.count

Number

Size of errors array.

errors.items[]

Array

Collection of errors.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/onboarding/11111111-1111-1111-1111-111111111111' -i -X GET

Example response

HTTP/1.1 200 OK
Warning: 299 - "Deprecated API: use /services for extendable service management"
Sunset: Fri, 25 Feb 2026 00:00:00 GMT
Link: <https://invoiceportal.net/rest/docs>
Content-Type: application/json
Content-Length: 273

{
  "requestId" : "11111111-1111-1111-1111-111111111111",
  "requestStatus" : "COMPLETED_SUCCEEDED",
  "requestStatusTitle" : "Your request has been successfully processed",
  "operation" : "CREATE_CUSTOMER",
  "errors" : {
    "count" : 0,
    "items" : [ ]
  }
}

Update Member Services

Submits a request to enable, disable, or configure external services for a member. This endpoint provides flexible service management with support for multiple service types and environment-specific configurations.

This method supersedes the deprecated onboardMemberWithClearanceServiceProvider endpoint and provides enhanced control over service enablement.

Path parameters

Table 44. /members/{memberId}/services
Parameter Description

memberId

Unique member ID.

Query parameters

No parameters.

Service Types

The following service types are supported:

Service ID Description Configurable Environments

clearance

Invoice clearance service

Yes

live, test

retrieval

Invoice retrieval service

Yes

live, test

full-buyer-mode

Full buyer mode service

No

live only

Configuration

Both clearance and retrieval services support configuration. When enabling these services for Poland, the customerToken must be provided:

{
  "update": [
    {
      "serviceId": "clearance",
      "environment": "live",
      "enabled": true,
      "config": {
        "customerToken": "authorization-token-from-government"
      }
    }
  ]
}

Business Rules

  • One request can update services in either live or test environment, not both

  • One request can update either CTC services (clearance, retrieval) or non-CTC services (full-buyer-mode), not both

  • A request can either enable or disable services, not both

  • Only one service can be disabled per request

  • Only CTC services can be disabled

  • Only CTC services (clearance, retrieval) can be configured

  • When both clearance and retrieval are in the same request, only one configuration should be provided, and it will apply to both services

Response Status Codes

Status Code Description

202 Accepted

Request successfully submitted for asynchronous processing

204 No Content

No changes needed - requested state matches current state

400 Bad Request

Validation error or business rule violation

409 Conflict

Another service update request is already being processed for this member

Request Body Example

{
  "update": {
    "count": 2,
    "items": [
      {
        "serviceId": "clearance",
        "environment": "live",
        "enabled": true,
        "config": {
          "customerToken": "some-token"
        }
      },
      {
        "serviceId": "retrieval",
        "environment": "live",
        "enabled": true
      }
    ]
  }
}

Response Example

{
  "operationId": "11111111-1111-1111-1111-111111111111"
}

Get Service Request Status

Retrieves detailed status information about a service configuration operation request submitted to the integrated service provider. This endpoint provides comprehensive information about the requested services, their environment-specific configurations, operation type, processing status, and any errors that occurred during execution.

This method is the preferred way to track service operation status and replaces the deprecated getOnboardingRequestStatus method. It returns structured information about clearance, retrieval, and full-buyer-mode service configurations.

GET /api/members/43/services/operations/11111111-1111-1111-1111-111111111111 HTTP/1.1

Path parameters

Table 45. /members/{memberId}/services/operations/{operationId}
Parameter Description

memberId

Unique member ID.

operationId

Service operation unique ID.

Query parameters

No parameters.

Request fields

No request body.

Response fields

Path Type Description

operationId

String

Unique operation request ID.

services

Object

Object that contains service configurations.

services.count

Number

Size of service array.

services.items

Array

Collection of requested services.

services.items[].serviceId

String

Service identifier: clearance, retrieval, full-buyer-mode.

services.items[].live

Object

Live environment configuration.

services.items[].live.enabled

Boolean

Whether service is enabled in live environment.

services.items[].test

Object

Test environment configuration.

services.items[].test.enabled

Boolean

Whether service is enabled in test environment.

op

String

Operation type: add, update, remove

status

String

Request status: pending, completed, failed

submittedAt

String

Submission timestamp.

completedAt

String

Completion timestamp.

errors

Object

Object that contains error objects.

errors.count

Number

Size of error array.

errors.items

Array

Array of error objects.

errors.items[].message

String

Error message.

Property op describes the operation type and supports the following values:

Value Description

add

Initial enablement of services.

update

Update or enablement of additional services.

remove

Disabling of services.

Property status describes the processing status and supports the following values:

Value Description

pending

The request is still being processed.

completed

The request has been successfully completed.

failed

The request processing has failed. Check the errors array for details.

Property services is an array of service configurations. Each service includes:

  • serviceId - identifies the service type: clearance, retrieval, or full-buyer-mode

  • live.enabled - whether the service is enabled in the production environment

  • test.enabled - whether the service is enabled in the test environment (only for clearance and retrieval)

Note that full-buyer-mode is only available in the live environment and will not have a test configuration.

Property errors contains an array of error details if the request failed.

Example request

$ curl 'https://web.invoiceportal.net/api/members/43/services/operations/11111111-1111-1111-1111-111111111111' -i -X GET

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 733

{
  "operationId" : "11111111-1111-1111-1111-111111111111",
  "services" : {
    "count" : 3,
    "items" : [ {
      "serviceId" : "clearance",
      "live" : {
        "enabled" : true
      },
      "test" : {
        "enabled" : true
      }
    }, {
      "serviceId" : "retrieval",
      "live" : {
        "enabled" : true
      }
    }, {
      "serviceId" : "full-buyer-mode",
      "live" : {
        "enabled" : true
      }
    } ]
  },
  "op" : "add",
  "status" : "completed",
  "submittedAt" : "2025-07-28T14:30:00Z",
  "completedAt" : "2025-07-28T14:32:14Z",
  "errors" : {
    "count" : 1,
    "items" : [ {
      "message" : "VAT number is not valid for this country"
    } ]
  }
}

Member Management Audit Report

Use this API to obtain an audit report for member management activity for members.

The audit log has records about member management operations like member creation, update, and deletion. This includes managing member addresses, party identifiers, users, payment means, and clearance settings carried out through API.

Only the operations performed by the calling integrated product are included in the report.

Only update operations (create, update and delete) are logged. Operations that only request information are not logged.

The log has information only about operations that have been made via API. Operations that are done via Invoice e-Connect portal UI are not logged.

Member management audit report endpoint

This endpoint is a collection resource the records of that have information about member management events.

This API returns maximum 10000 records per request. If the number of records exceeds this limit, the API returns the first 10000 records only. Use the size and page query parameters to get more records.

Request API member management audit report

Use this API to request the audit report.

GET /api/reports/member-audit?memberId=1&dateFrom=2024-05-01&dateTo=2024-10-1&size=100&page=1 HTTP/1.1

Path parameters

No parameters.

Query parameters

Parameter Type Description

memberId

Number

Unique member ID.

dateFrom

String

First day of the date range to return the records for.

dateTo

String

Last day of the date range to return the records for.

Supports standard paging query parameters with the maximum page size is 10000.

Request fields

No request body.

Response fields

Path Type Description

items

Array

Array of audit records.

count

Number

Number of returned audit records.

items[].eventTime

String

Event time

items[].apiName

String

API name that was used to change the member

items[].eventType

String

Event type

items[].memberId

Long

ID of the changed member

items[].oldObjectId

Long

ID of the changed or removed sub-object (like address, party identifier, etc.).

items[].newObjectId

Long

ID of the created sub-object (like address, party identifier, etc.)

items[].eventResult

String

Event result (Success or Failure).

items[].errorText

String

Error text

Example request

$ curl 'https://web.invoiceportal.net/api/reports/member-audit?memberId=1&dateFrom=2024-05-01&dateTo=2024-10-1&size=100&page=1' -i -X GET

Example response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 484

{
  "count" : 2,
  "items" : [ {
    "eventTime" : "2024-05-01T16:52:01.001",
    "apiName" : "createMember",
    "eventType" : "Create member",
    "memberId" : 1,
    "newObjectId" : 4,
    "eventResult" : "Success"
  }, {
    "eventTime" : "2024-05-02T16:52:02.001",
    "apiName" : "createAddress",
    "eventType" : "Set legal address",
    "memberId" : 2,
    "oldObjectId" : 5,
    "eventResult" : "Failure",
    "errorText" : "Address already exists"
  } ]
}

Appendix

Security

To be able to call the web service API endpoints, use the HTTPS protocol only. A more strict requirement is that only the TLS 1.2 protocol is accepted by the server. An even more strict requirement is that to prove that the caller has the authority to access the protected resources, the caller must provide an access token in the standard Authorization request header.

The web service supports the OAuth2 standard along with the Client Credentials grant type.

To obtain an access token, send a request to a special authorization endpoint and provide its client ID and a client assertion. The client assertion is a signed JSON Web Token that must have set the following standard claims that all will be validated by the authorization service.

Table 46. Client assertion public claims
Claim Description Meaning

iss

Issuer

Name of the product that issues the assertion. For example, ReadSoftOnline.

Or

ID of the member that issued the assertion.

sub

Subject

Client for which the assertion is issued. This must be the client ID.

aud

Audience

Receiver of the assertion. Must be InvoicePortal.

exp

Expiration Time

Time until which the assertion is valid.

nbf

Not Before

Time before which the assertion is not valid.

iat

Issued At

Time when the assertion is issued.

jti

JWT ID

A unique ID of the issued assertion.

e-Invoice Connect can authenticate integrated Tungsten Automation product or e-Invoice Connect member via API.

To provide all the required values and then properly sign the created JWT, use a client ID, a product name, and a client secret key that are registered in e-Invoice Connect and then received as part of the procedure of integrating the product with e-Invoice Connect. Otherwise, use the client ID, member ID, and a client secret key obtained from the member account Settings page.

To create the signature part of the client assertion, use the HMAC SHA256 algorithm.

Once you have created a signed JWT to provide as a client assertion, send a POST request and specify several form parameters in the request body.

Table 47. The required authorization request form parameters
Name Description

grant_type

OAuth2 grant type. Must be client_credentials.

client_id

Client ID as registered in e-Invoice Connect.

client_assertion_type

Type of the client assertion. Must be urn:ietf:params:oauth:client-assertion-type:jwt-bearer.

client_assertion

The client assertion. A signed JWT.

Sample authorization request
POST /api/oauth2/tokens HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Accept: application/json

grant_type=client_credentials&
client_id=57b91407-60cd-41cc-b63e-fdec7f611f94&
client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&
client_assertion=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI1N2I5MTQwNy02MGNkLTQxY2MtYjYzZS1mZGVjN2Y2MTFmOTQiLCJpc3MiOiJSZWFkU29mdE9ubGluZSIsImF1ZCI6Ikludm9pY2VQb3J0YWwiLCJleHAiOjE1NTkyNDI0ODgsIm5iZiI6MTU1OTI0MjQyOCwiaWF0IjoxNTU5MjQyNDI4LCJqdGkiOiJiOWQ1ZjRhNC02NjZlLTQyOTEtYjBjNC1lYzdjOGZlMzllNzQifQ.5IQ-mvMYQKqlJx-viEB1dtsVamKicgD3ZxRBqTDw0QY
Sample authorization response
HTTP/1.1 200 OK
Cache-Control: no-store, no-cache
Pragma: no-cache
Content-Type: application/json; charset=UTF-8

{
 "token_type": "Bearer",
 "expires_in": 60,
 "access_token": "eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJJbnZvaWNlUG9ydGFsIiwiYXVkIjoiUmVhZFNvZnRPbmxpbmUiLCJzdWIiOiI1ZmI0Y2VlNi1hMTljLTQ1OGQtOTA0ZS0yNWY4YzQ5N2I1NjciLCJleHAiOjE1NTkyNDM1MjIsIm5iZiI6MTU1OTI0MzQ2MiwiaWF0IjoxNTU5MjQzNDYyLCJqdGkiOiI1ZjkyMWE3ZS1iMTk2LTRiMGYtYTZkMC1kYjYxOWJjZmZhYjUifQ.X04Co7cfx41QUuMYMHOIqKbWsTteU99ywAvoiG-eDUDWyf7P6v39rn2VAbMSVuoB0Cs81o3RkNcPrHD1gSnisaH3LEEg2MPEwJWdHAUM1SnYDLJTXaEtrxNGSPtvdDOf-rdU0R49b1yqaJ84zq3rso-Fck5MfXS5fTw2EhHALgSiohYgRTrx5XiNx_V_BG4YZNyMfASrI2FRaBR_JKYylTZt6XN7RjYtOBZxDWVwq3MHSnEwiYHB3RS_48yFI2L7c_Ym8SfH1V0r8j04qW5Z08ahdaI-LbaXga6isfoJWOkJNWztts6zY9_Ng-AeNXFVD68xz-bMMh1iqDq-aLZABA"
}

If the authorization endpoint successfully verifies that the incoming request is valid, and authenticates the caller, it creates an access token and sends it in the response body. Use the received token to access the protected resource endpoints.

An access token is also a signed JSON Web Token which signature also can be verified by the caller using the server public key. The token contains the same public claims as the client assertion including the time frame within which it is valid. The public key is obtained from e-Invoice Connect along with a client ID and a client secret key. By verifying the token signature the caller can make sure that the token has been really created by e-Invoice Connect and not by anyone else.

To send a request to a protected endpoint, add the access token in the Authorization header and set the Bearer value as the token type.

Sample request to a protected endpoint
GET /api/members HTTP/1.1
Accept: application/json
Authorization: Bearer eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJJbnZvaWNlUG9ydGFsIiwiYXVkIjoiUmVhZFNvZnRPbmxpbmUiLCJzdWIiOiI1ZmI0Y2VlNi1hMTljLTQ1OGQtOTA0ZS0yNWY4YzQ5N2I1NjciLCJleHAiOjE1NTkyNDM1MjIsIm5iZiI6MTU1OTI0MzQ2MiwiaWF0IjoxNTU5MjQzNDYyLCJqdGkiOiI1ZjkyMWE3ZS1iMTk2LTRiMGYtYTZkMC1kYjYxOWJjZmZhYjUifQ.X04Co7cfx41QUuMYMHOIqKbWsTteU99ywAvoiG-eDUDWyf7P6v39rn2VAbMSVuoB0Cs81o3RkNcPrHD1gSnisaH3LEEg2MPEwJWdHAUM1SnYDLJTXaEtrxNGSPtvdDOf-rdU0R49b1yqaJ84zq3rso-Fck5MfXS5fTw2EhHALgSiohYgRTrx5XiNx_V_BG4YZNyMfASrI2FRaBR_JKYylTZt6XN7RjYtOBZxDWVwq3MHSnEwiYHB3RS_48yFI2L7c_Ym8SfH1V0r8j04qW5Z08ahdaI-LbaXga6isfoJWOkJNWztts6zY9_Ng-AeNXFVD68xz-bMMh1iqDq-aLZABA

A request that does not have an access token gets rejected, and the expected response is as follows.

HTTP/1.1 401 Unauthorized
Content-Type: application/json; charset=UTF-8

{
 "status": "401",
 "error": "Unauthorized",
 "path": "/api/members",
 "timestamp": "2019-05-30T21:13:09.987+02:00",
 "details": []
}

Note: When logged in with your member credentials, you may get the "unauthorized" error. The list of all members is unavailable to an authorized member. You cannot access Vendor Onboarding endpoints. Also, you cannot request other member details and upgrade or delete them. The memberID parameter must match the ID of the authorized member.

Enable using the e-Invoice Connect API

If you use other Tungsten Automation products, you can access your e-Invoice Connect member data from these products via API. Otherwise you can use member API authentication for access.

To enable a member to use the e-Invoice Connect API, update the member by setting the apiEnabled property to true as follows:

PATCH /api/members/{existing-member-id} HTTP/1.1
Accept: application/json
Authorization: Bearer <access_token>
X-Authorization: Basic <credentials>
Content-Type: application/json

{
 "apiEnabled" : true
}

Only authenticated Tungsten Automation products (not e-Invoice Connect members) can change the apiEnabled property for a member.

Note that for API-created members, apiEnabled is set to true by default.

In this request, use the X-Authorization header in addition to the standard Authorization header. The value is Basic <credentials>, where <credentials> stands for the Base64 encoding of a user email and password delimited by a colon. The standard Authorization is used for the OAuth2 access token. For more information about Authorization, see Security.

A successful request makes the member associated with the product.

To disable a member to use the e-Invoice Connect API, a similar request can be issued with apiEnabled property set to false. Association of the member with the product is removed by this request.

Receive invoices via an API integration

If you are enabled to use e-Invoice Connect API, you can set up receiving invoices from e-Invoice Connect into other Tungsten Automation products you have.

  1. Make sure that apiEnabled is set to true.

  2. Log in as the member’s administrator to the e-Invoice Connect UI and select the option "Receive invoices via API integration" in e-Invoice Connect Receiving settings.

Single Sign-On (SSO)

e-Invoice Connect supports Single Sign-On without showing up the login and consent screens.

Single Sign-On API uses the OAuth 2.0 protocol for authentication and authorization, which conforms to the OpenID Connect specification with the authorization code flow.

Integrated service needs to implement what makes up an identity provider, i.e. it must have a few standard endpoints.

Table 48. Identity provider standard endpoints
Endpoint Description

/a-well-known-endpoint-for-discovery

Endpoint discovery.

/authorize

Authorization endpoint.

/tokens

Token endpoint.

/jwks-uri

JSON Web Key set endpoint.

Integrated service registers e-Invoice Connect as a client and stores its

  • redirect URI provided by e-Invoice Connect

  • service ID provided by Integrated service and given to e-Invoice Connect (UUID value)

  • client ID provided by Integrated service and given to e-Invoice Connect

  • client key provided by Integrated service and given to e-Invoice Connect

Integrated service shares its own discovery endpoint with e-Invoice Connect. This endpoint is stored by e-Invoice Connect. e-Invoice Connect uses discovery endpoint response to get identity provider’s configuration, including all necessary endpoints and public key location information.

Table 49. Provider configuration response claims required
Claim Description

issuer

Issuer identifier, which is a URL that uses the "https" scheme and has no query or fragment components.

authorization_endpoint

URL of the authorization endpoint.

token_endpoint

URL of the token endpoint.

jwks_uri

URL of the JWK Set document.

token_endpoint_auth_methods_supported

Must include client_secret_jwt

The successful flow should look like this:

  1. Integrated service user logs in to their account in the service.

    We assume that the user organization has a connection to an e-Invoice Connect member account, and the user wants to get access to the e-Invoice Connect UI under that member account and under their own user account existing in Integrated service. e-Invoice Connect member must be enabled to use the e-Invoice Connect API.

  2. The user follows a link in their browser that directs them to the e-Invoice Connect site, such as https://web.invoiceportal.net/login.

    The request form has the following body parameters.

    Table 50. Login request parameters
    Parameter Description

    service_id

    Service ID that uniquely defines Integrated service for e-Invoice Connect. A UUID value.

    member_id

    e-Invoice Connect member account identifier the user wants to get access to.

    Sample SSO login request:

    POST /login HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    member_id=1865067&service_id=57b91407-60cd-41cc-b63e-fdec7f611f94
  3. e-Invoice Connect verifies the service ID and initiates the OpenID Connect authorization code flow.

    e-Invoice Connect sends a request to the authorization endpoint and supplies these standard parameters:

    response_type=code
    client_id=<the e-Invoice Connect client ID known by the service>
    scope=openid email profile https://web.invoiceportal.net/member
    redirect_uri=<e.g. https://web.invoiceportal.net/api/oauth2/callback>
    state=<an opaque state value>
    nonce=<a nonce value>
    prompt=none
    response_mode=form_post

    The scope parameter values tell Integrated service that e-Invoice Connect requests an ID token with the email and the basic profile claims. https://web.invoiceportal.net/member is a custom scope that expects custom https://web.invoiceportal.net/member/id claim to be included into ID token.

    The prompt parameter value requests not to display the login and consent screens. We assume that the consent has already been given by the user or their organization at some earlier step.

    Sample SSO login response:

    HTTP/1.1 302 Found
    Content-Type: text/html; charset=utf-8
    Location: /openidconnect/rest/openid/authorize?response_type=code&client_id=12345&scope=https%3A%2F%2Fweb.invoiceportal.net%2Fmember+openid+profile+email&redirect_uri=https%3A%2F%2Fweb.invoiceportal.net%2Fapi%2Foauth2%2Fcallback&state=11318e1f-d943-487a-b627-8c9d4645d5ef&nonce=kW7RLEmL42228kL0mGpE8hr38EK44vrSN0N01KppOps&prompt=none&response_mode=form_post
  4. e-Invoice Connect redirects the user’s browser to hit the Integrated service /authorize endpoint.

  5. Integrated service must verify that the request has a session cookie of the user to make sure it comes not from an impersonator trying to log in to e-Invoice Connect.

  6. If all checks are fine (the user did log in and the session is active), Integrated service issues a super-short-living one-time-use code and redirects the user’s browser to the e-Invoice Connect redirect URI attaching the code as a form parameter.

    Sample authorization response:

    POST /api/oauth2/callback HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    code=7d12133349ee40cdb7ee54b93507f2c4&state=11318e1f-d943-487a-b627-8c9d4645d5ef
  7. e-Invoice Connect extracts the code from the request and sends a request to the token endpoint to exchange the code for an ID token. Upon sending the request, e-Invoice Connect must properly authenticate itself for the Integrated service.

    The web service supports the OAuth2 standard along with the Client Credentials grant type.

    To obtain an ID token, e-Invoice Connect provides its client ID and a client assertion. The client assertion is a JSON Web Token signed with the client secret initially given to e-Invoice Connect by Integrated service that has set the following standard claims that all must be validated by the Integrated service.

    Table 51. Client assertion public claims
    Claim Description Meaning

    iss

    Issuer

    Integrated service Client ID

    sub

    Subject

    Client for which the assertion is issued. This must be the client ID.

    aud

    Audience

    Receiver of the assertion. Token endpoint issued by the identity provider.

    exp

    Expiration Time

    Time until which the assertion is valid.

    nbf

    Not Before

    Time before which the assertion is not valid.

    iat

    Issued At

    Time when the assertion is issued.

    jti

    JWT ID

    A unique ID of the issued assertion. A UUID value.

    Once e-Invoice Connect have created a signed JWT to provide as a client assertion, a POST request is sent and several form parameters are specified in the request body.

    Table 52. The token request form parameters:

    Name

    Description

    grant_type

    OAuth2 grant type. Must be client_credentials.

    client_id

    Integrated service Client ID.

    client_assertion_type

    Type of the client assertion. Must be urn:ietf:params:oauth:client-assertion-type:jwt-bearer.

    client_assertion

    The client assertion. A signed JWT.

    Sample token request

    POST /api/oauth2/tokens HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    Accept: application/json
    
    grant_type=client_credentials&
    client_id=12345&
    client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&
    client_assertion=eyJhb3ciOiJIUzI1NiJ9.eyJzdWIiOiI1N2I5MTQwNy02M4NkLTQxY2MtYjYzZS1mZGVjN5Y2MTFmOTQiLCJpc3MiOiJSZWFkU29mdE9ubGluZSIsImF1ZCI6Ikludm9pY2VQb3J0YWwiLCJleHAiOjE1NTkyNDI0ODgsIm5iZiI6MTU1OTI0MjQyOCwiaWF0IjoxNTU5MjQygDI4LCJqdGkiOiJiOWQ1ZjRhNC02NjZlLTQyOTEtYjBjNC1lYzdjOGZlMzllNzQifQ.5IQ-mvMYQKqlJx-viEB1dtsVamKicgD3ZxRBqTDw0QY
  8. Once the ID token is received, the identity of the user becomes clear to e-Invoice Connect.

    When client assertion is verified, integrated service issues ID token and sets the Bearer value as the token type. An ID token is a JSON Web Token signed by identity provider public key.

    Sample token response

    HTTP/1.1 200 OK
    Cache-Control: no-store, no-cache
    Pragma: no-cache
    Content-Type: application/json; charset=UTF-8
    
    {
     "token_type": "Bearer",
     "expires_in": 60,
     "id_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6Ijg3MDdh3DI4NDQyOTQyYWRiNWY0NDEyNjE3YjU0YzkwIiwidHlwIjoiSldUIn0.eyJzdWIiOiIxZmIxYmEzNjQ1Y2Q0ODQ5YmE2Y2QwNWVkYWNiY2ZkMiIsIm5hbWUiOiJPbGdhIFRvZ2lkbnlheWEiLCJlbWFpbCI6Im9sZ2EudG9naWRueWF5YUBrb2ZheC5jb20iLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJPbGdhIFRvZ2lkbnlheWEgUmVhZFNvZnQiLCJodHRwczovL3dlYi5pbnZvaWNlcG9ydGFsLm5ldC9tZW1iZXIvaWQiOiIxODY1MCIsIm5iZiI6MTYyMTYwMjY0NSwiZXhwIjoxNjIxNjAyNjc1LCJpYXQiOjE2MjE2MDI2NjAsImlzcyI6Imh0dHBzOi8vc2VydmljZXMtZGV2LnJlYWRzb2Z0b25saW5lLmNvbS9vcGVuaWRjb25uZWN0L3Jlc3Qvb3BlbmlkIiwiYXVkIjoicXdlcnR5MTIzNDUifQ.wBvV4jLZSBNL8KFDsjw4seDn7EO0J6IyAXc7YujOgVpsdDh5EaJjutI6QXw3i8FXfGQ96Efq3sAqb52VmuCr-rhc-1Qywb2gbbzanQ0_HXk30AF0YIvMDIozg5nNcccpsXZA2Q0YfcCRTIF2vKXO-jzzDDv9j9JAe_T1yaBHqmlRQbKdbsoErsg5KZq05DA29mj1erMfyIABRcluGin8IXNGBWVoZMYsJY4DUGqg-16-ZRDwoEAbrhj4IGRdiV7J4LVy8MaxBCQBVFkzpQt_2TFY58E6yarmiNLFCSZlIZDLJmZEW-TrMk85C3hZ3pslBQdPRhXjEoD22zdd2H1NGHTJgpqPngYJa19SoXS8w6Hol0FH5P-1YKDqIaY6E2FVasrohFcBRWgQ1aTcFCN_7PNK0udxF75aOgvMkK34Z5MBMCYV2EtVkbjODFAXduSjbNf_Eldtboa3ibrRWu4rzhvo-1tgRM_tSrAPEHNh7mRWYsbRNqQLLwqSw4xMJ_1bNdAfYb_aG01dbzByTI4hXfzrelVxkt81PONVJHgnDlAcKroUrjCQ9CWHeHMO_FEKIRjD2r46j9mqGCl0ZxVsH2W_ZsrKZuXIPmCxxtXevfdrJP8Sbq4ysH6iKrbKu5Cv3cJ-b7OOcCy44Rh4WH7a1jGAEG8HKpDStS-xtMIA2Lg"
    }

    The returned ID token must contain claims with the user profile information and member id. e-Invoice Connect validates the ID token and response. ID token must contain sufficient information that lets e-Invoice Connect validate it. It must be signed and contain proper claims.

    Table 53. ID token claims
    Claim Description Meaning

    iss

    Issuer

    Identity provider Issuer identifier

    sub

    Subject

    Integrated service unique user GUID.

    aud

    Audience

    Client for which the assertion is issued. This must be the Integrated service client ID.

    exp

    Expiration Time

    Time until which the assertion is valid.

    nonce

    Nonce

    Short-living one-time-use nonce previously issued by e-Invoice Connect

    https://web.invoiceportal.net/member/id

    Member ID

    Custom claim for e-Invoice Connect Member ID verification

    name

    User Name

    User name

    email

    Email

    User email

    preferred_username

    Name

    User name

Pagination

If a collection is very large and may be difficult for the client to handle, it is often better to serve it divided into pages. Paging applies to collection resources only, and instead of returning all the resources with one request, each request only returns a chunk of the entire collection. The client is able to specify which chunk it is interested in and this is supported by means of the following query parameters.

Table 54. Pagination query parameters
Path Type Optional Description

page

Integer

true

Page you want to retrieve, 1 indexed and defaults to 1.

size

Integer

true

Size of the page you want to retrieve, defaults to 100.

Paged response has the following structure.

Table 55. Pagination response structure
Path Type Description

items

Array

Array of actual returned resources.

count

Integer

Actual size of content array (number of items).

page

Integer

Page number.

pages

Integer

Total number of pages with current page size.

total

Integer

Total number of existing items.

Extended query parameter

The q query parameter is supported by several collection resources, and is used by the client to search for resources in a collection. The value of the parameter must be a JSON object that describes the search criteria to be applied.

A simple equality form can be used to match resources where all the values of resource properties are equal to the values provided for them. The following example matches a party identifier resource that has the type of VAT, the country ID of US, and the identifier equal to XYZ.

Sample query
?q={"type":"VAT","countryId":"US","identifier":"XYZ"}

More complex search criteria can use comparison operators.

Table 56. Comparison operators
Operator Description Example

$eq

Specifies an equality condition. Matches the resources where the value of a property equals the specified value.

?q={"countryId" : {"$eq" : "SE"}}

$in

Specifies an equality condition. Matches the resources where the value of a property equals any value in the specified array of values.

?q={"status" : {"$in" : ["Received", "Pending"]}}

$gte

Specifies a greater than or equal condition. Matches the resources where the value of a property is greater than or equal (i.e. >=) to the specified value.

?q={"arrivedAt" : {"$gte":"2019-06-04T08:00:00Z""}}

$lte

Specifies a less than or equal condition. Matches the resources where the value of a property is less than or equal (i.e. ⇐) to the specified value.

?q={"arrivedAt" : {"$lte":"2019-06-04T08:00:00Z""}}

Dates used in extended queries should comply with ISO 8601.

Party identifier type

This is the list of party identifier type values returned and understood by the web service.

Type code Country Description

org

*

Organization number

VAT

*

VAT number

UBLBE

Belgium

UBL.BE Party Identifier

BE:EN

Belgium

Numero d’entreprise / ondernemingsnummer / Unternehmensnummer

BE:VAT

Belgium

Belgium VAT number

DK:CVR

Denmark

Danish (primary) organization number

DK:DIGST

Denmark

Danish (secondary) organization number

DK:P

Denmark

Danish P number (production unit)

DK:SE

Denmark

Danish (primary) VAT number

DK:ERST

Denmark

Danish (secondary) VAT number

FI:VAT

Finland

Finnish VAT number

FI:OVT

Finland

Finnish OVT (e-invoice party identifier)

FI:OVT2

Finland

Finnish TIEKE OVTcode

FI:YT

Finland

Finnish organization number

FR:SIRENE

France

French (primary) organization number

FR:SIRET

France

French (secondary) organization number

FR:VAT

France

French TVA (VAT number)

FR:ROUTING

France

CTC Routing Code

FR:SUFFIX

France

CTC Suffix

IT:IVA

Italy

Partita IVA (VAT number)

IT:CFI

Italy

Codice Fiscale (Tax number)

NO:ORGNR

Norway

Norwegian organization number

NO:VAT

Norway

Norwegian VAT number

SE:ORGNR

Sweden

Swedish organization number

SE:VAT

Sweden

Swedish VAT number

DUNS

-

DUNS number

GLN

-

Global Location Number from GS1

IBAN

-

International Bank Account Number

INTID

-

Internal identifier for companies and other entities

GSRN

-

Global Service Relation Number

ZZZ

-

Arbitrary identifier type agreed upon between parties

LEI

-

Legal Entity Identifier

EM

-

Email Identifier

Party identifier detailed type

In some cases detailed types for party identifiers might be same as in type code list above. For example, for Swedish organization number both type and detailed type are "SE:ORGNR".

For other cases majority of possible values will be according to Peppol Participant identifier schemes code list, with the exception of custom values created by e-Invoice Connect administrators.

Party identifier format

This is the list of party identifier types and their regexp formatting rules.

Type code Format rule

UBLBE

^.{4}.{0,46}$

BE:EN

^(([0,1])?([0-9]{3}\.){2}[0-9]{3})|([2-8]\.([0-9]{3}\.){2}[0-9]{3})|(([0,1])?[0-9]{9})|(([2-8])[0-9]{9})$

BE:VAT

^[Bb][Ee][01][0-9]{9}$

DK:CVR

^(([0-9]{2}-?){3}[0-9]{2})|([0-9]{6}-?[0-9]{4})$

DK:DIGST

^[0-9]{8}([0-9]{2})?$

DK:P

^[0-9]{10}$

DK:SE

^DK[0-9]{8}$

DK:ERST

^(DK)?[0-9]{8}|DK[0-9]{8}?$

FI:VAT

^FI[0-9]{8}?$

FI:OVT

^0037[0-9]{8}.{0,5}$

FI:OVT2

^0037[0-9]{8}.{0,5}$

FI:YT

^[0-9]{6,7}-[0-9]$

FR:SIRENE

^[0-9]{3}[ ,]?[0-9]{3}[ ,]?[0-9]{3}$

FR:SIRET

^[0-9]{3}[ ,]?[0-9]{3}[ ,]?[0-9]{3}[ ,]?[0-9]{5}$

FR:VAT

^FR[ ]?[A-Z0-9]{2}[ ,]?[0-9]{3}[ ,]?[0-9]{3}[ ,]?[0-9]{3}$

FR:ROUTING

^[a-zA-Z0-9_ ]+$ (composite: SIREN + SIRET + routing code, separated by _ or space or concatenated)

FR:SUFFIX

^[a-zA-Z0-9_ ]+$ (composite: SIREN + suffix, separated by _ or space or concatenated)

IT:IVA

^IT[0-9]{11}$

IT:CFI

^[A-Za-z]{6}[0-9]{2}[A-Za-z]{1}[0-9]{2}[A-Za-z]{1}[0-9]{3}[A-Za-z]{1}$ for natural persons OR ^[0-9]{11}$ for companies

NO:ORGNR

^[0-9]{9}$

NO:VAT

^(NO)?[0-9]{9}(MVA)?$

SE:ORGNR

^[0-9]{6}-[0-9]{4}$

SE:VAT

^SE[0-9]{12}$

DUNS

^[0-9]{2}-?[0-9]{3}-?[0-9]{4}$

GLN

^[0-9]{13}$

IBAN

^[A-Z]{2}[A-Z0-9]{1,32}$

INTID

Free format depending on particular detailed type or company requirements

GSRN

^[0-9]{18}$

ZZZ

^[A-Z0-9]{6,255}$

Payment means type

This is the list of the supported payment means types with information about the properties that may be used with them.

Type name Properties Description

BANK

account, bankName, branchCode, swiftCode

Bank account

CARD

account, cardHolderName, cardNetworkId

Credit/bank card

CASH

-

Cash

DirectDebit

account, bankName, swiftCode

Direct debit

DK_FIK

account, subtype

Danish Joint Payment Form, FIK

DK_Giro

account, subtype

Danish giro

IBAN

account, bankName, swiftCode

International Bank Account Number

PaymentMandate

account, payerFinancialAccount, paymentMandate

Payment mandate

SE_BankGiro

account

Swedish BankGiro

SE_PlusGiro

account

Swedish PlusGiro

Collection sorting

The collection resource endpoints support the optional sort query parameter that defines how to sort the returned item collection.

The format for the sort parameter is a comma-separated list of item properties optionally followed by : and either asc or desc to specify whether the sorting order should be ascending or descending.

A sample sorting query parameter
?sort=status:asc,id:asc

The default sort direction is ascending.

Invoice type

This is the list of all possible values for invoice type code that e-Invoice Connect can accept and process.

Table 57. Invoice type codes
Code Name Description

Credit

Credit

Credit note invoice

Debit

Debit

Debit invoice

COR

Corrected invoice

Commercial invoice that includes revised information differing from an earlier submission of the same invoice

ADV

Payment in advance

Advance/down payment on invoice

ADVF

Advance on fee

Advance/down payment on fee

DN

Debit Note

Document/message for providing debit information to the relevant party

FEE

Fee

Fee

Invoice type codes specific for Italy. NOTE: code Debit should be used for SDI code TD01 and code Credit for TD04.

Invoice type codes starting from ITTD16 to ITTD27 are for documents that are subjects for e-reporting.

Code Name Description

ITTD16

Reverse charge

(For Italy only) Reverse charge internal invoice integration

ITTD17

Self-invoicing

(For Italy only) Invoice Integration / self-invoicing for the purchase services from abroad

ITTD18

Intra-EU goods

(For Italy only) Invoice Integration for purchase of intra-EU goods

ITTD19

Self-invoicing

(For Italy only) Integration/self-invoicing for purchase of goods (ex art.17 c.2 DPR 633/72)

ITTD20

Self-invoicing

(For Italy only) Self-invoicing for regularization and integration of invoices (ex art.6 c.8 and 9-bis d.lgs 471/97 or art.46 c.5 D.L. 331/93)

ITTD21

Self-invoicing

(For Italy only) Self-invoicing for splaphoning

ITTD22

Extraction of goods

(For Italy only) Extraction of goods from the VAT warehouse

ITTD23

Extraction of goods

(For Italy only) Extraction of goods from the VAT warehouse with payment of VAT

ITTD24

Deferred invoice

(For Italy only) Deferred invoice (ex art.21, c.4, lett. a)

ITTD25

Deferred invoice

(For Italy only) Deferred invoice (ex art.21, c.4, third period lett. b)

ITTD26

Internal transfer

(For Italy only) Sale of depreciable assets and for internal transfers (ex art.36 DPR 633/72)

ITTD27

Self-invoicing

(For Italy only) Self invoicing for self-consumption or for free charge invoice with VAT application

ITTD28

Purchases from San Marino

(For Italy only) Purchases from San Marino with VAT (paper invoice)

ITTD29

Irregular invoicing

(For Italy only) Communication for omitted or irregular invoicing (article 6, paragraph 8, Legislative Decree 471/97)

Invoice type codes specific for Poland.

Code Name Description

PLZAL

Receipt document

(For Poland only) An invoice documenting the receipt of payment or a part thereof prior to the performance of the activity and an invoice issued in connection with Art. 106f sec. 4 of the act

PLROZ

Settlement invoice

(For Poland only) An invoice issued in connection with art. 106f sec. 3 of the act

PLUPR

Simplified invoice

(For Poland only) An invoice issued in connection to article 106e sec. 5 item 3 of the act

PLKOR_ZAL

Correction to receipt document

(For Poland only) Invoice correcting the invoice documenting the receipt of the payment or its part before performing the activity and the invoice issued in connection with art. 106f sec. 4 of the act

PLKOR_ROZ

Correction to settlement invoice

(For Poland only) Invoice correcting the invoice issued in connection with art. 106f sec. 3 of the act

Invoice status

This is the list of statuses that the incoming invoices processed by e-Invoice Connect can have.

Table 58. Incoming invoice statuses
Status Description

Received

An invoice that is initially processed by the service and has passed validation. Or a former invalid invoice that has been accepted by an explicit request.

Pending

An invalid invoice that is initially processed by the service but has not passed validation and has errors.

Rejected

An invalid invoice that has been rejected either automatically or by an explicit request to reject it.

Corrected

An invalid invoice that has been replaced by a valid one having the same invoice number.

Additionally, incoming invoices may have the following business-level statuses, which can be set by the recipients.

Table 59. Business-level statuses
Status Description

Delivered

Indicates that the invoice has been received but not yet processed.

Queried

Indicates that the invoice is on hold due to a query or pending clarification.

Invalidated

Indicates that the invoice was identified as incorrect by the recipient during business validation.

Verified

Indicates that the invoice details have been verified and confirmed.

ConditionallyAccepted

Indicates that the invoice is accepted with conditions or pending adjustments.

Approved

Indicates that the invoice has been approved for payment.

Paid

Indicates that the invoice has been fully paid. This status is final.

Rejected

Indicates that the invoice has been rejected by the recipient. This status is final.

Integrated service request status

This is the list of all possible statuses that the integrated service requests can have.

Table 60. Integrated service request statuses
Status Description

Active

Awaiting state, not expired, no response received yet.

Awaiting

Awaiting state, not expired, response received but multipart data is being awaited.

Responded

Response received.

Failed

Response received but possibly was invalid.

Expired

Request timed out with either no response at all or multipart data not received in a timely manner.

Party upload status

This is the list of all possible statuses that the party upload requests can have.

Table 61. Party upload statuses
Status Description

Accepted

Upload is accepted.

Awaiting

Upload is accepted but multipart data is being awaited.

Expired

Multipart data not received in a timely manner.

Processing

Processing job started.

Failed

Processing failed.

Processed

Processing completed successfully.

Invoice attachment document types

This is the list of possible document types that the invoice attachment can have. Most of specific types will be provided only for invoices that went trough clearance procedure with clearance service provider.

Table 62. Invoice attachment document types
Attachment type Description

Regular

Regular attachment related to the invoice, can be a number of formats (pdf, xml etc.).

OriginalInvoice

Original invoice document.

LegalDocument

Legal document provided by clearance operator.

Receipt

Confirmation of receipt. An acknowledgement receipt issued by government, operator or clearance service provider.

InvoiceImage

Image of an invoice (usually a PDF representation) provided by clearance service provider/operator.

Metadata

Additional delivery or processing information provided by a clearance operator.

DeliveryNotice

Delivery confirmation notice provided by a clearance operator signifying that the invoice was delivered to a recipient.

RejectionNotice

Rejection notification provided by a clearance operator.

FailedDeliveryNotice

Failed delivery notification provided by a clearance operator signifying that invoice was accepted and processed but delivery to a recipient has failed.

Invoice statistic request status

This is the list of all possible statuses that the invoice statistic requests can have.

Table 63. Invoice statistic request statuses
Status Description

Pending

Request is pending.

Completed

Request is processed and statistic report is completed.

Failed

Processing failed.