Please coudl you help confirm that the expect lifecycle of an e-Invoice from a business (tax-payer) in a B2B flow is accurate as described below:
Tax payer's internal system generates IRN using the FIRS defined standard
Tax payer's internal system created invoice document and validates invoice schema by calling FIRS API
Tax payer's internal system calls MBS via APP to sign and submit e-Invoice
Tax payer's internal system calls MBS via APP to transmit e-Invoice
Tax payer's customer/buyer receives notification from MBS via APP
Tax payer's customer/buyer calls MBS via APP to validate e-Invoice
Tax payer's customer/buyer calls MBS via APP to confirm e-Invoice receipt
Tax payer's customer/buyer calls MBS via APP to pull (or download) e-Invoice
Tax payer's customer/buyer pays invoice
Tax payer's customer/buyer calls MBS via APP to update e-Invoice status as PAID
Tax payer's internal system calls MBS via APP to confirm e-Invoice status
If above is true, could you help answer the questions below:
Tax Payer Login
What is the use case for tax payer login?
Is the expectation that APP are expected to authenticate Tax Payer before allowing them to access the the Invoice APIs
Is there a test tax payer login email and password that can be used for test?
Get Entity by Business ID
Am I able to get the Entity details of any Tax Payer or only those where I am their APP?
What is an Entity, how is it different from Tax Payer and Businesses? It looks like an Entity can have multiple businesses.
Invoice Signing/Submission by Taxpayer
Is it fair to say the purpose of signing an invoice is to register the Invoice with FIRS?
Invoice Validation Use Cases
What is the use case for validating a full invoice document (POST /api/v1/invoice/validate) vs validating by IRN (POST /api/v1/invoice/irn/validate)?
Is the epxtectation that full document invoice validation is for Sender while valdiation by IRN is for Receiver?
Invoice Confirmation (GET /api/v1/invoice/confirm/{IRN}) ?
What is the exact purpose of this endpoint, is it equivalent to retrieving the invoice status, or does it serve a different purpose?
TIN Lookup (GET /api/v1/invoice/transmit/lookup/tin/{TIN})
What is the intended purpose of this endpoint?
Is it meant to validate a buyer/supplier TIN before transmission?
When is validation by IRN used vs TIN validation?
Updating Invoice status to PAID, REEJCTED etc
Who can/should update invoice status, it is the sender of the invoice or the receiver?
Does MBS have valdiation on this?
Testing the Full Lifecycle
What is the recommended way to test the full invoice lifecycle especially how to confirm receipt of transmitted Invoice as a receiver - I have not figured a way to be a sender and a receiver at the same time. The same for pulling of transmitted invoices. Currently, we are unable to fully test some steps such as confirm receipt, and pull because its not clear how to register as a receiver linked to me as an APP
Confirming Transmitted Invoices (PATCH /api/v1/invoice/transmit/{IRN})
Is there any compliance or regulatory requirement that this confirmation must come from the receiver (tax payer) or can the APP confirm on behalf of the tax payer? Will this be elft to the discretion of the APP?
Invoice Pulling vs Search vs Download
What is the functional difference between:
GET /api/v1/invoice/transmit/pull
GET /api/v1/invoice/download/{{IRN}}
Are there specific use cases for each that we should be aware of? Is the pull used by receive to fetch all invoices that are meant for taxpayers subscribed to the APP?
The documentation does not have sample response for all the transmit API calls, pls can we get sample response json for them?
Invoice Status Update
Is it correct to assume that only the invoice receiver should be able to:
Update invoice status (PATCH /api/v1/invoice/update/{IRN})
Confirm transmitted invoice (PATCH /api/v1/invoice/transmit/{IRN})?
Does the MBS system enforce this rule (e.g. by checking business identity), or is this the responsibility of the APP?
Can a sender update the invoice status, or is that strictly limited to the receiver?
Are there any compliance or regulatory requirement around who access an invoice e.g. only parties (sender/receiver) can access an Invoice and if so does MBS do any valdiation or APP are expected to do that?
Lex