Search
Getting Started Invoice sending Invoice sending Consumer Invoicing Printing Email Invoicing Invoice Receiving Invoice Receiving Scanning Detect Fraud reporting Integration tools Webhooks Reference implementations Maventa Connector Embeddable User Interface Peppol Peppol Network Document Exchange Invoice Response Self-billing support Invoicing formats Invoicing formats Validation Peppol BIS 3.0 Preview Maventa JSON (table) Preview Maventa JSON (json schema) Account Management Companies and Settings Users Billing

Invoice Response

What is an Invoice Response?

An Invoice Response is a message between Buyer and a Seller that enables efficient means for communicating about the status of a received Invoice in the Peppol network.

For example Buyer can inform the Seller if the Invoice has been rejected, under query, approved or paid.

More detailed use cases and specifications for invoice response can be found in Peppol documentation.

How to take invoice responses into use in Maventa?

For a company sending invoices

In the case where a company is sending invoices they are the Seller and therefore the receiver of Invoice Responses from the Buyer. To enable the receiving of Invoice Responses the following steps needs to be taken.

Step 1 - Enable receiving of Invoice Response documents from Peppol

To enable invoice response receiving, you need to register a receiving profile for Peppol

Call POST /v1​/company​/profiles to create a new profile for Peppol invoice reponse receiving

Required information:

Once this profile is created, use GET /v1/company/profiles to verify that the profile has been activated for the PEPPOL network.

Step 2 - Integrate to API for receiving ordering and other documents

Documents are received through Documents Endpoint

Step 3 - Process the received Invoice Response

Details about the content of Invoice Responses can be found from the Peppol documentation.

For a company receiving invoices

In the case where a company is receiving invoices they are the Buyer and therefore the sender of Invoice Responses to the Seller. To enable the sending of Invoice Responses the following steps needs to be taken.

Step 1 - Integrate to receive invoices.

Step 2 - Check if the Seller has capabilities to handle Invoice Response documents. This can be done doing a Peppol lookup using the GET /v1/lookup/receivers endpoint. The Sellers identifier can be found from the received invoice. For example in a PeppolBIS30 document the information is in the EndpointID element.

<cbc:ID>567</cbc:ID>
  ...
  <cac:AccountingSupplierParty>
    <cac:Party>
      <cbc:EndpointID schemeID="0216">003751734872004</cbc:EndpointID>
      ...
    </cac:Party>
  </cac:AccountingSupplierParty>

The lookup to resolve the receiving capabilities of the Seller requires three parameters.

Request (curl)Response (json)
curl -X 'GET' \
  'https://ax-stage.maventa.com/v1/lookup/receivers?network=PEPPOL&eia=0216%3A003751734872004&document_type=INVOICE_RESPONSE' \
  -H 'accept: application/json' \
  -H 'authorization: Bearer TOKEN'
[
  {
    "eia": "0216:003751734872004",
    "network": "PEPPOL",
    "operator": "PEPPOL",
    "document_types": [
      {
        "document_type": "INVOICE_RESPONSE",
        "document_identifier": "urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2::ApplicationResponse##urn:fdc:peppol.eu:poacc:trns:invoice_response:3::2.1",
        "process_identifier": "urn:fdc:peppol.eu:poacc:bis:invoice_response:3"
      },
      ...
    ],
    "participant": {
      "name": "Seller",
      "country": "FI"
    }
  }
]

The endpoint returns entries if the Seller enabled for processing Invoice Responses, otherwise the response will be an empty array.

Step 3 - Generate and send an Invoice Response document

Details about the business content for an Invoice Response check out the Official Peppol documentation

Example of an invoice response payload that acknowledges the receive for an Invoice with the id 567 from Seller 0216:003751734872004.

<?xml version="1.0" encoding="UTF-8"?>

