Create
The invoice can be created only if the state of order is set to **confirmed**. This happens when the order was successfully created in Mondu system and the buyer authorized the financing attempt through an interaction with Mondu Widget.
The Create Invoice Request should be triggered when the state of order in your System is set to "shipped". It can happen either in the Shop System or in ERP.
Invoice Documents
While the API has a mandatory
invoice_url
field, you can also upload invoice PDFs directly with the create invoice call. In this case, you can fill the invoice_url field with any FQDN.In case you make the invoices available via URL, make sure to apply good practices for capability URLs.
How to Upload Invoice PDFs
The Mondu API requires you to make the invoice PDF available whenever you create an invoice. The PDF can either be accessible via URL, or can be uploaded directly with the create invoice
request. Here's a code example in python on how to do it:
import requests
API_KEY = "your-api-key"
order_uuid = "65c6927b-9943-4601-929d-eda55cc302f3" # Mondu order uuid
endpoint = "https://api.demo.mondu.ai/api/v1/orders/" # prod: https://api.mondu.ai/api/v1/orders/
url = endpoint + order_uuid + "/invoices"
file = {
"file": ("invoice.pdf", open("invoice.pdf", "rb"), "application/pdf")
} # make sure to have the invoice as 'invoice.pdf' in the same folder as this script
payload = {
"source": "api",
"external_reference_id": "inv-01", # invoice ID
"invoice_url": "https://test.com", # dummy value because URL is mandatory
"gross_amount_cents": 126600, # invoice amount in cents
}
headers = {"accept": "application/json", "Api-Token": API_KEY}
response = requests.post(url, files=file, data=payload, headers=headers)
if response.status_code == 201:
print("File uploaded successfully")
print(response.text)
else:
print("File upload failed")
print(response.text)
print(response)
Important Invoice States in Mondu system
State | Description |
---|---|
created | Invoice created |
late | Wasn't paid on time by the buyer |
Canceled | Canceled by the merchant |
Complete | Paid by the buyer |
What should be implemented next?
Create Credit Note
In case the buyer returned the products, trigger Create Credit Note Request.
Cancel Invoice
In case of invoice cancellation, trigger Cancel Invoice Request.