Qvalia Developer Tools

Sections

Qvalia Developer Tools

Access APIs and technical requirements and get connected in no time!

Our APIs and onboarding team ensures a swift integration into your systems and processes. Qvalia integrates with major ERPs and accounting software.

All Qvalia API’s are REST based and we use both JSON and XML request and response payloads. All message formats are based upon UBL and our JSON format is a representation of the XML called UBL JSON by OASIS Open group. We strive to use the REST standards for response codes and “verbs” (e.g. GET and POST).

The Qvalia API has two separate endpoints for our Production and a Test (Quality Assurance) environment.

You must obtain a Qvalia account prior to using (or testing) the API!

Authentication

We use API keys for the Authentication of requests. You can get your API key from our Support team and you’ll get a separate key and URL for Production and Test environments. All requests are using HTTPS with a minimum of TLS 1.2

Parameters Some of our API's has the possibility to provide parameters for e.g. filtering. These parameters are sent as a query string and the options are listed per endpoint under the technical API documentation.

Error handling

We offer various error codes based upon the type of error, along with a descriptive error message (in JSON or XML). Like any other API codes in the range of 2xx is a successful request while a status of 4xx indicates an error that occurred because of the data sent or a parameter missing/in error. In the 5xx range indicate an error with our server/service and you should contact the Qvalia Support if you ever would end up getting any 5xx code as response.

Support

You can always contact Qvalia Support through your Qvalia Sales representative or by using our Support e-mail (see your Qvalia Account for details).

Coding

We use Node.js inhouse, and JSON is our format of choice, however, as many ERP and Financial systems are using XML we have opted to add support for both formats in our API. You can freely swap between XML and JSON, just by using different headers:

Omitting accept or content-type headers, we'll default to JSON!

XML

JSON (Default)

GET requests:

accept: application/xml

POST requests:

content-type: application/xml

GET requests:

accept: application/json

POST requests:

content-type: application/json

Node.js sample code for calling the API for sending a JSON request could look like:

JAVASCRIPT
async function httpsPost(registrationNumber, data) {
return new Promise(async (resolve, reject) => {
const options = {
hostname: 'api.qvalia.com',
path: `/transaction/${registrationNumber}/invoices/outgoing`,
port: 443,
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: '412ee738......d3e469a7'
}
};
const body = [];
const req = https.request(options, res => {
res.on('data', d=> {
body.push(d);
});
res.on('end', () => {
resolve(body);
});
});
req.on('error', e => {
reject(e);
});
req.write(JSON.stringify(data));
req.end();
});
}

API

We follow a standard API REST-ish interface on our endpoints and try to adhere to the standard/common return codes and behaviors of any standard API.

We are using the UBL standard messaging formats for our integrations through the API, but you should note that we only use a subset of UBL as specified by Peppol (peppol.eu)

As many of Qvalia's services are compatible with Peppol the data validation is also done using the Peppol standards. For example the Invoice endpoint strictly follows BIS Billing 3.0, https://docs.peppol.eu/poacc/billing/3.0/

This means that, although the JSON format is based upon UBL JSON we only allow the subset stated from https://docs.peppol.eu/poacc/billing/3.0/ for the Invoice and CreditNote message types, see the “Syntax” section!

For Order and OrderResponse you'll find the documentation at: https://docs.peppol.eu/poacc/upgrade-3/

Authentication

We use API keys for the Authentication of requests. You can get your API key from our Support team and you’ll get a separate key and URL for Production and Test environments. All requests are using HTTPS with a minimum of TLS 1.2

Each request made to the API will contain your registration number which is your account identifier for your Qvalia account. Your account identifier will be provided to you from the Support team during the onboarding process.

Your requests must use the registration number as e.g. POST /{registration_number}/invoices/outgoing

UBL JSON Representation standard

For the JSON representation of the format please refer to http://docs.oasis-open.org/ubl/UBL-2.1-JSON/v2.0/UBL-2.1-JSON-v2.0.html

UBL JSON samples and schemas can be found here: http://docs.oasis-open.org/ubl/UBL-2.1-JSON/v2.0/cnd01/

UBL XML Representation standard

For the XML representation, https://docs.oasis-open.org/ubl/UBL-2.1.html

The UBL version 2.1 has been selected due to the many compliant standars with UBL 2.1, mainly the Peppol standard (peppol.eu).

XML samples and XML schemas can be found here: http://docs.oasis-open.org/ubl/os-UBL-2.1/

Required

As the UBL JSON schema is fairly big, we only list the required attributes in the sample request and response data. You can browse the complete JSON schema viewing the UBL-Invoice-2.1.

Note the difference in objects below, only IssueDate is required, and thus IssueTime won't be listed in the sample request/responses:

Attachments

Often our customers wants to add, or request, attached documents to their messages, e.g. their invoices.

We support all the same attachments as Peppol does: Peppol media types

See more under Attachments to messages

SFTP Integration

Qvalia is also offering integration through SFTP. If you have opted for the SFTP integration please read more here: SFTP Integration

JSON Sample 1

Invoiceobject

Show child attributes

XML Sample

_declarationstring

Show child attributes

Invoiceobject

Show child attributes

Base URL

Production server.:

https://api.qvalia.com

Sandbox server for testing.:

https://api-test.qvalia.com

