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. 2. 3. 4. |
sort |
String |
Optional sorting parameter. The properties that can be specified for sorting are: 1. 2. 3. |
Supports standard paging query parameters.
Request fields
No request body.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Page number. |
|
|
Actual size of content array (number of items). |
|
|
Total number of existing items. |
|
|
Total number of pages with current page size. |
|
|
Array of members. |
|
|
Member unique ID. |
|
|
Member name. |
|
|
Member status. The field can have the following values and in ascending order sorts as |
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
Query parameters
No parameters.
Request fields
No request body.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Member unique ID. |
|
|
Member name. |
|
|
Member status. The field is mainly either |
|
|
A product the member belongs to. |
|
|
The setting that enables or disables access to the member via the API. |
|
|
The setting that enables or disables ability of the member to submit invoices via the API. |
|
|
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. |
|
|
The auto reminder setting value |
|
|
Number of days until auto accepting invoices with errors for which sender cannot be notified. |
|
|
Number of days until auto rejecting invoices with errors for which sender can be notified. |
|
|
Never auto accept invoices when sender cannot be notified. |
|
|
The prevent duplicate invoice number within the same year setting value. |
|
|
Optional transfer information settings object which properties may alter the invoice data produced by the sender’s business system via the configured substitution rules. |
|
|
Object that describes the configured supplier payment means substitution rules. |
|
|
Substitution rule for the |
|
|
Substitution rule for the |
|
|
Substitution rule for the |
|
|
Substitution rule for the |
|
|
Substitution rule for the |
|
|
Substitution rule for the |
|
|
Substitution rule for the |
|
|
Substitution rule for the |
|
|
Substitution rule for the |
|
|
Substitution rule for the |
|
|
E-mail address to be used as From address when sending invoices via e-mail to suppliers. |
|
|
An object that contains a collection of party identifiers. |
|
|
Number of party identifiers in the collection. |
|
|
Array of party identifiers. |
|
|
Party identifier unique ID. |
|
|
Attribute that shows if the party identifier is a primary one for the country |
|
|
Party identifier type. |
|
|
Party identifier detailed type. |
|
|
Party identifier value. |
|
|
Object that contains a collection of addresses |
|
|
Number of addresses in the collection. |
|
|
Array of addresses |
|
|
Address party identifier object. |
|
|
Address party identifier unique ID. |
|
|
Address party identifier type. |
|
|
Address party identifier detailed type. |
|
|
Address party identifier country ID. |
|
|
Address party identifier value. |
|
|
Address name. |
|
|
Address country ID. |
|
|
City. |
|
|
Street address. |
|
|
Co-address. |
|
|
Zip code. |
|
|
Attribute that shows if the address is a legal address. |
|
|
Address line. |
|
|
Country subentity. |
|
|
Attribute that shows if the address is a recipient address. |
|
|
Attribute that shows if the address is a delivery address. |
|
|
Party’s reference |
|
|
Object that contains a collection of member users. |
|
|
Number of users in the collection. |
|
|
Array of member users. |
|
|
Member user unique ID. |
|
|
User name. |
|
|
User email. |
|
|
User fax number. |
|
|
User phone number. |
|
|
User mobile phone number. |
|
|
Optional object that contains a collection of payment means. |
|
|
Number of payment means in the collection. |
|
|
Array of member payment means objects. |
|
|
Payment means unique ID. |
|
|
Name of the payment means type. |
|
|
Payment means subtype value. |
|
|
Payment means account value. |
|
|
SWIFT code. |
|
|
Identification of branch or office within institution, such as clearing no. |
|
|
Name of the payment service institution, such as the name of the bank |
|
|
Card network identification, such as Mastercard. |
|
|
Card holder name. |
|
|
Payment mandate. |
|
|
Payer financial account value. |
|
|
The setting that enables or disables Clearance workflow subscription. |
|
|
The setting that shows if Clearance service is enabled. |
|
|
The setting that shows if Retrieval service is enabled. |
|
|
The setting that shows if Clearance service is enabled in the test environment. |
|
|
The setting that shows if Retrieval service is enabled in the test environment. |
|
|
The setting that shows if full buyer mode service is enabled. |
|
|
Option to receive messages from Peppol. |
|
|
Acceptance of exposure member data in external registries including Peppol. |
|
|
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 |
|---|---|---|
|
|
Auto reminder setting value |
|
|
Number of days until auto accepting invoices with errors for which sender cannot be notified. |
|
|
Number of days until auto rejecting invoices with errors for which sender can be notified. |
|
|
Never auto accept invoices when sender cannot be notified. |
|
|
The value for the setting to prevent duplicate invoice number within the same year. |
|
|
E-mail address to be used as From address when sending invoices via e-mail to suppliers. |
|
|
Object containing optional information for the invoice sending setup to configure the rules for substituting specific invoice data parts. |
|
|
Object containing a collection of party identifiers. |
|
|
Object containing a collection of addresses. |
|
|
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. |
|
|
Object containing an optional collection of payment means for the invoice sending setup. |
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Member unique ID. |
|
|
Member name. |
|
|
Member status. The field is mainly either |
|
|
A product the member belongs to. |
|
|
The setting that enables or disables access to the member via the API. |
|
|
The setting that enables or disables ability of the member to submit invoices via the API. |
|
|
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. |
|
|
The auto reminder setting value |
|
|
Number of days until auto accepting invoices with errors for which sender cannot be notified. |
|
|
Number of days until auto rejecting invoices with errors for which sender can be notified. |
|
|
Never auto accept invoices when sender cannot be notified. |
|
|
The prevent duplicate invoice number within the same year setting value. |
|
|
Optional transfer information settings object which properties may alter the invoice data produced by the sender’s business system via the configured substitution rules. |
|
|
Object that describes the configured supplier payment means substitution rules. |
|
|
Substitution rule for the |
|
|
Substitution rule for the |
|
|
Substitution rule for the |
|
|
Substitution rule for the |
|
|
Substitution rule for the |
|
|
Substitution rule for the |
|
|
Substitution rule for the |
|
|
Substitution rule for the |
|
|
Substitution rule for the |
|
|
Substitution rule for the |
|
|
E-mail address to be used as From address when sending invoices via e-mail to suppliers. |
|
|
An object that contains a collection of party identifiers. |
|
|
Number of party identifiers in the collection. |
|
|
Array of party identifiers. |
|
|
Party identifier unique ID. |
|
|
Attribute that shows if the party identifier is a primary one for the country |
|
|
Party identifier type. |
|
|
Party identifier detailed type. |
|
|
Party identifier value. |
|
|
Object that contains a collection of addresses |
|
|
Number of addresses in the collection. |
|
|
Array of addresses |
|
|
Address party identifier object. |
|
|
Address party identifier unique ID. |
|
|
Address party identifier type. |
|
|
Address party identifier detailed type. |
|
|
Address party identifier country ID. |
|
|
Address party identifier value. |
|
|
Address name. |
|
|
Address country ID. |
|
|
City. |
|
|
Street address. |
|
|
Co-address. |
|
|
Zip code. |
|
|
Attribute that shows if the address is a legal address. |
|
|
Address line. |
|
|
Country subentity. |
|
|
Attribute that shows if the address is a recipient address. |
|
|
Attribute that shows if the address is a delivery address. |
|
|
Party’s reference |
|
|
Object that contains a collection of member users. |
|
|
Number of users in the collection. |
|
|
Array of member users. |
|
|
Member user unique ID. |
|
|
User name. |
|
|
User email. |
|
|
User fax number. |
|
|
User phone number. |
|
|
User mobile phone number. |
|
|
Optional object that contains a collection of payment means. |
|
|
Number of payment means in the collection. |
|
|
Array of member payment means objects. |
|
|
Payment means unique ID. |
|
|
Name of the payment means type. |
|
|
Payment means subtype value. |
|
|
Payment means account value. |
|
|
SWIFT code. |
|
|
Identification of branch or office within institution, such as clearing no. |
|
|
Name of the payment service institution, such as the name of the bank |
|
|
Card network identification, such as Mastercard. |
|
|
Card holder name. |
|
|
Payment mandate. |
|
|
Payer financial account value. |
|
|
The setting that enables or disables Clearance workflow subscription. |
|
|
The setting that shows if Clearance service is enabled. |
|
|
The setting that shows if Retrieval service is enabled. |
|
|
The setting that shows if Clearance service is enabled in the test environment. |
|
|
The setting that shows if Retrieval service is enabled in the test environment. |
|
|
The setting that shows if full buyer mode service is enabled. |
|
|
Option to receive messages from Peppol. |
|
|
Acceptance of exposure member data in external registries including Peppol. |
|
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
Query parameters
No parameters.
Request fields
No request body.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Member unique ID. |
|
|
Member name. |
|
|
Member status. The field is mainly either |
|
|
A product the member belongs to. |
|
|
The setting that enables or disables access to the member via the API. |
|
|
The setting that enables or disables ability of the member to submit invoices via the API. |
|
|
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. |
|
|
The auto reminder setting value |
|
|
Number of days until auto accepting invoices with errors for which sender cannot be notified. |
|
|
Number of days until auto rejecting invoices with errors for which sender can be notified. |
|
|
Never auto accept invoices when sender cannot be notified. |
|
|
The prevent duplicate invoice number within the same year setting value. |
|
|
Optional transfer information settings object which properties may alter the invoice data produced by the sender’s business system via the configured substitution rules. |
|
|
Object that describes the configured supplier payment means substitution rules. |
|
|
Substitution rule for the |
|
|
Substitution rule for the |
|
|
Substitution rule for the |
|
|
Substitution rule for the |
|
|
Substitution rule for the |
|
|
Substitution rule for the |
|
|
Substitution rule for the |
|
|
Substitution rule for the |
|
|
Substitution rule for the |
|
|
Substitution rule for the |
|
|
E-mail address to be used as From address when sending invoices via e-mail to suppliers. |
|
|
An object that contains a collection of party identifiers. |
|
|
Number of party identifiers in the collection. |
|
|
Array of party identifiers. |
|
|
Party identifier unique ID. |
|
|
Attribute that shows if the party identifier is a primary one for the country |
|
|
Party identifier type. |
|
|
Party identifier detailed type. |
|
|
Party identifier value. |
|
|
Object that contains a collection of addresses |
|
|
Number of addresses in the collection. |
|
|
Array of addresses |
|
|
Address party identifier object. |
|
|
Address party identifier unique ID. |
|
|
Address party identifier type. |
|
|
Address party identifier detailed type. |
|
|
Address party identifier country ID. |
|
|
Address party identifier value. |
|
|
Address name. |
|
|
Address country ID. |
|
|
City. |
|
|
Street address. |
|
|
Co-address. |
|
|
Zip code. |
|
|
Attribute that shows if the address is a legal address. |
|
|
Address line. |
|
|
Country subentity. |
|
|
Attribute that shows if the address is a recipient address. |
|
|
Attribute that shows if the address is a delivery address. |
|
|
Party’s reference |
|
|
Object that contains a collection of member users. |
|
|
Number of users in the collection. |
|
|
Array of member users. |
|
|
Member user unique ID. |
|
|
User name. |
|
|
User email. |
|
|
User fax number. |
|
|
User phone number. |
|
|
User mobile phone number. |
|
|
Optional object that contains a collection of payment means. |
|
|
Number of payment means in the collection. |
|
|
Array of member payment means objects. |
|
|
Payment means unique ID. |
|
|
Name of the payment means type. |
|
|
Payment means subtype value. |
|
|
Payment means account value. |
|
|
SWIFT code. |
|
|
Identification of branch or office within institution, such as clearing no. |
|
|
Name of the payment service institution, such as the name of the bank |
|
|
Card network identification, such as Mastercard. |
|
|
Card holder name. |
|
|
Payment mandate. |
|
|
Payer financial account value. |
|
|
The setting that enables or disables Clearance workflow subscription. |
|
|
The setting that shows if Clearance service is enabled. |
|
|
The setting that shows if Retrieval service is enabled. |
|
|
The setting that shows if Clearance service is enabled in the test environment. |
|
|
The setting that shows if Retrieval service is enabled in the test environment. |
|
|
The setting that shows if full buyer mode service is enabled. |
|
|
Option to receive messages from Peppol. |
|
|
Acceptance of exposure member data in external registries including Peppol. |
|
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
Query parameters
| Parameter | Type | Description |
|---|---|---|
sort |
String |
Optional sorting parameter. The properties that can be specified for sorting are: 1. 2. |
Request fields
No request body.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Actual size of content array (number of items). |
|
|
Array of address objects. |
|
|
Address unique ID. |
|
|
Address name. |
|
|
Attribute that shows if the address is a legal address. |
|
|
Attribute that shows if the address is a recipient address. |
|
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
Query parameters
No parameters.
Request fields
| Path | Type | Description |
|---|---|---|
|
|
Address name. |
|
|
Country ID. |
|
|
City. |
|
|
Street address. |
|
|
Address zip code. |
|
|
Co-address. |
|
|
Address line |
|
|
Country subentity. |
|
|
Party’s reference. |
|
|
Attribute that shows if the address is a legal address. |
|
|
Attribute that shows if the address is a recipient address. |
|
|
Attribute that shows if the address it a delivery address. |
|
|
Address party identifier object. |
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Address unique ID. |
|
|
Address name. |
|
|
Country ID. |
|
|
City. |
|
|
Street address. |
|
|
Address zip code. |
|
|
Co-address. |
|
|
Address line. |
|
|
Country subentity. |
|
|
Party’s reference. |
|
|
Attribute that shows if the address is a legal address. |
|
|
Attribute that shows if the address is a recipient address. |
|
|
Attribute that shows if the address is a delivery address. |
|
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
|
Address unique ID. |
Query parameters
No parameters.
Request fields
No request body.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Address unique ID. |
|
|
Address name. |
|
|
Country ID. |
|
|
City. |
|
|
Street address. |
|
|
Address zip code. |
|
|
Co-address. |
|
|
Address line. |
|
|
Country subentity. |
|
|
Party’s reference. |
|
|
Attribute that shows if the address is a legal address. |
|
|
Attribute that shows if the address is a recipient address. |
|
|
Attribute that shows if the address is a delivery address. |
|
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
Query parameters
No parameters.
Request fields
No request body.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Actual size of content array (number of items). |
|
|
Array of party identifier objects. |
|
|
Party identifier unique ID. |
|
|
Attribute that shows if the party identifier is a primary one. |
|
|
Party identifier type. |
|
|
Party identifier detailedType. |
|
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
Query parameters
No parameters.
Request fields
| Path | Type | Description |
|---|---|---|
|
|
Party identifier type. |
|
|
Party identifier value. |
|
|
Party identifier country ID. |
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Party identifier unique ID. |
|
|
Attribute that shows if the party identifier is a primary one. |
|
|
Party identifier type. |
|
|
Party identifier detailedType. |
|
|
Party identifier value. |
|
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
|
Party identifier unique ID. |
Query parameters
No parameters.
Request fields
No request body.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Party identifier unique ID. |
|
|
Attribute that shows if the party identifier is a primary one. |
|
|
Party identifier type. |
|
|
Party identifier detailedType. |
|
|
Party identifier value. |
|
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
Query parameters
| Parameter | Type | Description |
|---|---|---|
sort |
String |
Optional sorting parameter. The properties that can be specified for sorting are: 1. 2. |
Request fields
No request body.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Actual size of content array (number of items). |
|
|
Array of user objects. |
|
|
User unique ID. |
|
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
Query parameters
No parameters.
Request fields
| Path | Type | Description |
|---|---|---|
|
|
User name. |
|
|
User email address. |
|
|
User fax number. |
|
|
User phone number. |
|
|
User mobile phone number. |
Response fields
| Path | Type | Description |
|---|---|---|
|
|
User unique ID. |
|
|
User name. |
|
|
User email address. |
|
|
User fax number. |
|
|
User phone number. |
|
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
|
User unique ID. |
Query parameters
No parameters.
Request fields
No request body.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
User unique ID. |
|
|
User name. |
|
|
User email address. |
|
|
User fax number. |
|
|
User phone number. |
|
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
|
User unique ID. |
Query parameters
No parameters.
Request fields
No request body.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
User unique ID. |
|
|
User name. |
|
|
User email address. |
|
|
User fax number. |
|
|
User phone number. |
|
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
Query parameters
No parameters.
Request fields
No request body.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Actual size of content array (number of items). |
|
|
Array of payment means objects. |
|
|
Payment means unique ID. |
|
|
Name of the payment means type. |
|
|
Payment means subtype value. |
|
|
Payment means account value. |
|
|
SWIFT code. |
|
|
Identification of branch or office within institution, such as clearing no. |
|
|
Name of the payment service institution, such as the name of the bank |
|
|
Card network identification, such as Mastercard. |
|
|
Card holder name. |
|
|
Payment mandate. |
|
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
Query parameters
No parameters.
Request fields
| Path | Type | Description |
|---|---|---|
|
|
Name of the payment means type. |
|
|
Payment means subtype value. |
|
|
Payment means account value. |
|
|
SWIFT code. |
|
|
Identification of branch or office within institution, such as clearing no. |
|
|
Name of the payment service institution, such as the name of the bank |
|
|
Card network identification, such as Mastercard. |
|
|
Card holder name. |
|
|
Payment mandate. |
|
|
Payer financial account value. |
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Payment means unique ID. |
|
|
Name of the payment means type. |
|
|
Payment means subtype value. |
|
|
Payment means account value. |
|
|
SWIFT code. |
|
|
Identification of branch or office within institution, such as clearing no. |
|
|
Name of the payment service institution, such as the name of the bank |
|
|
Card network identification, such as Mastercard. |
|
|
Card holder name. |
|
|
Payment mandate. |
|
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
|
Payment means unique ID. |
Query parameters
No parameters.
Request fields
No request body.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Payment means unique ID. |
|
|
Name of the payment means type. |
|
|
Payment means subtype value. |
|
|
Payment means account value. |
|
|
SWIFT code. |
|
|
Identification of branch or office within institution, such as clearing no. |
|
|
Name of the payment service institution, such as the name of the bank |
|
|
Card network identification, such as Mastercard. |
|
|
Card holder name. |
|
|
Payment mandate. |
|
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
|
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
| Parameter | Description |
|---|---|
|
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. 2. 3. 4. 5. |
sort |
String |
Optional sorting parameter. The properties that can be specified for sorting are: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. |
Supports standard paging query parameters.
Request fields
No request body.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Page number. |
|
|
Actual size of content array (number of items). |
|
|
Total number of existing items. |
|
|
Total number of pages with current page size. |
|
|
Array of invoice objects. |
|
|
Invoice unique ID. |
|
|
Invoice type code. |
|
|
Type of invoice sending: |
|
|
Invoice status. |
|
|
Invoice number assigned by the sender. |
|
|
Name of the invoice sender. |
|
|
The invoice sender party identifier object array. |
|
|
Invoice date. |
|
|
Invoice due date. |
|
|
Date and time of the invoice arrival. |
|
|
Date and time of the invoice receiving by the receiving member. |
|
|
Date and time of changing the invoice status to |
|
|
Date and time of changing the invoice status to |
|
|
Date and time of changing the invoice status to |
|
|
Deprecated field superseded by |
|
|
Invoice currency represented as a three-letter ISO-4217 code. |
|
|
Total amount to pay including VAT. |
|
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
|
Invoice unique ID. |
Query parameters
No parameters.
Request fields
No request body.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Invoice unique ID. |
|
|
Invoice type code. |
|
|
Type of invoice sending: |
|
|
Type of invoice mode: currently only |
|
|
Invoice status. |
|
|
Invoice number assigned by the sender. |
|
|
Name of the invoice sender. |
|
|
The invoice sender party identifier object array. |
|
|
Invoice date. |
|
|
Invoice due date. |
|
|
Date and time of the invoice arrival. |
|
|
Date and time of the invoice receiving by the receiving member. |
|
|
Date and time of changing the invoice status to |
|
|
Date and time of changing the invoice status to |
|
|
Date and time of changing the invoice status to |
|
|
Deprecated field superseded by |
|
|
Invoice currency represented as a three-letter ISO-4217 code. |
|
|
Total amount to pay including VAT. |
|
|
Total amount excluding VAT. |
|
|
Total amount including VAT but excluding round off. |
|
|
Total prepaid amount. |
|
|
Number of the invoice attachments. |
|
|
Attribute that shows if the invoice rejection is forbidden per agreement with a sending operator. |
|
|
ID of another invoice that is considered as more recent version of this one. |
|
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
|
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
| Parameter | Description |
|---|---|
|
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. 2. 3. 4. 5. |
sort |
String |
Optional sorting parameter. The properties that can be specified for sorting are: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. |
Supports standard paging query parameters.
Request fields
No request body.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Page number. |
|
|
Actual size of content array (number of items). |
|
|
Total number of existing items. |
|
|
Total number of pages with current page size. |
|
|
Array of invoice objects. |
|
|
Invoice unique ID. |
|
|
Invoice type code. |
|
|
Type of invoice sending: |
|
|
Invoice status. |
|
|
Invoice number assigned by the sender. |
|
|
Name of the invoice sender. |
|
|
The invoice sender party identifier object array. |
|
|
Invoice date. |
|
|
Invoice due date. |
|
|
Date and time of the invoice arrival. |
|
|
Date and time of the invoice receiving by the receiving member. |
|
|
Date and time of changing the invoice status to |
|
|
Date and time of changing the invoice status to |
|
|
Date and time of changing the invoice status to |
|
|
Deprecated field superseded by |
|
|
Invoice currency represented as a three-letter ISO-4217 code. |
|
|
Total amount to pay including VAT. |
|
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
|
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.
| From | To |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
| Status | Name |
|---|---|
|
deliveredAt |
|
queriedAt |
|
invalidatedAt |
|
verifiedAt |
|
conditionallyAcceptedAt |
|
approvedAt |
|
paidAt |
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
|
Invoice unique ID. |
Query parameters
No parameters.
Request fields
| Path | Type | Description |
|---|---|---|
|
String |
New invoice status. |
|
Object |
Arbitrary user-defined status properties. |
|
Array |
Array of key-value pair objects. |
|
String |
Property name. A mandatory, non-blank, unique string, up to 255 characters in length. |
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
|
Invoice unique ID. |
Query parameters
No parameters.
Request fields
No request body.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Actual size of content array (number of items). |
|
|
Array of the invoice attachment objects. |
|
|
Attachment unique ID. |
|
|
Attachment file name. |
|
|
Attachment file size. |
|
|
Attachment content type. |
|
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
|
Invoice unique ID. |
|
Invoice attachment unique ID. |
Query parameters
No parameters.
Request fields
No request body.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Attachment unique ID. |
|
|
Attachment file name. |
|
|
Attachment file size. |
|
|
Attachment content type. |
|
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
|
Invoice unique ID. |
|
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:
-
Member must be active for any type of submissions.
-
To submit invoices as a supplier member must:
-
configure the restricted
sendingEnabledproperty and set it totrue -
configure payment means to have at least one payment means
-
have the ZIP code configured in the the legal address
-
-
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
| Parameter | Description |
|---|---|
|
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 |
|---|---|
|
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
memberIdpath parameter. -
Invoice intended for delivery to a recipient must be valid against the validation rules of the recipient.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Invoice submission ID. |
|
|
Invoice processing history. |
|
|
Number of returned records in the history. |
|
|
History records. |
|
|
Event date and time. |
|
|
Event type. |
|
|
Error type. |
|
|
Error text. |
|
|
Array of error strings describing the issues that occurred with the invoice upon processing, if any. |
|
|
Sending status. |
|
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
|
Invoice submission ID. |
Query parameters
No parameters.
Request fields
No request body.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Invoice submission ID. |
|
|
Invoice processing history. |
|
|
Number of returned records in the history. |
|
|
History records. |
|
|
Event date and time. |
|
|
Event type. |
|
|
Error type. |
|
|
Error text. |
|
|
Array of error strings describing the issues that occurred with the invoice upon processing, if any. |
|
|
Sending status. |
|
|
Sending status description. |
|
|
Receiving status. |
|
|
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
| Parameter | Description |
|---|---|
|
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 |
|---|---|
|
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
memberIdpath parameter. -
Invoice intended for delivery to a recipient must be valid against the validation rules of the recipient.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Invoice submission ID. |
|
|
Invoice processing history. |
|
|
Number of returned records in the history. |
|
|
History records. |
|
|
Event date and time. |
|
|
Event type. |
|
|
Error type. |
|
|
Error text. |
|
|
Array of error strings describing the issues that occurred with the invoice upon processing, if any. |
|
|
Sending status. |
|
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
|
Invoice submission ID. |
Query parameters
No parameters.
Request fields
No request body.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Invoice submission ID. |
|
|
Invoice processing history. |
|
|
Number of returned records in the history. |
|
|
History records. |
|
|
Event date and time. |
|
|
Event type. |
|
|
Error type. |
|
|
Error text. |
|
|
Array of error strings describing the issues that occurred with the invoice upon processing, if any. |
|
|
Sending status. |
|
|
Sending status description. |
|
|
Receiving status. |
|
|
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®istry=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 Either |
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 Ignored if |
city |
String |
Recipient city. It may be used as an additional recipient filter when the The Ignored if |
id |
String |
Party identifier of the recipient. Either |
registry |
Boolean |
Flag indicating that API should search for recipients in the e-Invoice Connect registry. If neither If both |
peppol |
Boolean |
Flag indicating that API should search for recipient in the Peppol registry. If both |
Request fields
No request body.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Array of recipient objects. |
|
|
Number of returned recipients. |
|
|
An object that contains a collection of recipient’s party identifiers. |
|
|
Number of recipient’s party identifiers in the collection. |
|
|
Collection of recipient’s party identifiers |
|
|
Country ID. |
|
|
Identifier type. |
|
|
Identifier value. |
|
|
Recipient legal name. |
|
|
Recipient address name. |
|
|
Country ID. |
|
|
Country subentity. |
|
|
Zip code. |
|
|
City. |
|
|
Street address. |
|
|
Address party reference. |
|
|
Address line. |
|
|
Address party identifier. |
|
|
Country ID. |
|
|
Identifier type. |
|
|
Address party identifier value. |
Example request
$ curl 'https://web.invoiceportal.net/api/recipients?name=recipient-name&country=SE&city=Stockholm&id=123456-6789®istry=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 |
|---|---|---|
|
|
Request ID to monitor the request status and get statistic report |
|
|
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
| Parameter | Description |
|---|---|
|
Unique request ID. |
Query parameters
No parameters.
Request fields
No request body.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Request ID to monitor the request status and get statistic report |
|
|
Request status. |
|
|
Invoice statistics report. |
|
|
Number of returned records in the statistics report. |
|
|
Invoice statistics report records. |
|
|
Member ID. |
|
|
Number of invoices submitted by member via API. |
|
|
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. 2. 3. 4. |
Supports standard paging query parameters.
Request fields
No request body.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Page number. |
|
|
Actual size of content array (number of items). |
|
|
Total number of existing items. |
|
|
Total number of pages with current page size. |
|
|
Array of requests. |
|
|
Request ID, a unique positive integer. |
|
|
Request type: |
|
|
Request status. |
|
|
Request parameterization with info about a member. |
|
|
Request parameterization with info about a user. |
|
|
Processing job ID created to process uploaded data. |
|
|
Processing job status. |
|
|
Request creation date/time. |
|
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
Query parameters
No parameters.
Request fields
| Path | Type | Description |
|---|---|---|
|
|
Optional field containing Integrated service request ID. |
|
|
Optional flag that indicates whether party data is sent in multiple parts. |
|
|
Object that contains member parties. |
|
|
Actual size of parties array (number of items). |
|
|
Collection of member party objects. |
|
|
Object that contains address. |
|
|
Zip code. |
|
|
Co-address. |
|
|
Country subentity. |
|
|
City. |
|
|
Street address. |
|
|
Address name. |
|
|
Address line. |
|
|
Party’s reference. |
|
|
Address country ID. |
|
|
Flag that indicates that this customer will receive invoice PDF in B&W. |
|
|
Object that contains a collection of party identifiers. |
|
|
Party identifier. |
|
|
Party identifier country. |
|
|
Party identifier type. |
|
|
Party identifier detailed type. |
|
|
Party identifier country ID. |
|
|
Information about supplier´s current business system. |
|
|
Party record locale for invitation. 2 capital letter ISO 639-1 code. |
|
|
Comment on next step of action to be taken on the supplier. |
|
|
Object that contains a collection of payment means. |
|
|
Bank Identifier Code (same as SWIFT-address). For Sweden 8 capital letters. |
|
|
The name of the financial institution responsible for the account. |
|
|
4-digit bank identification number. |
|
|
Payment means type: |
|
|
Bank account . |
|
|
Flag that indicates whether it is possible to send invitations to this party. |
|
|
Object that contains contact information. |
|
|
Contact e-mail address. |
|
|
Contact phone number. |
|
|
Contact name. |
|
|
Number of invoices sent per year. |
|
|
Comment text. |
|
|
Deadline for sending paper invoices. |
|
|
The record’s ID that can be used to match records from multiple uploads. |
|
|
Date when the next action should be taken on the supplier. |
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Party upload unique ID. |
|
|
Upload job status. |
|
|
Flag indicating whether party data is sent in multiple parts. |
|
|
Upload creation date/time. |
|
|
Last modification date/time. |
|
|
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. |
|
|
Object that contains a collection of upload parts. |
|
|
Number of upload parts in the collection. |
|
|
Array of upload parts. |
|
|
Upload part unique ID. |
|
|
Date and time of the upload part creation. |
|
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
|
Unique party upload ID. |
Query parameters
No parameters.
Request fields
No request body.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Party upload unique ID. |
|
|
Upload job status. |
|
|
Flag indicating whether party data is sent in multiple parts. |
|
|
Upload creation date/time. |
|
|
Last modification date/time. |
|
|
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. |
|
|
Object that contains a collection of upload parts. |
|
|
Number of upload parts in the collection. |
|
|
Array of upload parts. |
|
|
Upload part unique ID. |
|
|
Date and time of the upload part creation. |
|
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
|
Unique party upload ID. |
Query parameters
No parameters.
Request fields
| Path | Type | Description |
|---|---|---|
|
|
Flag that indicates whether this part finishes multipart upload. |
|
|
Object that contains member parties. |
|
|
Actual size of parties array (number of items). |
|
|
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 |
|---|---|---|
|
|
Upload part unique ID. |
|
|
Upload part creation date/time. |
|
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
|
Unique party upload ID. |
Query parameters
No parameters.
Request fields
No request body.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Actual size of content array (number of items). |
|
|
Array of upload part objects. |
|
|
Upload part unique ID. |
|
|
Upload part creation date/time. |
|
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
|
Unique party upload ID. |
|
Unique party upload part ID. |
Query parameters
No parameters.
Request fields
No request body.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Upload part unique ID. |
|
|
Upload part creation date/time. |
|
|
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 |
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 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
| Parameter | Description |
|---|---|
|
Unique member ID. |
Query parameters
No parameters.
Request fields
| Path | Type | Description |
|---|---|---|
|
|
Clearance on/off setting. |
|
|
Retrieval on/off setting. |
|
|
Optional field to be used for members which country’s clearance provider requires Customer Token. |
Response fields
| Path | Type | Description |
|---|---|---|
|
|
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 Sunset date: February 25, 2026 |
GET /api/members/43/onboarding/11111111-1111-1111-1111-111111111111 HTTP/1.1
Path parameters
| Parameter | Description |
|---|---|
|
Unique member ID. |
|
Unique API request ID from Clearance service provider. |
Query parameters
No parameters.
Request fields
No request body.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
API request ID from Clearance service provider. |
|
|
API request status from Clearance service provider. |
|
|
Description of an API request status from Clearance service provider. |
|
|
API operation type from Clearance service provider. |
|
|
Object that contains API request errors from Clearance service provider if any. |
|
|
Size of errors 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
| Parameter | Description |
|---|---|
|
Unique member ID. |
Query parameters
No parameters.
Service Types
The following service types are supported:
| Service ID | Description | Configurable | Environments |
|---|---|---|---|
|
Invoice clearance service |
Yes |
live, test |
|
Invoice retrieval service |
Yes |
live, test |
|
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
liveortestenvironment, 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 |
|---|---|
|
Request successfully submitted for asynchronous processing |
|
No changes needed - requested state matches current state |
|
Validation error or business rule violation |
|
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
| Parameter | Description |
|---|---|
|
Unique member ID. |
|
Service operation unique ID. |
Query parameters
No parameters.
Request fields
No request body.
Response fields
| Path | Type | Description |
|---|---|---|
|
|
Unique operation request ID. |
|
|
Object that contains service configurations. |
|
|
Size of service array. |
|
|
Collection of requested services. |
|
|
Service identifier: clearance, retrieval, full-buyer-mode. |
|
|
Live environment configuration. |
|
|
Whether service is enabled in live environment. |
|
|
Test environment configuration. |
|
|
Whether service is enabled in test environment. |
|
|
Operation type: add, update, remove |
|
|
Request status: pending, completed, failed |
|
|
Submission timestamp. |
|
|
Completion timestamp. |
|
|
Object that contains error objects. |
|
|
Size of error array. |
|
|
Array of error objects. |
|
|
Error message. |
Property op describes the operation type and supports the following values:
| Value | Description |
|---|---|
|
Initial enablement of services. |
|
Update or enablement of additional services. |
|
Disabling of services. |
Property status describes the processing status and supports the following values:
| Value | Description |
|---|---|
|
The request is still being processed. |
|
The request has been successfully completed. |
|
The request processing has failed. Check the |
Property services is an array of service configurations. Each service includes:
-
serviceId- identifies the service type:clearance,retrieval, orfull-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 |
|---|---|---|
|
|
Array of audit records. |
|
|
Number of returned audit records. |
|
|
Event time |
|
|
API name that was used to change the member |
|
|
Event type |
|
|
ID of the changed member |
|
|
ID of the changed or removed sub-object (like address, party identifier, etc.). |
|
|
ID of the created sub-object (like address, party identifier, etc.) |
|
|
Event result (Success or Failure). |
|
|
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.
| Claim | Description | Meaning |
|---|---|---|
iss |
Issuer |
Name of the product that issues the assertion. For example, 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 |
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.
| Name | Description |
|---|---|
grant_type |
OAuth2 grant type. Must be |
client_id |
Client ID as registered in e-Invoice Connect. |
client_assertion_type |
Type of the client assertion. Must be |
client_assertion |
The client assertion. A signed JWT. |
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
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.
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.
-
Make sure that
apiEnabledis set totrue. -
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.
| Endpoint | Description |
|---|---|
|
Endpoint discovery. |
|
Authorization endpoint. |
|
Token endpoint. |
|
JSON Web Key set endpoint. |
Integrated service registers e-Invoice Connect as a client and stores its
-
redirect URIprovided by e-Invoice Connect -
service IDprovided by Integrated service and given to e-Invoice Connect (UUID value) -
client IDprovided by Integrated service and given to e-Invoice Connect -
client keyprovided 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.
| Claim | Description |
|---|---|
|
Issuer identifier, which is a URL that uses the "https" scheme and has no query or fragment components. |
|
URL of the authorization endpoint. |
|
URL of the token endpoint. |
|
URL of the JWK Set document. |
|
Must include |
The successful flow should look like this:
-
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.
-
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_idService ID that uniquely defines Integrated service for e-Invoice Connect. A UUID value.
member_ide-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 -
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_postThe
scopeparameter 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
promptparameter 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 -
e-Invoice Connect redirects the user’s browser to hit the Integrated service
/authorizeendpoint. -
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.
-
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 -
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 issIssuer
Integrated service Client ID
subSubject
Client for which the assertion is issued. This must be the client ID.
audAudience
Receiver of the assertion. Token endpoint issued by the identity provider.
expExpiration Time
Time until which the assertion is valid.
nbfNot Before
Time before which the assertion is not valid.
iatIssued At
Time when the assertion is issued.
jtiJWT 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_typeOAuth2 grant type. Must be
client_credentials.client_idIntegrated service Client ID.
client_assertion_typeType of the client assertion. Must be
urn:ietf:params:oauth:client-assertion-type:jwt-bearer.client_assertionThe 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 -
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 issIssuer
Identity provider Issuer identifier
subSubject
Integrated service unique user GUID.
audAudience
Client for which the assertion is issued. This must be the Integrated service client ID.
expExpiration Time
Time until which the assertion is valid.
nonceNonce
Short-living one-time-use nonce previously issued by e-Invoice Connect
Member ID
Custom claim for e-Invoice Connect Member ID verification
nameUser Name
User name
emailEmail
User email
preferred_usernameName
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.
| 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.
| 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.
?q={"type":"VAT","countryId":"US","identifier":"XYZ"}
More complex search criteria can use 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 |
|
BE:EN |
|
BE:VAT |
|
DK:CVR |
|
DK:DIGST |
|
DK:P |
|
DK:SE |
|
DK:ERST |
|
FI:VAT |
|
FI:OVT |
|
FI:OVT2 |
|
FI:YT |
|
FR:SIRENE |
|
FR:SIRET |
|
FR:VAT |
|
FR:ROUTING |
|
FR:SUFFIX |
|
IT:IVA |
|
IT:CFI |
|
NO:ORGNR |
|
NO:VAT |
|
SE:ORGNR |
|
SE:VAT |
|
DUNS |
|
GLN |
|
IBAN |
|
INTID |
Free format depending on particular detailed type or company requirements |
GSRN |
|
ZZZ |
|
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 |
|
|
Credit/bank card |
|
- |
Cash |
|
|
Direct debit |
|
|
Danish Joint Payment Form, FIK |
|
|
Danish giro |
|
|
International Bank Account Number |
|
|
Payment mandate |
|
|
Swedish BankGiro |
|
|
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.
?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.
| Code | Name | Description |
|---|---|---|
|
Credit |
Credit note invoice |
|
Debit |
Debit invoice |
|
Corrected invoice |
Commercial invoice that includes revised information differing from an earlier submission of the same invoice |
|
Payment in advance |
Advance/down payment on invoice |
|
Advance on fee |
Advance/down payment on fee |
|
Debit Note |
Document/message for providing debit information to the relevant party |
|
Fee |
Fee |
Invoice type codes starting from ITTD16 to ITTD27 are for documents that are subjects for e-reporting.
| Code | Name | Description |
|---|---|---|
|
Reverse charge |
(For Italy only) Reverse charge internal invoice integration |
|
Self-invoicing |
(For Italy only) Invoice Integration / self-invoicing for the purchase services from abroad |
|
Intra-EU goods |
(For Italy only) Invoice Integration for purchase of intra-EU goods |
|
Self-invoicing |
(For Italy only) Integration/self-invoicing for purchase of goods (ex art.17 c.2 DPR 633/72) |
|
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) |
|
Self-invoicing |
(For Italy only) Self-invoicing for splaphoning |
|
Extraction of goods |
(For Italy only) Extraction of goods from the VAT warehouse |
|
Extraction of goods |
(For Italy only) Extraction of goods from the VAT warehouse with payment of VAT |
|
Deferred invoice |
(For Italy only) Deferred invoice (ex art.21, c.4, lett. a) |
|
Deferred invoice |
(For Italy only) Deferred invoice (ex art.21, c.4, third period lett. b) |
|
Internal transfer |
(For Italy only) Sale of depreciable assets and for internal transfers (ex art.36 DPR 633/72) |
|
Self-invoicing |
(For Italy only) Self invoicing for self-consumption or for free charge invoice with VAT application |
|
Purchases from San Marino |
(For Italy only) Purchases from San Marino with VAT (paper invoice) |
|
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 |
|---|---|---|
|
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 |
|
Settlement invoice |
(For Poland only) An invoice issued in connection with art. 106f sec. 3 of the act |
|
Simplified invoice |
(For Poland only) An invoice issued in connection to article 106e sec. 5 item 3 of the act |
|
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 |
|
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.
| Status | Description |
|---|---|
|
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. |
|
An invalid invoice that is initially processed by the service but has not passed validation and has errors. |
|
An invalid invoice that has been rejected either automatically or by an explicit request to reject it. |
|
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.
| Status | Description |
|---|---|
|
Indicates that the invoice has been received but not yet processed. |
|
Indicates that the invoice is on hold due to a query or pending clarification. |
|
Indicates that the invoice was identified as incorrect by the recipient during business validation. |
|
Indicates that the invoice details have been verified and confirmed. |
|
Indicates that the invoice is accepted with conditions or pending adjustments. |
|
Indicates that the invoice has been approved for payment. |
|
Indicates that the invoice has been fully paid. This status is final. |
|
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.
| Status | Description |
|---|---|
|
Awaiting state, not expired, no response received yet. |
|
Awaiting state, not expired, response received but multipart data is being awaited. |
|
Response received. |
|
Response received but possibly was invalid. |
|
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.
| Status | Description |
|---|---|
|
Upload is accepted. |
|
Upload is accepted but multipart data is being awaited. |
|
Multipart data not received in a timely manner. |
|
Processing job started. |
|
Processing failed. |
|
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.
| Attachment type | Description |
|---|---|
|
Regular attachment related to the invoice, can be a number of formats (pdf, xml etc.). |
|
Original invoice document. |
|
Legal document provided by clearance operator. |
|
Confirmation of receipt. An acknowledgement receipt issued by government, operator or clearance service provider. |
|
Image of an invoice (usually a PDF representation) provided by clearance service provider/operator. |
|
Additional delivery or processing information provided by a clearance operator. |
|
Delivery confirmation notice provided by a clearance operator signifying that the invoice was delivered to a recipient. |
|
Rejection notification provided by a clearance operator. |
|
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.
| Status | Description |
|---|---|
|
Request is pending. |
|
Request is processed and statistic report is completed. |
|
Processing failed. |