GETS Field Mapping
Complete field mapping guide based on GETS Schema-mapping for KSA
Field Mapping Overview
Understanding how GETS transforms data between different invoice formats.
Core Concepts
Source-to-GETS Mapping
Transform your native invoice format to GETS standardized fields.
GETS-to-Destination Mapping
Convert GETS format to country-specific requirements (UBL, ZATCA, etc.).
Mapping Benefits
- Single integration for multiple countries
- Automatic compliance validation
- Consistent data transformation
Smart Mapping
GETS uses intelligent field mapping that automatically handles data type conversion, currency formatting, date standardization, and country-specific validation rules.
Field Mapping Reference
Complete field mapping based on MappingConstants and GETS schema registry.
Core Fields
| Field Name | GETS Path | Data Type | Required |
|---|
| Document Type | header.documentType | enum | Required |
| Document ID | header.documentNumber | string | Required |
| Document Currency | header.currency | string | Required |
| Exchange Rate | header.exchangeRate.rate | number | Conditional |
| VAT Currency | header.taxCurrency | string | Required |
| Issue Date | header.issueDate | date | Required |
| Issue Time | header.issueTime | time | Required |
| Supply Start Date | header.invoicePeriod.startDate | date | Conditional |
| Supply End Date | header.invoicePeriod.endDate | date | Optional |
| Due Date | header.dueDate | date | Optional |
| Reference Invoice Number | header.referenceId | string | Conditional |
| Note Issuance Reason | header.noteIssuanceReason | string | Conditional |
Party Fields
Seller (Supplier) Details
| Field Name | GETS Path | Data Type | Required |
|---|
| Seller ID | parties.seller.partyId | string | Optional |
| Seller Name | parties.seller.name | string | Required |
| VAT Number - Type | parties.seller.taxIds[].type | string | Required |
| VAT Number - Value | parties.seller.taxIds[].value | string | Required |
| Group VAT Number - Type | parties.seller.taxIds[].type | string | Conditional |
| Group VAT Number - Value | parties.seller.taxIds[].value | string | Conditional |
| Additional Seller ID Number | parties.seller.registrationNumbers[].value | string | Conditional |
| Additional Seller ID Type | parties.seller.registrationNumbers[].type | string | Optional |
Seller Address
| Field Name | GETS Path | Data Type | Required |
|---|
| Address Line 1 | parties.seller.address.addressLine1 | string | Required |
| Address Line 2 | parties.seller.address.addressLine2 | string | Required |
| Building Number | parties.seller.address.additionalAddressData.buildingNumber | string | Required |
| Additional Number | parties.seller.address.additionalAddressData.additionalBuildingNumber | string | Optional |
| District/Neighbourhood | parties.seller.address.additionalAddressData.district | string | Required |
| City | parties.seller.address.city | string | Required |
| State | parties.seller.address.stateOrProvince | string | Required |
| Zip Code | parties.seller.address.postalCode | string | Required |
| Country | parties.seller.address.country | string | Required |
Buyer (Customer) Details
| Field Name | GETS Path | Data Type | Required |
|---|
| Buyer ID | parties.buyer.partyId | string | Optional |
| Buyer Name | parties.buyer.name | string | Conditional |
| VAT Number - Type | parties.buyer.taxIds[].type | string | Conditional |
| VAT Number - Value | parties.buyer.taxIds[].value | string | Conditional |
| Group VAT Number - Type | parties.buyer.taxIds[].type | string | Conditional |
| Group VAT Number - Value | parties.buyer.taxIds[].value | string | Conditional |
| Additional Buyer ID Number | parties.buyer.registrationNumbers[].value | string | Conditional |
| Additional Buyer ID Type | parties.buyer.registrationNumbers[].type | string | Conditional |
Buyer Address
| Field Name | GETS Path | Data Type | Required |
|---|
| Address Line 1 | parties.buyer.address.addressLine1 | string | Conditional |
| Address Line 2 | parties.buyer.address.addressLine2 | string | Conditional |
| Building Number | parties.buyer.address.additionalAddressData.buildingNumber | string | Optional |
| Additional Number | parties.buyer.address.additionalAddressData.additionalBuildingNumber | string | Optional |
| District/Neighbourhood | parties.buyer.address.additionalAddressData.district | string | Optional |
| City | parties.buyer.address.city | string | Conditional |
| State | parties.buyer.address.stateOrProvince | string | Optional |
| Zip Code | parties.buyer.address.postalCode | string | Conditional |
| Country | parties.buyer.address.country | string | Conditional |
Line Item Fields
Line Item Details
| Field Name | GETS Path | Data Type | Required |
|---|
| Line Item ID | lineItems[].id | string | Required |
| Line Item Type | lineItems[].lineType | string | Optional |
| Item Description | lineItems[].description | string | Required |
| Unit Price | lineItems[].price.amount | number | Required |
| Discount per Unit | lineItems[].discountsOrCharges[].amount | number | Required |
| Net Unit Price | lineItems[].netPrice | number | Required |
| Line Item Qty | lineItems[].quantity | number | Required |
| Units of Measurement | lineItems[].unitCode | string | Optional |
| Charges | lineItems[].discountsOrCharges | number | Required |
| Line Item Discount | lineItems[].lineLevelDiscount | number | Required |
| Line Item Taxable Amount | lineItems[].lineTaxableValue | number | Required |
| VAT Category Code | lineItems[].taxCategory | string | Required |
| VAT Exemption Reason Code | lineItems[].taxExemptionReasonCode | string | Required |
| VAT Exemption Reason Text | lineItems[].taxExemptionReason | string | Required |
| VAT Rate On Line Item | lineItems[].taxRate | number | Required |
| Line Item VAT Amount | lineItems[].taxAmount | number | Required |
| Line Item Sub Total | lineItems[].lineTotal | number | Required |
Tax & Totals
Summary Totals
| Field Name | GETS Path | Data Type | Required |
|---|
| Summation of Line Taxable Values | totals.totalLineTaxableAmount | number | Required |
| Discount at document level | totals.totalAllowances | number | Required |
| Total Taxable Amount Excluding VAT | totals.totalAmountExcludingTax | number | Required |
| VAT Total | totals.totalTaxAmount | number | Required |
| Invoice Total Amount | totals.totalAmountIncludingTax | number | Required |
| Pre-Paid Amount | totals.prepaidAmount | number | Required |
| Amount Due for Payment | totals.amountDue | number | Required |
| Rounding Amount | totals.roundingAmount | number | Optional |
| Field Name | GETS Path | Data Type | Required |
|---|
| Payment Means | payment.paymentMeans[].paymentMeansCode | string | Optional |
| Payment Terms | payment.paymentTerms[].note | string | Conditional |
| Payee Account Number | payment.paymentMeans[].creditTransferInfo.payeeFinancialAccountId | string | Conditional |
Business Configuration
| Field Name | GETS Path | Data Type | Required |
|---|
| Self Billed | meta.config.isSelfBilled | boolean | Required |
| Third Party | meta.config.isThirdParty | boolean | Required |
| Export | meta.config.isExport | boolean | Required |
| Summary | meta.config.isSummary | boolean | Required |
| Nominal Supply | meta.config.isNominal | boolean | Required |
| Prepayment | meta.config.isPrepayment | boolean | Required |
| Adjusted | meta.config.isAdjusted | boolean | Required |
KSA Extensions
Prepayment Details Extensions
| Field Name | GETS Path | Data Type | Required |
|---|
| Prepayment ID | extensions.sa_prepayment[].paymentId | string | Conditional |
| Prepayment Issue Date & Time | extensions.sa_prepayment[].issueDate | datetime | Conditional |
| Prepayment Document Type Code | extensions.sa_prepayment[].documentType | string | Conditional |
| Prepayment VAT Category Code | extensions.sa_prepayment[].vatCategory | string | Conditional |
| Prepayment VAT Rate | extensions.sa_prepayment[].vatRate | number | Conditional |
| Prepayment Taxable Amount | extensions.sa_prepayment[].taxableAmount | number | Conditional |
| Prepayment Tax Amount | extensions.sa_prepayment[].taxAmount | number | Conditional |
| Prepayment Adjustment Amount | extensions.sa_prepayment[].adjustmentAmount | number | Conditional |
KSA Digital Signature Extensions
| Field Name | GETS Path | Data Type | Required |
|---|
| Invoice Counter Value | extensions.sa_digital.icv | string | Required |
| Previous Invoice Hash | extensions.sa_digital.pih | string | Required |
| QR Code | extensions.sa_digital.qrCode | string | Required |
| Digital Signature | extensions.sa_digital.digitalSignature | string | Required |
Billing Frequency
| Field Name | GETS Path | Data Type | Required |
|---|
| Billing Frequency | header.invoicePeriod.frequency | string | Optional |