ZatcaPython
Python Code Example for Zatca eInvoice Integration Phase 2
Install / Use
/learn @mabaega/ZatcaPythonREADME
ZatcaPython
Python Code Example for Zatca eInvoice Integration Phase 2
This code is full step to get Integrating with Zatca
-
Onboarding
- Generate CSR and PrivateKey
- Get Compliance CSID
- Sending Sample Invoice to Compliance Check Url (Standar, Credit Note and Debit Note for Standard and Simplified)
- Get Production CSID
- Save OnboardingInfo to File as Reference for Approval Process
-
Invoice Approval (Clearance & Report)
- Standard Invoice
- Standard Credit Note
- Standard Debit Note
- Simplified Invoice
- Simplified Credit Note
- Simplified Debit Note
All Done In Sandbox Protal (Non Production Environtment) and Should not any Problem for Simulation and Production Environment
It just Simple code that work
All work well in my test on VSCode in Windows OS, please let me know, if anyone has problem trying this sample code.
Reference :
- https://zatca.gov.sa/en/E-Invoicing/Pages/default.aspx
- https://sandbox.zatca.gov.sa/downloadSDK
- https://sandbox.zatca.gov.sa/IntegrationSandbox
- https://zatca1.discourse.group/
Thank you.
PYTHON CODE ONBOARDING
1. Generate CSR and PrivateKey
Private Key (without header and footer):
MHQCAQEEIP6sv9VZofb9torspSRPm3DQ/VODEDI5anl3y==========================================YjcOITeSc8E+XQDEt0Sb2/wPA4YKPA3i2l6HESt1OX2PTXVSwHBZg==
Base64 Encoded CSR:
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KTUlJQ0ZqQ0NBYjBDQVFBd2RURUxNQWtHQTFVRUJoTUNVMEV4RmpBVUJnTlZCQXNNRFZKcGVXRmthQ0JDY21GdQpZMmd4SmpBa0JnTlZCQW9NSFUxaGVHbHRkVzBnVTNCbFpXUWdWR1ZqYUNCVGRYQndiSGtnVEZSRU1TWXdKQVlEClZRUUREQjFVVTFRdE9EZzJORE14TVRRMUxUTTVPVGs1T1RrNU9Ua3dNREF3TXpCV01CQUdCeXFHU000OUFnRUcKQlN1QkJBQUtBMElBQkhlM294NDRTUGgzTXo3bVljSDVHbTNicDhRRkZkdjdSVUdJM0RpRTNrblBCUGwwQXhMZApFbTl2OER3T0dDandONHRwZWh4RXJkVGw5ajAxMVVzQndXYWdnZWd3Z2VVR0NTcUdTSWIzRFFFSkRqR0IxekNCCjFEQWlCZ2tyQmdFRUFZSTNGQUlFRlZSVFZGcEJWRU5CTFVOdlpHVXRVMmxuYm1sdVp6Q0JyUVlEVlIwUkJJR2wKTUlHaXBJR2ZNSUdjTVRzd09RWURWUVFFRERJeExWUlRWSHd5TFZSVFZId3pMV1ZrTWpKbU1XUTRMV1UyWVRJdApNVEV4T0MwNVlqVTRMV1E1WVRobU1URmxORFExWmpFZk1CMEdDZ21TSm9tVDhpeGtBUUVNRHpNNU9UazVPVGs1Ck9Ua3dNREF3TXpFTk1Bc0dBMVVFREF3RU1URXdNREVSTUE4R0ExVUVHZ3dJVWxKU1JESTVNamt4R2pBWUJnTlYKQkE4TUVWTjFjSEJzZVNCaFkzUnBkbWwwYVdWek1Bb0dDQ3FHU000OUJBTUNBMGNBTUVRQ0lHNDNDRVcrUXN2YgpObWJHQ0kxWS9MOWJLc0E1c05ZUmUydnNxdUl3V29yOUFpQitDZGRIQUNqczdTRHFmN3UxR01FNnlJQXVPYnRrCmN0RDhVMk55ZW5yczdBPT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCg==
2. Get Compliance CSID
complianceCSID Server Response:
{
"requestType": "Compliance CSID",
"apiUrl": "https://gw-fatoora.zatca.gov.sa/e-invoicing/developer-portal/compliance",
"requestID": 1234567890123,
"dispositionMessage": "ISSUED",
"binarySecurityToken": "TUlJQ1BEQ0NBZU9nQXdJQkFnSUdBWk5FV2k3Q01Bb0dDQ3FHU000OUJBTUNNQlV4RXpBUkJnTlZCQU1NQ21WSmJuWnZhV05wYm1jd0hoY05NalF4TVRFNU1USXhOakUyV2hjTk1qa3hNVEU0TWpFd01EQXdXakIxTVFzd0NRWURWUVFHRXdKVFFURVdNQlFHQTFVRUN3d05VbWw1WVdSb0lFSnlZVzVqYURFbU1DUUdBMVVFQ2d3ZFRXRjRhVzExYlNCVGNHVmxaQ0JVWldOb0lGTjFjSEJzZVNCTVZFUXhKakFrQmdOVkJBTU1IVlJUVkMwNE9EWTBNekV4TkRVdE16azVPVGs1T1RrNU9UQXdNREF6TUZZd0VBWUhLb1pJemowQ0FRWUZLNEVFQUFvRFFnQUVkN2VqSGpoSStIY3pQdVpod2ZrYWJkdW54QVVWMi90RlFZamNPSVRlU2M4RStYUURFdDBTYjIvd1BBNFlLUEEzaTJsNkhFU3QxT1gyUFRYVlN3SEJacU9Cd1RDQnZqQU1CZ05WSFJNQkFmOEVBakFBTUlHdEJnTlZIUkVFZ2FVd2dhS2tnWjh3Z1p3eE96QTVCZ05WQkFRTU1qRXRWRk5VZkRJdFZGTlVmRE10WldReU1tWXhaRGd0WlRaaE1pMHhNVEU0TFRsaU5UZ3RaRGxoT0dZeE1XVTBORFZtTVI4d0hRWUtDWkltaVpQeUxHUUJBUXdQTXprNU9UazVPVGs1T1RBd01EQXpNUTB3Q3dZRFZRUU1EQVF4TVRBd01SRXdEd1lEVlFRYURBaFNVbEpFTWpreU9URWFNQmdHQTFVRUR3d1JVM1Z3Y0d4NUlHRmpkR2wyYVhScFpYTXdDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdTZThBeEtQNkFQOTBjcnVDOVZqK0pXY1hXRGFNcXk4RVFjb0k3SUhwb2hvQ0lIbUJlQUxXcVJYRC9pM2lGbFJ2RWF3M0pDNFI4Y3lkdXFRSjYyeUtmSWVF",
"secret": "iPOtp5HjK7FzPgSJhqJFPPXIpVweYG/5SVgnE61a4Ck="
}
3: Sending Sample Documents
Processing Standard Invoice...
complianceChecks Server Response:
{
"requestType": "Compliance Checks",
"apiUrl": "https://gw-fatoora.zatca.gov.sa/e-invoicing/developer-portal/compliance/invoices",
"validationResults": {
"infoMessages": [
{
"type": "INFO",
"code": "XSD_ZATCA_VALID",
"category": "XSD validation",
"message": "Complied with UBL 2.1 standards in line with ZATCA specifications",
"status": "PASS"
}
],
"warningMessages": [],
"errorMessages": [],
"status": "PASS"
},
"clearanceStatus": "CLEARED"
}
Standard Invoice processed successfully
Processing Standard CreditNote...
complianceChecks Server Response:
{
"requestType": "Compliance Checks",
"apiUrl": "https://gw-fatoora.zatca.gov.sa/e-invoicing/developer-portal/compliance/invoices",
"validationResults": {
"infoMessages": [
{
"type": "INFO",
"code": "XSD_ZATCA_VALID",
"category": "XSD validation",
"message": "Complied with UBL 2.1 standards in line with ZATCA specifications",
"status": "PASS"
}
],
"warningMessages": [],
"errorMessages": [],
"status": "PASS"
},
"clearanceStatus": "CLEARED"
}
Standard CreditNote processed successfully
Processing Standard DebitNote...
complianceChecks Server Response:
{
"requestType": "Compliance Checks",
"apiUrl": "https://gw-fatoora.zatca.gov.sa/e-invoicing/developer-portal/compliance/invoices",
"validationResults": {
"infoMessages": [
{
"type": "INFO",
"code": "XSD_ZATCA_VALID",
"category": "XSD validation",
"message": "Complied with UBL 2.1 standards in line with ZATCA specifications",
"status": "PASS"
}
],
"warningMessages": [],
"errorMessages": [],
"status": "PASS"
},
"clearanceStatus": "CLEARED"
}
Standard DebitNote processed successfully
Processing Simplified Invoice...
complianceChecks Server Response:
{
"requestType": "Compliance Checks",
"apiUrl": "https://gw-fatoora.zatca.gov.sa/e-invoicing/developer-portal/compliance/invoices",
"validationResults": {
"infoMessages": [
{
"type": "INFO",
"code": "XSD_ZATCA_VALID",
"category": "XSD validation",
"message": "Complied with UBL 2.1 standards in line with ZATCA specifications",
"status": "PASS"
}
],
"warningMessages": [],
"errorMessages": [],
"status": "PASS"
},
"reportingStatus": "REPORTED"
}
Simplified Invoice processed successfully
Processing Simplified CreditNote...
complianceChecks Server Response:
{
"requestType": "Compliance Checks",
"apiUrl": "https://gw-fatoora.zatca.gov.sa/e-invoicing/developer-portal/compliance/invoices",
"validationResults": {
"infoMessages": [
{
"type": "INFO",
"code": "XSD_ZATCA_VALID",
"category": "XSD validation",
"message": "Complied with UBL 2.1 standards in line with ZATCA specifications",
"status": "PASS"
}
],
"warningMessages": [],
"errorMessages": [],
"status": "PASS"
},
"reportingStatus": "REPORTED"
}
Simplified CreditNote processed successfully
Processing Simplified DebitNote...
complianceChecks Server Response:
{
"requestType": "Compliance Checks",
"apiUrl": "https://gw-fatoora.zatca.gov.sa/e-invoicing/developer-portal/compliance/invoices",
"validationResults": {
"infoMessages": [
{
"type": "INFO",
"code": "XSD_ZATCA_VALID",
"category": "XSD validation",
"message": "Complied with UBL 2.1 standards in line with ZATCA specifications",
"status": "PASS"
}
],
"warningMessages": [],
"errorMessages": [],
"status": "PASS"
},
"reportingStatus": "REPORTED"
}
Simplified DebitNote processed successfully
4. Get Production CSID
Production CSID Server Response:
{
"requestType": "Production CSID",
"apiUrl": "https://gw-fatoora.zatca.gov.sa/e-invoicing/developer-portal/production/csids",
"requestID": 30368,
"tokenType": "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3",
"dispositionMessage": "ISSUED",
"binarySecurityToken": "TUlJRDNqQ0NBNFNnQXdJQkFnSVRFUUFBT0FQRjkwQWpzL3hjWHdBQkFBQTRBekFLQmdncWhrak9QUVFEQWpCaU1SVXdFd1lLQ1pJbWlaUHlMR1FCR1JZRmJHOWpZV3d4RXpBUkJnb0praWFKay9Jc1pBRVpGZ05uYjNZeEZ6QVZCZ29Ka2lhSmsvSXNaQUVaRmdkbGVIUm5ZWHAwTVJzd0dRWURWUVFERXhKUVVscEZTVTVXVDBsRFJWTkRRVFF0UTBFd0hoY05NalF3TVRFeE1Ea3hPVE13V2hjTk1qa3dNVEE1TURreE9UTXdXakIxTVFzd0NRWURWUVFHRXdKVFFURW1NQ1FHQTFVRUNoTWRUV0Y0YVcxMWJTQlRjR1ZsWkNCVVpXTm9JRk4xY0hCc2VTQk1WRVF4RmpBVUJnTlZCQXNURFZKcGVXRmthQ0JDY21GdVkyZ3hKakFrQmdOVkJBTVRIVlJUVkMwNE9EWTBNekV4TkRVdE16azVPVGs1T1RrNU9UQXdNREF6TUZZd0VBWUhLb1pJemowQ0FRWUZLNEVFQUFvRFFnQUVvV0NLYTBTYTlGSUVyVE92MHVBa0MxVklLWHhVOW5QcHgydmxmNHloTWVqeThjMDJYSmJsRHE3dFB5ZG84bXEwYWhPTW1Obzhnd25pN1h0MUtUOVVlS09DQWdjd2dnSURNSUd0QmdOVkhSRUVnYVV3Z2FLa2daOHdnWnd4T3pBNUJnTlZCQVFNTWpFdFZGTlVmREl0VkZOVWZETXRaV1F5TW1ZeFpEZ3RaVFpoTWkweE1URTRMVGxpTlRndFpEbGhPR1l4TVdVME5EVm1NUjh3SFFZS0NaSW1pWlB5TEdRQkFRd1BNems1T1RrNU9UazVPVEF3TURBek1RMHdDd1lEVlFRTURBUXhNVEF3TVJFd0R3WURWUVFhREFoU1VsSkVNamt5T1RFYU1CZ0dBMVVFRHd3UlUzVndjR3g1SUdGamRHbDJhWFJwWlhNd0hRWURWUjBPQkJZRUZFWCtZdm1tdG5Zb0RmOUJHYktvN29jVEtZSzFNQjhHQTFVZEl3UVlNQmFBRkp2S3FxTHRtcXdza0lGelZ2cFAyUHhUKzlObk1Ic0dDQ3NHQVFVRkJ3RUJCRzh3YlRCckJnZ3JCZ0VGQlFjd0FvWmZhSFIwY0RvdkwyRnBZVFF1ZW1GMFkyRXVaMjkyTG5OaEwwTmxjblJGYm5KdmJHd3ZVRkphUlVsdWRtOXBZMlZUUTBFMExtVjRkR2RoZW5RdVoyOTJMbXh2WTJGc1gxQlNXa1ZKVGxaUFNVTkZVME5CTkMxRFFTZ3hLUzVqY25Rd0RnWURWUjBQQVFIL0JBUURBZ2VBTUR3R0NTc0dBUVFCZ2pjVkJ3UXZNQzBHSlNzR0FRU
Related Skills
valuecell
10.1kValueCell is a community-driven, multi-agent platform for financial applications.
Payment Integration
Implement Stripe payment processing for robust, PCI-compliant payment flows including checkout, subscriptions, and webhooks.
REFERENCE
An intelligent middleware layer between crypto wallets and traditional payment systems.
cashu-skill
A Cashu wallet skill for AI agents