<ApplicationResponse xmlns="urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <cbc:CustomizationID>urn:fdc:peppol.eu:poacc:trns:invoice_response:3</cbc:CustomizationID>
  <cbc:ProfileID>urn:fdc:peppol.eu:poacc:bis:invoice_response:3</cbc:ProfileID>
  <cbc:ID>1</cbc:ID>
  <cbc:IssueDate>2024-01-01</cbc:IssueDate>
  <cac:SenderParty>
    <cbc:EndpointID schemeID="0216">003751734872001</cbc:EndpointID>
    <cac:PartyLegalEntity>
      <cbc:RegistrationName>Buyer</cbc:RegistrationName>
    </cac:PartyLegalEntity>
  </cac:SenderParty>
  <cac:ReceiverParty>
    <cbc:EndpointID schemeID="0216">003751734872004</cbc:EndpointID>
    <cac:PartyLegalEntity>
      <cbc:RegistrationName>Seller</cbc:RegistrationName>
    </cac:PartyLegalEntity>
  </cac:ReceiverParty>
  <cac:DocumentResponse>
    <cac:Response>
      <cbc:ResponseCode listID="UNCL4343OpSubset">AB</cbc:ResponseCode>
    </cac:Response>
    <cac:DocumentReference>
      <!-- Information about the orignal received invoice -->
      <cbc:ID>567</cbc:ID>
      <cbc:DocumentTypeCode listID="UNCL1001">380</cbc:DocumentTypeCode>
    </cac:DocumentReference>
  </cac:DocumentResponse>
</ApplicationResponse>

The Invoice Response payload is handed over for delivery via the POST /v1/documents endpoint.

curl -X 'POST' \
  'https://ax-stage.maventa.com/v1/documents' \
  -H 'accept: application/json' \
  -H 'content-type: multipart/form-data' \
  -F 'file=@response.xml;type=text/xml' \
  -F 'recipient_eia=0126:003751734872004' \
  -F 'recipient_operator=PEPPOL'

Response:

{
  "id": "e6c1e92b-ceba-4155-89fd-072e7ba6148f",
  "type": "INVOICE_RESPONSE"
  ...
}

References

BIS Invoice Response 3.2 specification

Back to top

AI Chat Support 24/7

  • Get help via AI chat available 24/7 whenever it suits you
  • Chat extensively uses Maventa support pages, websites, and blogs in its answers
  • If you need assistance that the AI cannot provide, you can also ask a customer service agent to join the conversation
  • Support requests processed Monday to Friday
Cancel Open chat

Got feedback?

Did you not find what you were looking for? Or was something explained unclearly? Or just want to share your thoughts? We are happy to hear your feedback!

Note: This form is not a way to get support, this is only for feedback for the documentation website. If you need support, please contact Maventa support.

Integration Guide Services & Reach API Specification Changelogs Integration guide Getting Started Invoice sending Consumer Invoicing Printing Email Invoicing Invoice Receiving Scanning Detect Fraud reporting Webhooks Reference implementations Maventa Connector Embeddable User Interface Peppol Network Document Exchange Invoice Response Self-billing support Invoicing formats Validation Peppol BIS 3.0 Maventa JSON (table) Maventa JSON (json schema) Companies and Settings Users Billing Services and reach Maventa services and reach e-invoicing in Belgium e-invoicing in Denmark e-invoicing in Estonia e-invoicing in Finland Mass Printing Service Amili Kassavirta Amili Perintä Ropo Perintä e-invoicing in Germany e-invoicing in Italy e-invoicing in the Netherlands e-invoicing in Norway e-invoicing in Poland e-invoicing in Sweden Api specification API overview Getting Started Common & authentication API Invoices API Documents API Companies & settings API Lookups API Detect API Validator API Receivables API Billing API Scanning API B2CFI API B2CNO API B2CSE API Partner API Getting Started API Methods Overview Account Configuration API Methods Invoice Sending API Methods Invoice Receiving API Methods B2C Norway API Methods B2C Finland API Methods Other API Methods Changelogs Product changelog Developer Changelog
Clear Send

Enter your credentials to Maventa testing environment, to authenticate and try things out with the Swagger UI. This will fetch a Bearer token using OAuth2 with the endpoint POST https://ax-stage.maventa.com/oauth2/token. The token is stored in your browser's session storage (cleared when you close the tab) and used in Swagger calls done from this documentation website. The token is valid for 1 hour.

Never use your production credentials here. This is only for testing the Maventa test environment in the Swagger UI.
All None
eui global company lookup document:receive document:send invoice:receive invoice:send company:read company:write validate receivables:assignments analysis billing:reports partner:invoice_delivery_actions partner:lookups partner:takeovers partner:lyanthe_scan_service fi_bank_message:send fi_bank_message:receive
Cancel Sign In