Language Box

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 { "Invoice": { "$": { "xmlns:cbc": "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2", "xmlns:ccts-cct": "urn:un:unece:uncefact:data:specification:CoreComponentTypeSchemaModule:2", "xmlns:udt": "urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2", "xmlns:sdt": "urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2", "xmlns:cac": "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2", "xmlns:ccts": "urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2", "xmlns:ext": "urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2", "xmlns:ds": "http://www.w3.org/2000/09/xmldsig#", "xmlns": "urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" }, "cbc:CustomizationID": [ { "_": "urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0" } ], "cbc:ProfileID": [ { "_": "urn:fdc:peppol.eu:2017:poacc:billing:01:1.0" } ], "cbc:ID": [ { "_": "123456789-001" } ], "cbc:IssueDate": [ { "_": "2022-04-25" } ], "cbc:DueDate": [ { "_": "2022-05-24" } ], "cbc:InvoiceTypeCode": [ { "_": "380" } ], "cbc:Note": [ { "_": "TEST INVOICE!!!!" } ], "cbc:TaxPointDate": [ { "_": "2022-04-25" } ], "cbc:DocumentCurrencyCode": [ { "_": "SEK" } ], "cbc:BuyerReference": [ { "_": "Buyer Person" } ], "cac:OrderReference": [ { "cbc:ID": [ { "_": "12345" } ] } ], "cac:DespatchDocumentReference": [ { "cbc:ID": [ { "_": "161593" } ] } ], "cac:AccountingSupplierParty": [ { "cac:Party": [ { "cbc:EndpointID": [ { "_": "5567321707", "$": { "schemeID": "0007" } } ], "cac:PartyIdentification": [ { "cbc:ID": [ { "_": "5567321707" } ] } ], "cac:PartyName": [ { "cbc:Name": [ { "_": "Qvalia Group AB" } ] } ], "cac:PostalAddress": [ { "cbc:StreetName": [ { "_": "Box 33" } ], "cbc:CityName": [ { "_": "Stockholm" } ], "cbc:PostalZone": [ { "_": "12030" } ], "cac:Country": [ { "cbc:IdentificationCode": [ { "_": "SE" } ] } ] } ], "cac:PartyTaxScheme": [ { "cbc:CompanyID": [ { "_": "SE556732170701" } ], "cac:TaxScheme": [ { "cbc:ID": [ { "_": "VAT" } ] } ] }, { "cbc:CompanyID": [ { "_": "Godkänd för F-skatt" } ], "cac:TaxScheme": [ { "cbc:ID": [ { "_": "TAX" } ] } ] } ], "cac:PartyLegalEntity": [ { "cbc:RegistrationName": [ { "_": "Qvalia Group AB" } ], "cbc:CompanyID": [ { "_": "5567321707", "$": { "schemeID": "0007" } } ], "cbc:CompanyLegalForm": [ { "_": "Säte Stockholm SE" } ] } ], "cac:Contact": [ { "cbc:Name": [ { "_": "Qvalia Support" } ], "cbc:Telephone": [ { "_": "01860412345" } ], "cbc:ElectronicMail": [ { "_": "info@qvalia.com" } ] } ] } ] } ], "cac:AccountingCustomerParty": [ { "cac:Party": [ { "cbc:EndpointID": [ { "_": "Tester9000", "$": { "schemeID": "0195" } } ], "cac:PartyIdentification": [ { "cbc:ID": [ { "_": "1234567890" } ] } ], "cac:PartyName": [ { "cbc:Name": [ { "_": "TEST" } ] } ], "cac:PostalAddress": [ { "cbc:StreetName": [ { "_": "Box 127" } ], "cbc:CityName": [ { "_": "Uppsala" } ], "cbc:PostalZone": [ { "_": "75104" } ], "cac:Country": [ { "cbc:IdentificationCode": [ { "_": "SE" } ] } ] } ], "cac:PartyLegalEntity": [ { "cbc:RegistrationName": [ { "_": "TEST" } ], "cbc:CompanyID": [ { "_": "1234567890", "$": { "schemeID": "0007" } } ] } ], "cac:Contact": [ { "cbc:Name": [ { "_": "Test Tester" } ], "cbc:Telephone": [ { "_": "0123456" } ], "cbc:ElectronicMail": [ { "_": "leverantorsfaktura@sverige.se" } ] } ] } ] } ], "cac:Delivery": [ { "cbc:ActualDeliveryDate": [ { "_": "2021-08-24" } ], "cac:DeliveryLocation": [ { "cac:Address": [ { "cbc:StreetName": [ { "_": "Street 106" } ], "cbc:CityName": [ { "_": "Västero" } ], "cbc:PostalZone": [ { "_": "73364" } ], "cac:AddressLine": [ { "cbc:Line": [ { "_": "Tester Test" } ] } ], "cac:Country": [ { "cbc:IdentificationCode": [ { "_": "SE" } ] } ] } ] } ] } ], "cac:PaymentMeans": [ { "cbc:PaymentMeansCode": [ { "_": "30" } ], "cac:PayeeFinancialAccount": [ { "cbc:ID": [ { "_": "55677788" } ], "cac:FinancialInstitutionBranch": [ { "cbc:ID": [ { "_": "SE:BANKGIRO" } ] } ] } ] }, { "cbc:PaymentMeansCode": [ { "_": "30" } ], "cac:PayeeFinancialAccount": [ { "cbc:ID": [ { "_": "SE6250000000053123456784" } ], "cac:FinancialInstitutionBranch": [ { "cbc:ID": [ { "_": "ESSESESS" } ] } ] } ] }, { "cbc:PaymentMeansCode": [ { "_": "30" } ], "cac:PayeeFinancialAccount": [ { "cbc:ID": [ { "_": "12345025134" } ], "cac:FinancialInstitutionBranch": [ { "cbc:ID": [ { "_": "ESSESESS" } ] } ] } ] } ], "cac:PaymentTerms": [ { "cbc:Note": [ { "_": "30 dagar netto" } ] } ], "cac:TaxTotal": [ { "cbc:TaxAmount": [ { "_": "30.00", "$": { "currencyID": "SEK" } } ], "cac:TaxSubtotal": [ { "cbc:TaxableAmount": [ { "_": "120.00", "$": { "currencyID": "SEK" } } ], "cbc:TaxAmount": [ { "_": "30.00", "$": { "currencyID": "SEK" } } ], "cac:TaxCategory": [ { "cbc:ID": [ { "_": "S" } ], "cbc:Percent": [ { "_": "25.00" } ], "cac:TaxScheme": [ { "cbc:ID": [ { "_": "VAT" } ] } ] } ] } ] } ], "cac:LegalMonetaryTotal": [ { "cbc:LineExtensionAmount": [ { "_": "120.00", "$": { "currencyID": "SEK" } } ], "cbc:TaxExclusiveAmount": [ { "_": "120.00", "$": { "currencyID": "SEK" } } ], "cbc:TaxInclusiveAmount": [ { "_": "150.00", "$": { "currencyID": "SEK" } } ], "cbc:PayableAmount": [ { "_": "150.00", "$": { "currencyID": "SEK" } } ] } ], "cac:InvoiceLine": [ { "cbc:ID": [ { "_": "1" } ], "cbc:Note": [ { "_": "Delivery reference: 161593" } ], "cbc:InvoicedQuantity": [ { "_": "1", "$": { "unitCode": "EA" } } ], "cbc:LineExtensionAmount": [ { "_": "120.00", "$": { "currencyID": "SEK" } } ], "cac:Item": [ { "cbc:Name": [ { "_": "Piké, FT, svart Herr.4XL" } ], "cac:SellersItemIdentification": [ { "cbc:ID": [ { "_": "001,FT-1-4XL" } ] } ], "cac:ClassifiedTaxCategory": [ { "cbc:ID": [ { "_": "S" } ], "cbc:Percent": [ { "_": "25.00" } ], "cac:TaxScheme": [ { "cbc:ID": [ { "_": "VAT" } ] } ] } ] } ], "cac:Price": [ { "cbc:PriceAmount": [ { "_": "120.00", "$": { "currencyID": "SEK" } } ] } ] } ] } }

