Wafeq Public API vs ZATCA API
Choose the correct invoice API based on whether you need Wafeq accounting records or standalone Saudi e-invoicing compliance.
The short version: Both APIs use
api.wafeq.comand both contain invoice endpoints, but they serve different purposes. The Wafeq Public API creates and manages accounting invoices inside a Wafeq organization. The Wafeq ZATCA API is a standalone Saudi Phase 2 compliance service and does not create invoices in the Wafeq accounting application.
Choose based on where the accounting record should live
| Wafeq Public API | Wafeq ZATCA API | |
|---|---|---|
| Purpose | Accounting and invoicing in Wafeq | ZATCA validation, reporting or clearance, and compliant document generation |
| Typical users | Businesses using Wafeq as their accounting system | ERPs, POS systems, platforms, and businesses that keep accounting records outside Wafeq |
| Create or report endpoint | POST /v1/invoices/ | POST /v1/zatca/invoices/report/ for standard B2B invoices, or POST /v1/zatca/simplified-invoices/report/ for B2C invoices |
| Result | Creates an invoice in the Wafeq accounting workspace, connected to contacts, accounts, taxes, receivables, and payments | Creates and tracks a ZATCA compliance document; it does not create a sales invoice or accounting entry in the Wafeq app |
| Accounting impact | Yes | No |
| Saudi Phase 2 | Report the Wafeq invoice through the Public API tax-authority reporting action | Directly validate or report invoice data created in another system |
Use the Wafeq Public API when…
- Wafeq is your accounting system of record.
- The invoice must appear under Sales → Invoices in Wafeq.
- You need ledger posting, accounts receivable, customer balances, payments, or accounting reports.
- You want to create the accounting invoice first and then submit it to the tax authority.
Start by creating the accounting invoice:
POST /v1/invoices/
Use the Wafeq ZATCA API when…
- Another ERP, POS, or platform is your accounting system of record.
- You need Saudi Phase 2 validation, reporting, or clearance without using Wafeq for accounting.
- You issue documents for connected accounts or white-label customers.
- You only need compliance documents, artifacts, and statuses.
For a standard B2B invoice:
POST /v1/zatca/invoices/report/
For a simplified B2C invoice:
POST /v1/zatca/simplified-invoices/report/
Important: A document submitted through
/v1/zatca/...will not appear under Sales → Invoices in the Wafeq accounting app and will not post to the accounting ledger.
Interested in the Wafeq ZATCA API? Contact our sales team to discuss your requirements and get started: https://www.wafeq.com/en-sa/zatca-e-invoicing-phase-2
If you need both accounting and ZATCA compliance
Create the invoice with the Wafeq Public API, then use that invoice’s Public API tax-authority reporting action. Do not separately recreate the same document through the standalone ZATCA API.
Quick decision
- Need the invoice in Wafeq accounting? Use the Wafeq Public API.
- Keep accounting elsewhere and only need ZATCA Phase 2? Use the Wafeq ZATCA API.
- Need both in Wafeq? Create and report the invoice through the Public API workflow.
Related documentation
- Create an invoice with the Wafeq Public API — https://developer.wafeq.com/reference/invoices_create
- Wafeq Public API invoice creation example — https://developer.wafeq.com/docs/invoice-creation-example
- ZATCA API quickstart — https://zatca.wafeq.com/docs/report-a-simplified-invoice-to-zatca
- ZATCA API B2B use case — https://zatca.wafeq.com/docs/for-b2b
- ZATCA API B2C use case — https://zatca.wafeq.com/docs/for-b2c
Updated about 13 hours ago