Error Codes

200 - OK

Everything worked as expected

204 - No content

Everything worked as expected, but we didn't find any data to return

400 - Invalid request

Invalid parameters from client

401 - Unauthorized

Unauthorized. Check your API key

403 - Forbidden

The API key doesn't have permissions to perform the request.

404 - Not Found

The requested resource does not exist. This can be either the URI, or query parameters.

409 - Conflict

The request cause some conflict, normally a duplicate

422 - Unprocessable Entity

The posted data is invalid, in the wrong format or missing

500 - Internal error

Internal Server Error (It's not you, it's us)

JSON/XML or JSON to XML

As we support both the Peppol UBL and XML standards you can freely choose between then, and even mix them, with creating a message as XML but fetching it using JSON, or the other way round.

The response, in JSON, will always include the three latest messages, per default. Using XML you always only get one (as there's no "array" function for XML).

With JSON data we add the integrationId attribute (the unique identifier in our DB) into the JSON object, as, with JSON, you can get an array of objects and then each object has it's own unique integrationId.

With XML we only return one message at a time in the original XML format and because of this the integrationId will be returned as a HTTP response header (and please note that HTTP headers are case-insensitive, meaning the returned ID will be integrationidin all lowercase letters!)

Transformation between JSON and XML

Our API is developed closely to the UBL and Peppol specifications why we've opted to include both the XML and JSON representations of the formats.

The two representations are "interchangeble" through a transform but if you are a "Node.js" shop you should opt for the JSON format. Other programming languages might have an easier time to work with XML instead.

There is a limitation in XML as there is no batch function for XML, meaning the XML format only supports one invoice per request!

Using the npm module xml2js you can transform between JSON and XML as the format is bi-directional.

JAVASCRIPT

javascript
Select...
const xml2js = require('xml2js');
// Convert from JSON ->> XML
const convertUblJsonToUblXml = async (json) => {
const builder = new xml2js.Builder();
return builder.buildObject(json);
};
// Convert from XML (string) ->> JSON
const convertUblXmlToUblJson = async (xmlString) => {
const parser = new xml2js.Parser({ explicitArray: true, explicitCharkey: true });
return parser.parseStringPromise(xmlString);
};

Limit

The XML has no “envelope” so we only ever return one message, meaning the limit parameter is set to 1. Using JSON you can set any limit you like, but the response size is limited to 6 MB.

For JSON, we return the integrationId as part of the message, while with XML you'll find it as a returned HTTP header named integrationId. When you do a POST (creating something) we return the message about the message created along with the integrationId.

The integrationId is the unique identifier for the message in our database and you can store that as an external permanent link to the message with us.

Attachments to messages

Often our customers wants to add, or request, attached documents to their messages, e.g. their invoices.

We support all the same attachments as Peppol does: Peppol media types

SUPPORTED FILE TYPES

Documents

application/pdf

Images

image/png image/jpeg

Text

text/csv

Spreadsheet

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet application/vnd.oasis.opendocument.spreadsheet

Technical details

Any attachment has to be base64 encoded and added under the AdditionalDocumentReference element; https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/cac-AdditionalDocumentReference/cac-Attachment/

JSON

XML

json
Select...
"AdditionalDocumentReference":[{
"ID":[{"_":"InvocieSpecification01"}],
"DocumentType":[{"_":"Specification"}],
"Attachment":[{
"EmbeddedDocumentBinaryObject":[
{
"_":"UjBsR09EbGhjZ0dTQUxNQUFBUUNBRU1tQ1p0dU1GUXhEUzhi",
"mimeCode":"application/pdf",
"filename":"InvocieSpecification01.pdf"
}
]
}]
}]
xml
Select...
<cac:AdditionalDocumentReference>
<cbc:ID>InvocieSpecification01</cbc:ID>
<cac:Attachment>
<cbc:EmbeddedDocumentBinaryObject mimeCode="application/pdf" filename="InvocieSpecification01.pdf">UjBsR09EbGhjZ0dTQUxNQUFBUUNBRU1tQ1p0dU1GUXhEUzhi</cbc:EmbeddedDocumentBinaryObject>
</cac:Attachment>
</cac:AdditionalDocumentReference>

Invoice APIs

APIs related to invoice handling

Endpoints

GET
POST
GET
GET
POST

Credit Note APIs

APIs related to credit note handing

Endpoints

GET
POST
GET
GET
POST

Order APIs

APIs related to order handing

Endpoints

GET
POST
GET
GET
POST

Order Response APIs

APIs related to order response handing

Endpoints

GET
POST
GET
GET
POST

Order Change APIs

APIs related to order change handing

Order Change is part of Advanced Ordering 3.0: https://docs.peppol.eu/poacc/upgrade-3/profiles/65-advanced-ordering/

Message Syntax: https://docs.peppol.eu/poacc/upgrade-3/syntax/OrderChange/tree/

Endpoints

GET
POST
GET
GET
POST

Order Cancellation APIs

APIs related to order cancellation handing

Order Change is part of Advanced Ordering 3.0: https://docs.peppol.eu/poacc/upgrade-3/profiles/65-advanced-ordering/

Message Syntax: https://docs.peppol.eu/poacc/upgrade-3/syntax/adv-order-cancellation-3.0/tree/

Endpoints

GET
POST
GET
GET
POST

Catalogue APIs

APIs related to catalogue handing

Endpoints

GET
POST
GET
GET
POST

Despatch Advice

APIs related to catalogue handing

Endpoints

GET
POST
GET
GET
POST
GET

Account Functions

A collection of endpoints where Qvalia account information is gathered, such as Invoice status, and automation tasks, e.g. creating an outgoing Invoice from an incoming Order.

Endpoints

POST
POST

Enrichment API

This documentation covers only Enrichment endpoint. Please use this alongside Qvalia API documentation at https://api.qvalia.com. API for uploading and enriching invoices (PDF, XML - later). PDFs are converted to digital format and presented as a Peppol XML document. Supports single and batch file processing with asynchronous polling.

Base URL

Production server.:

https://api.qvalia.com

Sandbox server for testing.:

https://api-test.qvalia.com

Language Box

Sample Data

As the request and response sample data are quite big, and scrolling through each sample on every endpoint would get quite tedious, we've opted to add sample data for the various messages here instead of in the actual Endpoint data.

Regardless if you are POST'in or GET'ing data the message structure of the messages will be the same.

As stated in the API section of the documentation, and under JSON/XML or JSON to XML all our transaction messages are bidirectional and can be transformed to/from JSON/XML.f

JSON

XML

json
Select...
{
"Invoice": {
"$": {
"xmlns:cbc": "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2",
"xmlns:ccts-cct": "urn:un:unece:uncefact:data:specification:CoreComponentTypeSchemaModule:2",
"xmlns:udt": "urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2",
"xmlns:sdt": "urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2",
"xmlns:cac": "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2",
"xmlns:ccts": "urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2",
"xmlns:ext": "urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2",
"xmlns:ds": "http://www.w3.org/2000/09/xmldsig#",
"xmlns": "urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
},
"cbc:CustomizationID": [
{
"_": "urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0"
}
],
"cbc:ProfileID": [
{
"_": "urn:fdc:peppol.eu:2017:poacc:billing:01:1.0"
}
],
"cbc:ID": [
{
"_": "23000"
}
],
"cbc:IssueDate": [
{
"_": "2023-02-17"
}
],
"cbc:DueDate": [
{
"_": "2022-05-24"
}
],
"cbc:InvoiceTypeCode": [
{
"_": "380"
}
],
"cbc:DocumentCurrencyCode": [
{
"_": "SEK"
}
],
"cbc:BuyerReference": [
{
"_": "Buyer Person"
}
],
"cac:AdditionalDocumentReference": [
{
"cbc:ID": [
{
"_": "AT-1"
}
],
"cac:Attachment": [
{
"cbc:EmbeddedDocumentBinaryObject": [
{
"_": "VmkgdGVzdGFyIGxpdGUgdGV4dA==",
"$": {
"filename": "Fakturabrev.csv",
"mimeCode": "text/csv"
}
}
]
}
]
}
],
"cac:AccountingSupplierParty": [
{
"cac:Party": [
{
"cbc:EndpointID": [
{
"_": "5567321707",
"$": {
"schemeID": "0007"
}
}
],
"cac:PartyIdentification": [
{
"cbc:ID": [
{
"_": "5567321707"
}
]
}
],
"cac:PartyName": [
{
"cbc:Name": [
{
"_": "Qvalia Group AB"
}
]
}
],
"cac:PostalAddress": [
{
"cbc:StreetName": [
{
"_": "Box 33"
}
],
"cbc:CityName": [
{
"_": "Stockholm"
}
],
"cbc:PostalZone": [
{
"_": "12030"
}
],
"cac:Country": [
{
"cbc:IdentificationCode": [
{
"_": "SE"
}
]
}
]
}
],
"cac:PartyTaxScheme": [
{
"cbc:CompanyID": [
{
"_": "SE556732170701"
}
],
"cac:TaxScheme": [
{
"cbc:ID": [
{
"_": "VAT"
}
]
}
]
},
{
"cbc:CompanyID": [
{
"_": "Godkänd för F-skatt"
}
],
"cac:TaxScheme": [
{
"cbc:ID": [
{
"_": "TAX"
}
]
}
]
}
],
"cac:PartyLegalEntity": [
{
"cbc:RegistrationName": [
{
"_": "Qvalia Group AB"
}
],
"cbc:CompanyID": [
{
"_": "5567321707",
"$": {
"schemeID": "0007"
}
}
],
"cbc:CompanyLegalForm": [
{
"_": "Säte Stockholm SE"
}
]
}
],
"cac:Contact": [
{
"cbc:Name": [
{
"_": "Qvalia Support"
}
],
"cbc:Telephone": [
{
"_": "01860412345"
}
],
"cbc:ElectronicMail": [
{
"_": "info@qvalia.com"
}
]
}
]
}
]
}
],
"cac:AccountingCustomerParty": [
{
"cac:Party": [
{
"cbc:EndpointID": [
{
"_": "Tester9000",
"$": {
"schemeID": "0195"
}
}
],
"cac:PartyIdentification": [
{
"cbc:ID": [
{
"_": "1234567890"
}
]
}
],
"cac:PartyName": [
{
"cbc:Name": [
{
"_": "TEST"
}
]
}
],
"cac:PostalAddress": [
{
"cbc:StreetName": [
{
"_": "Box 127"
}
],
"cbc:CityName": [
{
"_": "Uppsala"
}
],
"cbc:PostalZone": [
{
"_": "75104"
}
],
"cac:Country": [
{
"cbc:IdentificationCode": [
{
"_": "SE"
}
]
}
]
}
],
"cac:PartyLegalEntity": [
{
"cbc:RegistrationName": [
{
"_": "TEST"
}
],
"cbc:CompanyID": [
{
"_": "1234567890",
"$": {
"schemeID": "0007"
}
}
]
}
],
"cac:Contact": [
{
"cbc:Name": [
{
"_": "Test Tester"
}
],
"cbc:Telephone": [
{
"_": "0123456"
}
],
"cbc:ElectronicMail": [
{
"_": "leverantorsfaktura@sverige.se"
}
]
}
]
}
]
}
],
"cac:Delivery": [
{
"cbc:ActualDeliveryDate": [
{
"_": "2021-08-24"
}
],
"cac:DeliveryLocation": [
{
"cac:Address": [
{
"cbc:StreetName": [
{
"_": "Street 106"
}
],
"cbc:CityName": [
{
"_": "Västero"
}
],
"cbc:PostalZone": [
{
"_": "73364"
}
],
"cac:AddressLine": [
{
"cbc:Line": [
{
"_": "Tester Test"
}
]
}
],
"cac:Country": [
{
"cbc:IdentificationCode": [
{
"_": "SE"
}
]
}
]
}
]
}
]
}
],
"cac:PaymentMeans": [
{
"cbc:PaymentMeansCode": [
{
"_": "30"
}
],
"cac:PayeeFinancialAccount": [
{
"cbc:ID": [
{
"_": "55677788"
}
],
"cac:FinancialInstitutionBranch": [
{
"cbc:ID": [
{
"_": "SE:BANKGIRO"
}
]
}
]
}
]
},
{
"cbc:PaymentMeansCode": [
{
"_": "30"
}
],
"cac:PayeeFinancialAccount": [
{
"cbc:ID": [
{
"_": "SE6250000000053123456784"
}
],
"cac:FinancialInstitutionBranch": [
{
"cbc:ID": [
{
"_": "ESSESESS"
}
]
}
]
}
]
},
{
"cbc:PaymentMeansCode": [
{
"_": "30"
}
],
"cac:PayeeFinancialAccount": [
{
"cbc:ID": [
{
"_": "12345025134"
}
],
"cac:FinancialInstitutionBranch": [
{
"cbc:ID": [
{
"_": "ESSESESS"
}
]
}
]
}
]
}
],
"cac:PaymentTerms": [
{
"cbc:Note": [
{
"_": "30 dagar netto"
}
]
}
],
"cac:TaxTotal": [
{
"cbc:TaxAmount": [
{
"_": "30.00",
"$": {
"currencyID": "SEK"
}
}
],
"cac:TaxSubtotal": [
{
"cbc:TaxableAmount": [
{
"_": "120.00",
"$": {
"currencyID": "SEK"
}
}
],
"cbc:TaxAmount": [
{
"_": "30.00",
"$": {
"currencyID": "SEK"
}
}
],
"cac:TaxCategory": [
{
"cbc:ID": [
{
"_": "S"
}
],
"cbc:Percent": [
{
"_": "25.00"
}
],
"cac:TaxScheme": [
{
"cbc:ID": [
{
"_": "VAT"
}
]
}
]
}
]
}
]
}
],
"cac:LegalMonetaryTotal": [
{
"cbc:LineExtensionAmount": [
{
"_": "120.00",
"$": {
"currencyID": "SEK"
}
}
],
"cbc:TaxExclusiveAmount": [
{
"_": "120.00",
"$": {
"currencyID": "SEK"
}
}
],
"cbc:TaxInclusiveAmount": [
{
"_": "150.00",
"$": {
"currencyID": "SEK"
}
}
],
"cbc:PayableAmount": [
{
"_": "150.00",
"$": {
"currencyID": "SEK"
}
}
]
}
],
"cac:InvoiceLine": [
{
"cbc:ID": [
{
"_": "1"
}
],
"cbc:Note": [
{
"_": "Delivery reference: 161593"
}
],
"cbc:InvoicedQuantity": [
{
"_": "1",
"$": {
"unitCode": "EA"
}
}
],
"cbc:LineExtensionAmount": [
{
"_": "120.00",
"$": {
"currencyID": "SEK"
}
}
],
"cac:Item": [
{
"cbc:Name": [
{
"_": "Piké, FT, svart Herr.4XL"
}
],
"cac:SellersItemIdentification": [
{
"cbc:ID": [
{
"_": "001,FT-1-4XL"
}
]
}
],
"cac:ClassifiedTaxCategory": [
{
"cbc:ID": [
{
"_": "S"
}
],
"cbc:Percent": [
{
"_": "25.00"
}
],
"cac:TaxScheme": [
{
"cbc:ID": [
{
"_": "VAT"
}
]
}
]
}
]
}
],
"cac:Price": [
{
"cbc:PriceAmount": [
{
"_": "120.00",
"$": {
"currencyID": "SEK"
}
}
]
}
]
}
]
}
}
xml
Select...
<?xml version="1.0" encoding="UTF-8"?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:ccts="urn:un:unece:uncefact:documentation:2" xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2" xmlns:udt="urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2">
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
<cbc:ID>1234567890</cbc:ID>
<cbc:IssueDate>2022-05-10</cbc:IssueDate>
<cbc:DueDate>2022-06-09</cbc:DueDate>
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>SEK</cbc:DocumentCurrencyCode>
<cbc:BuyerReference>A reference</cbc:BuyerReference>
<cac:OrderReference>
<cbc:ID>Order-12345</cbc:ID>
</cac:OrderReference>
<cac:AccountingSupplierParty>
<cac:Party>
<cbc:EndpointID schemeID="0007">1234567890</cbc:EndpointID>
<cac:PartyName>
<cbc:Name>A Supplier Company</cbc:Name>
</cac:PartyName>
<cac:PostalAddress>
<cbc:StreetName>Box 12345</cbc:StreetName>
<cbc:CityName>Stockholm</cbc:CityName>
<cbc:PostalZone>10204</cbc:PostalZone>
<cac:Country>
<cbc:IdentificationCode>SE</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<cac:PartyTaxScheme>
<cbc:CompanyID>SE123456789001</cbc:CompanyID>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
<cac:PartyLegalEntity>
<cbc:RegistrationName>A Supplier Company</cbc:RegistrationName>
<cbc:CompanyID schemeID="0007">1234567890</cbc:CompanyID>
</cac:PartyLegalEntity>
<cac:Contact>
<cbc:Name>Contact Person</cbc:Name>
</cac:Contact>
</cac:Party>
</cac:AccountingSupplierParty>
<cac:AccountingCustomerParty>
<cac:Party>
<cbc:EndpointID schemeID="0007">9876543210</cbc:EndpointID>
<cac:PartyIdentification>
<cbc:ID schemeID="0007">9876543210</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name>Buyer Company</cbc:Name>
</cac:PartyName>
<cac:PostalAddress>
<cbc:StreetName>Street 1 A</cbc:StreetName>
<cbc:CityName>City</cbc:CityName>
<cbc:PostalZone>12345</cbc:PostalZone>
<cac:Country>
<cbc:IdentificationCode>SE</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<cac:PartyLegalEntity>
<cbc:RegistrationName>Buyer Company</cbc:RegistrationName>
<cbc:CompanyID schemeID="0007">9876543210</cbc:CompanyID>
</cac:PartyLegalEntity>
<cac:Contact>
<cbc:Name>Customer Contact</cbc:Name>
<cbc:ElectronicMail>john.doe@somewhere.com</cbc:ElectronicMail>
</cac:Contact>
</cac:Party>
</cac:AccountingCustomerParty>
<cac:PaymentMeans>
<cbc:PaymentMeansCode>30</cbc:PaymentMeansCode>
<cbc:PaymentID>2609912345678003573</cbc:PaymentID>
<cac:PayeeFinancialAccount>
<cbc:ID>57123456</cbc:ID>
<cac:FinancialInstitutionBranch>
<cbc:ID>SE:BANKGIRO</cbc:ID>
</cac:FinancialInstitutionBranch>
</cac:PayeeFinancialAccount>
</cac:PaymentMeans>
<cac:PaymentMeans>
<cbc:PaymentMeansCode>30</cbc:PaymentMeansCode>
<cbc:PaymentID>2609912345678003573</cbc:PaymentID>
<cac:PayeeFinancialAccount>
<cbc:ID>SE53 9500 0099 6042 1234 1234</cbc:ID>
<cac:FinancialInstitutionBranch>
<cbc:ID>NDEASESS</cbc:ID>
</cac:FinancialInstitutionBranch>
</cac:PayeeFinancialAccount>
</cac:PaymentMeans>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="SEK">3000</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="SEK">12000</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="SEK">3000</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>25</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="SEK">12000</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="SEK">12000</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="SEK">15000</cbc:TaxInclusiveAmount>
<cbc:ChargeTotalAmount currencyID="SEK">0</cbc:ChargeTotalAmount>
<cbc:PayableAmount currencyID="SEK">15000</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="EA">1</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="SEK">12000</cbc:LineExtensionAmount>
<cac:Item>
<cbc:Description>An item description which can be long</cbc:Description>
<cbc:Name>Item name</cbc:Name>
<cac:SellersItemIdentification>
<cbc:ID>Item00001</cbc:ID>
</cac:SellersItemIdentification>
<cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>25</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="SEK">12000</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine>
</Invoice>

SFTP-Integration

The Qvalia SFTP integration handles all Peppol XML Document types by default but we also support "custom" formats.

The SFTP setup is done by our helpdesk, and you will require a Qvalia account prior to being able to test the SFTP integration.

Qvalia hosts an SFTP Server, and both sending and receiving is done through an SFTP client from your environment.

Operator

For Swedish operators Qvalia can offer support for the legacy formats Svefaktura 1.0 (Basic Invoice) as well as Svefaktura 2 (Peppol BIS2/4A).

Qvalia is primarily using the protocol SFTI Transportprofil Bas 2.0 over HTTP POST for the Swedish legacy formats. SFTP transportation can also be accepted, and configured, for any Operator who wants to send legacy formats.

We strongly encourage the usage of Peppol instead of legacy formats, but we do understand that some older systems still needs to fall back on older versions of specifications, and we try our best to meet the needs of our customers.

Please reach out to peppol@qvalia.com if you are an Operator who wants to use any of the legacy formats!

SFTI Transportprofil Bas 2.0 is an old and not supported standard, but as some companies and Operators in Sweden still cling to it Qvalia has the option of POST'ing Transportprofil Bas 2.0 over HTTP.

As we would like to follow the recommendation of the Swedish Government and the IT authorities of Sweden we have deprecated the usage of Svefaktura, and try to move all our customers over to Peppol.

After the 1st of March 2021, no new established Svefaktura connections should be added according to DIGG's recommendations and mandate MDFFS 2021:1. See article from SFTI/DIGG here (in Swedish) for more information: https://sfti.se/sfti/standarder/rekommenderadestandarder/avfordameddelanden.52834.html

Sample of a Transportprofil Bas 2.0 Envelope with Svefaktura

Select...

Content-Type: multipart/related; boundary="BoundarY"; type="text/xml";

soapaction: ebXML

Select...

--BoundarY Content-ID: <ebxhmheader1@avsandare.com> Content-Type: text/xml

<?xml version="1.0" encoding="UTF-8"?> <SOAP:Envelope xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:eb="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd" xsi:schemaLocation="http://schemas.xmlsoap.org/soap/envelope/ http://www.oasis-open.org/committees/ebxml-msg/schema/envelope.xsd http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd"> <SOAP:Header> <eb:MessageHeader SOAP:mustUnderstand="1" eb:version="2.0"> <eb:From> <eb:PartyId eb:type="countrycode:organizationid">SE1234567890</eb:PartyId> </eb:From> <eb:To> <eb:PartyId eb:type="countrycode:organizationid">SE9876543210</eb:PartyId> </eb:To> <eb:CPAId>20160214:SE1234567890:SE9876543210</eb:CPAId> <eb:ConversationId>20160214:4567:SE1234567890</eb:ConversationId> <eb:Service>urn:sfti:services:documentprocessing:BasicInvoice</eb:Service> <eb:Action>incomingBasicInvoice</eb:Action> <eb:MessageData> <eb:MessageId>20160214-102030-28572@foretag.se</eb:MessageId> <eb:Timestamp>2016-02-14T11:12:12</eb:Timestamp> </eb:MessageData> </eb:MessageHeader> <eb:AckRequested SOAP:mustUnderstand="1" eb:version="2.0" eb:signed="false" SOAP:actor="urn:oasis:names:tc:ebxml-msg:actor:toPartyMSH"/> <eb:SyncReply eb:id="" eb:version="2.0" SOAP:mustUnderstand="1" SOAP:actor="http://schemas.xmlsoap.org/soap/actor/next"> </eb:SyncReply> </SOAP:Header> <SOAP:Body> <eb:Manifest eb:version="2.0"> <eb:Reference xlink:href="cid:ebxmlpayload1@avsandare.com" xlink:type="simple"> <eb:Description xml:lang="se">Fritext beskrivning av meddelande</eb:Description> <eb:Schema eb:location="urn:se:sfti:collaborationprocesses:BasicInvoice.xsd" eb:version="1.0"></eb:Schema> </eb:Reference> </eb:Manifest> </SOAP:Body> </SOAP:Envelope>

--BoundarY Content-ID: <ebxmlpayload1@avsandare.se> Content-Type: text/xml

<?xml version="1.0" encoding="utf-8"?> <StandardBusinessDocument xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader"> <StandardBusinessDocumentHeader> <HeaderVersion>1.0</HeaderVersion> <Sender> <Identifier Authority="iso6523-actorid-upis">0088:7301234567890</Identifier> </Sender> <Receiver> <Identifier Authority="iso6523-actorid-upis">0007:1234567890</Identifier> </Receiver> <DocumentIdentification> <Standard>urn:oasis:names:specification:ubl:schema:xsd:Invoice-2</Standard> <TypeVersion>2.1</TypeVersion> <InstanceIdentifier>2016021401022</InstanceIdentifier> <Type>Invoice</Type> <CreationDateAndTime>2016-02-14T14:40:38.4644993+02:00</CreationDateAndTime> </DocumentIdentification> <BusinessScope> <Scope> <Type>DOCUMENTID</Type> <InstanceIdentifier>urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1</InstanceIdentifier> </Scope> <Scope> <Type>PROCESSID</Type> <InstanceIdentifier>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</InstanceIdentifier> </Scope> </BusinessScope> </StandardBusinessDocumentHeader> <Invoice xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"> <cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID> <cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID> <cbc:ID>...</cbc:ID> <cbc:IssueDate>2016-02-14</cbc:IssueDate> <cbc:DueDate>2016-03-31</cbc:DueDate> <cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode> <cbc:DocumentCurrencyCode>SEK</cbc:DocumentCurrencyCode> <cbc:BuyerReference>...</cbc:BuyerReference> <cac:AccountingSupplierParty> ... </cac:AccountingSupplierParty> <cac:AccountingCustomerParty> ... </cac:AccountingCustomerParty> <cac:PaymentMeans> ... </cac:PaymentMeans> <cac:PaymentTerms> ... </cac:PaymentTerms> <cac:TaxTotal> ... </cac:TaxTotal> <cac:LegalMonetaryTotal> ... </cac:LegalMonetaryTotal> <cac:InvoiceLine> ... </cac:InvoiceLine> </Invoice> </StandardBusinessDocument>

--BoundarY––

Sample of a Transportprofil Bas 2.0 Acknowledgement Response

xml
Select...
<?xml version="1.0" encoding="UTF-8"?> <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.xmlsoap.org/soap/envelope/ http://www.oasis- open.org/committees/ebxml-msg/schema/envelope.xsd" xmlns:eb="http://www.oasis- open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd"> <SOAP:Header xsi:schemaLocation="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd"> <eb:MessageHeader SOAP:mustUnderstand="1" eb:version="2.0"> <eb:From> <eb:PartyId eb:type="countrycode:organizationid">SE1234567890</eb:PartyId> </eb:From> <eb:To> <eb:PartyId eb:type="countrycode:organizationid">SE9876543210</eb:PartyId> </eb:To> <eb:CPAId>20160214:SE1234567890:SE9876543210</eb:CPAId> <eb:ConversationId>20160214:4567:SE1234567890</eb:ConversationId> <eb:Service>urn:oasis:names:tc:ebxml-msg:service</eb:Service> <eb:Action>Acknowledgment</eb:Action> <eb:MessageData> <eb:MessageId>bba2674a-4bf3-453e-a129-4f2a2da7f004@b2b.qvalia.com</eb:MessageId> <eb:Timestamp>2016-02-14T08:56:56.390Z</eb:Timestamp> <eb:RefToMessageId>20160214-102030-28572@foretag.se</eb:RefToMessageId> </eb:MessageData> </eb:MessageHeader> <eb:Acknowledgment SOAP:mustUnderstand="1" eb:version="2.0" SOAP:actor="urn:oasis:names:tc:ebxml-msg:actor:toPartyMSH"> <eb:Timestamp>2016-02-14T08:56:56.390Z</eb:Timestamp> <eb:RefToMessageId>20160214-102030-28572@foretag.se</eb:RefToMessageId> <eb:From> <eb:PartyId eb:type="countrycode:organizationid">SE9876543210</eb:PartyId> </eb:From> </eb:Acknowledgment> </SOAP:Header> <SOAP:Body xsi:schemaLocation="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd"/> </SOAP:Envelope>

Partner

The Partner API contains endpoints for usage of accounts and setup of accounts

Under the Partner API section you'll find information about the endpoints used by Partners to Qvalia and how to handle the various functions offered.

Some Partner functions are partner specific and those are not documented here!

Reach out to your sales representative, or help@qvalia.com, to query about specific Partner functions, or if you can't find the information you need here.

All B2B/EDI functionality is developed, maintained and documented for each specific partner!

The Partner API is JSON only, so only content-type: application/json is used!

Endpoints

GET
GET
GET
POST
PUT
DELETE
PUT
DELETE