# Allowance and charge reason codes

The values reasonCode takes on an allowance or a charge, in each country. In the UAE you send a value such as advertising; in every other country you send the code itself, such as AA.

A reason code says why a discount (an allowance) or an extra cost (a charge) was added to an invoice. GETS takes it in two fields:

- `allowancesAndCharges[].reasonCode`, for an allowance or charge on the whole document
- `lineItems[].discountsOrCharges[].reasonCode`, for an allowance or charge on one line

`isCharge` decides which list the code comes from. With `isCharge: true` the entry is a charge, and its reason comes from the [charge reasons](https://docs.complyance.io/api-reference/gets/reason-codes/#charge-reasons) list (UNCL 7161). With `isCharge: false` it is an allowance, and its reason comes from the [allowance reasons](https://docs.complyance.io/api-reference/gets/reason-codes/#allowance-reasons) list (UNCL 5189). Put a description in your own words in `reason`.

## What to send in each country

| Country | Send | Example |
| - | - | - |
| United Arab Emirates | The value in the **Send in the UAE** column | `advertising` |
| Saudi Arabia, Oman, Malaysia, Belgium, Germany | The code itself | `AA` |

**In the UAE**, send the value, not the code. Complyance writes the matching code into the e-invoice for you. A code such as `AA` is rejected with `IBR-CL-20` on a charge or `IBR-CL-19` on an allowance. An allowance or charge whose `taxCategory` is `E` must have a reason code (`IBR-168-AE`, `IBR-169-AE`).

**In every other country**, the code goes into the e-invoice unchanged, so it must be a code from the list. In Saudi Arabia every document-level charge needs a reason code (`BR-KSA-19`), and a charge code outside the list returns the warning `BR-KSA-CL-06`. In Oman every document-level charge needs a reason code (`IBR-042-OM`).

```json title="A charge on a line in the UAE"
"lineItems": [
  {
    "id": "1",
    "name": "Cloud subscription — Business plan",
    "quantity": 20,
    "unitCode": "PCE",
    "price": { "amount": 100, "grossPrice": 100 },
    "discountsOrCharges": [
      {
        "isCharge": true,
        "reasonCode": "rush_delivery",
        "reason": "Express shipping",
        "amount": 50
      }
    ],
    "lineTaxableValue": 2050,
    "taxCategory": "S",
    "taxRate": 5,
    "taxAmount": 102.5
  }
]
```

```json title="The same charge in Saudi Arabia, Oman, Malaysia, Belgium or Germany"
"discountsOrCharges": [
  {
    "isCharge": true,
    "reasonCode": "AAT",
    "reason": "Express shipping",
    "amount": 50
  }
]
```

A line charge is part of the line’s net amount, so `lineTaxableValue` (here 20 × 100 + 50) and the line’s tax include it, and so do the document `totals`. Use the tax category and rate that apply in each country; see the [field reference](https://docs.complyance.io/api-reference/gets/fields/).

## Charge reasons

UNCL 7161, version D.16B. Use these when `isCharge` is `true`.

| Code | Send in the UAE | Name |
| - | - | - |
| `AA` | `advertising` | Advertising |
| `AAA` | `telecommunication` | Telecommunication |
| `AAC` | `technical_modification` | Technical modification |
| `AAD` | `job_order_production` | Job-order production |
| `AAE` | `outlays` | Outlays |
| `AAF` | `off_premises` | Off-premises |
| `AAH` | `additional_processing` | Additional processing |
| `AAI` | `attesting` | Attesting |
| `AAS` | `acceptance` | Acceptance |
| `AAT` | `rush_delivery` | Rush delivery |
| `AAV` | `special_construction` | Special construction |
| `AAY` | `airport_facilities` | Airport facilities |
| `AAZ` | `concession` | Concession |
| `ABA` | `compulsory_storage` | Compulsory storage |
| `ABB` | `fuel_removal` | Fuel removal |
| `ABC` | `into_plane` | Into plane |
| `ABD` | `overtime` | Overtime |
| `ABF` | `tooling` | Tooling |
| `ABK` | `miscellaneous` | Miscellaneous |
| `ABL` | `additional_packaging` | Additional packaging |
| `ABN` | `dunnage` | Dunnage |
| `ABR` | `containerisation` | Containerisation |
| `ABS` | `carton_packing` | Carton packing |
| `ABT` | `hessian_wrapped` | Hessian wrapped |
| `ABU` | `polyethylene_wrap_packing` | Polyethylene wrap packing |
| `ACF` | `miscellaneous_treatment` | Miscellaneous treatment |
| `ACG` | `enamelling_treatment` | Enamelling treatment |
| `ACH` | `heat_treatment` | Heat treatment |
| `ACI` | `plating_treatment` | Plating treatment |
| `ACJ` | `painting` | Painting |
| `ACK` | `polishing` | Polishing |
| `ACL` | `priming` | Priming |
| `ACM` | `preservation_treatment` | Preservation treatment |
| `ACS` | `fitting` | Fitting |
| `ADC` | `consolidation` | Consolidation |
| `ADE` | `bill_of_lading` | Bill of lading |
| `ADJ` | `airbag` | Airbag |
| `ADK` | `transfer` | Transfer |
| `ADL` | `slipsheet` | Slipsheet |
| `ADM` | `binding` | Binding |
| `ADN` | `repair_or_replacement_of_broken_returnable_package` | Repair or replacement of broken returnable package |
| `ADO` | `efficient_logistics` | Efficient logistics |
| `ADP` | `merchandising` | Merchandising |
| `ADQ` | `product_mix` | Product mix |
| `ADR` | `other_services` | Other services |
| `ADT` | `pick_up` | Pick-up |
| `ADW` | `chronic_illness` | Chronic illness |
| `ADY` | `new_product_introduction` | New product introduction |
| `ADZ` | `direct_delivery` | Direct delivery |
| `AEA` | `diversion` | Diversion |
| `AEB` | `disconnect` | Disconnect |
| `AEC` | `distribution` | Distribution |
| `AED` | `handling_of_hazardous_cargo` | Handling of hazardous cargo |
| `AEF` | `rents_and_leases` | Rents and leases |
| `AEH` | `location_differential` | Location differential |
| `AEI` | `aircraft_refueling` | Aircraft refueling |
| `AEJ` | `fuel_shipped_into_storage` | Fuel shipped into storage |
| `AEK` | `cash_on_delivery` | Cash on delivery |
| `AEL` | `small_order_processing_service` | Small order processing service |
| `AEM` | `clerical_or_administrative_services` | Clerical or administrative services |
| `AEN` | `guarantee` | Guarantee |
| `AEO` | `collection_and_recycling` | Collection and recycling |
| `AEP` | `copyright_fee_collection` | Copyright fee collection |
| `AES` | `veterinary_inspection_service` | Veterinary inspection service |
| `AET` | `pensioner_service` | Pensioner service |
| `AEU` | `medicine_free_pass_holder` | Medicine free pass holder |
| `AEV` | `environmental_protection_service` | Environmental protection service |
| `AEW` | `environmental_clean_up_service` | Environmental clean-up service |
| `AEX` | `national_cheque_processing_service_outside_account_area` | National cheque processing service outside account area |
| `AEY` | `national_payment_service_outside_account_area` | National payment service outside account area |
| `AEZ` | `national_payment_service_within_account_area` | National payment service within account area |
| `AJ` | `adjustments` | Adjustments |
| `AU` | `authentication` | Authentication |
| `CA` | `cataloguing` | Cataloguing |
| `CAB` | `cartage` | Cartage |
| `CAD` | `certification` | Certification |
| `CAE` | `certificate_of_conformance` | Certificate of conformance |
| `CAF` | `certificate_of_origin` | Certificate of origin |
| `CAI` | `cutting` | Cutting |
| `CAJ` | `consular_service` | Consular service |
| `CAK` | `customer_collection` | Customer collection |
| `CAL` | `payroll_payment_service` | Payroll payment service |
| `CAM` | `cash_transportation` | Cash transportation |
| `CAN` | `home_banking_service` | Home banking service |
| `CAO` | `bilateral_agreement_service` | Bilateral agreement service |
| `CAP` | `insurance_brokerage_service` | Insurance brokerage service |
| `CAQ` | `cheque_generation` | Cheque generation |
| `CAR` | `preferential_merchandising_location` | Preferential merchandising location |
| `CAS` | `crane` | Crane |
| `CAT` | `special_colour_service` | Special colour service |
| `CAU` | `sorting` | Sorting |
| `CAV` | `battery_collection_and_recycling` | Battery collection and recycling |
| `CAW` | `product_take_back_fee` | Product take back fee |
| `CAX` | `quality_control_released` | Quality control released |
| `CAY` | `quality_control_held` | Quality control held |
| `CAZ` | `quality_control_embargo` | Quality control embargo |
| `CD` | `car_loading` | Car loading |
| `CG` | `cleaning` | Cleaning |
| `CS` | `cigarette_stamping` | Cigarette stamping |
| `CT` | `count_and_recount` | Count and recount |
| `DAB` | `layout_design` | Layout/design |
| `DAC` | `assortment_allowance` | Assortment allowance |
| `DAD` | `driver_assigned_unloading` | Driver assigned unloading |
| `DAF` | `debtor_bound` | Debtor bound |
| `DAG` | `dealer_allowance` | Dealer allowance |
| `DAH` | `allowance_transferable_to_the_consumer` | Allowance transferable to the consumer |
| `DAI` | `growth_of_business` | Growth of business |
| `DAJ` | `introduction_allowance` | Introduction allowance |
| `DAK` | `multi_buy_promotion` | Multi-buy promotion |
| `DAL` | `partnership` | Partnership |
| `DAM` | `return_handling` | Return handling |
| `DAN` | `minimum_order_not_fulfilled_charge` | Minimum order not fulfilled charge |
| `DAO` | `point_of_sales_threshold_allowance` | Point of sales threshold allowance |
| `DAP` | `wholesaling_discount` | Wholesaling discount |
| `DAQ` | `documentary_credits_transfer_commission` | Documentary credits transfer commission |
| `DL` | `delivery` | Delivery |
| `EG` | `engraving` | Engraving |
| `EP` | `expediting` | Expediting |
| `ER` | `exchange_rate_guarantee` | Exchange rate guarantee |
| `FAA` | `fabrication` | Fabrication |
| `FAB` | `freight_equalization` | Freight equalization |
| `FAC` | `freight_extraordinary_handling` | Freight extraordinary handling |
| `FC` | `freight_service` | Freight service |
| `FH` | `filling_handling` | Filling/handling |
| `FI` | `financing` | Financing |
| `GAA` | `grinding` | Grinding |
| `HAA` | `hose` | Hose |
| `HD` | `handling` | Handling |
| `HH` | `hoisting_and_hauling` | Hoisting and hauling |
| `IAA` | `installation` | Installation |
| `IAB` | `installation_and_warranty` | Installation and warranty |
| `ID` | `inside_delivery` | Inside delivery |
| `IF` | `inspection` | Inspection |
| `IR` | `installation_and_training` | Installation and training |
| `IS` | `invoicing` | Invoicing |
| `KO` | `koshering` | Koshering |
| `L1` | `carrier_count` | Carrier count |
| `LA` | `labelling` | Labelling |
| `LAA` | `labour` | Labour |
| `LAB` | `repair_and_return` | Repair and return |
| `LF` | `legalisation` | Legalisation |
| `MAE` | `mounting` | Mounting |
| `MI` | `mail_invoice` | Mail invoice |
| `ML` | `mail_invoice_to_each_location` | Mail invoice to each location |
| `NAA` | `non_returnable_containers` | Non-returnable containers |
| `OA` | `outside_cable_connectors` | Outside cable connectors |
| `PA` | `invoice_with_shipment` | Invoice with shipment |
| `PAA` | `phosphatizing_steel_treatment` | Phosphatizing (steel treatment) |
| `PC` | `packing` | Packing |
| `PL` | `palletizing` | Palletizing |
| `PRV` | `price_variation` | Price variation |
| `RAB` | `repacking` | Repacking |
| `RAC` | `repair` | Repair |
| `RAD` | `returnable_container` | Returnable container |
| `RAF` | `restocking` | Restocking |
| `RE` | `re_delivery` | Re-delivery |
| `RF` | `refurbishing` | Refurbishing |
| `RH` | `rail_wagon_hire` | Rail wagon hire |
| `RV` | `loading` | Loading |
| `SA` | `salvaging` | Salvaging |
| `SAA` | `shipping_and_handling` | Shipping and handling |
| `SAD` | `special_packaging` | Special packaging |
| `SAE` | `stamping` | Stamping |
| `SAI` | `consignee_unload` | Consignee unload |
| `SG` | `shrink_wrap` | Shrink-wrap |
| `SH` | `special_handling` | Special handling |
| `SM` | `special_finish` | Special finish |
| `SU` | `set_up` | Set-up |
| `TAB` | `tank_renting` | Tank renting |
| `TAC` | `testing` | Testing |
| `TT` | `transportation_third_party_billing` | Transportation - third party billing |
| `TV` | `transportation_by_vendor` | Transportation by vendor |
| `V1` | `drop_yard` | Drop yard |
| `V2` | `drop_dock` | Drop dock |
| `WH` | `warehousing` | Warehousing |
| `XAA` | `combine_all_same_day_shipment` | Combine all same day shipment |
| `YY` | `split_pick_up` | Split pick-up |
| `ZZZ` | `mutually_defined` | Mutually defined |

## Allowance reasons

UNCL 5189, version D.16B. Use these when `isCharge` is `false`.

| Code | Send in the UAE | Name |
| - | - | - |
| `41` | `bonus_for_works_ahead_of_schedule` | Bonus for works ahead of schedule |
| `42` | `other_bonus` | Other bonus |
| `60` | `manufacturers_consumer_discount` | Manufacturer's consumer discount |
| `62` | `due_to_military_status` | Due to military status |
| `63` | `due_to_work_accident` | Due to work accident |
| `64` | `special_agreement` | Special agreement |
| `65` | `production_error_discount` | Production error discount |
| `66` | `new_outlet_discount` | New outlet discount |
| `67` | `sample_discount` | Sample discount |
| `68` | `end_of_range_discount` | End-of-range discount |
| `70` | `incoterm_discount` | Incoterm discount |
| `71` | `point_of_sales_threshold_allowance` | Point of sales threshold allowance |
| `88` | `material_surcharge_deduction` | Material surcharge/deduction |
| `95` | `discount` | Discount |
| `100` | `special_rebate` | Special rebate |
| `102` | `fixed_long_term` | Fixed long term |
| `103` | `temporary` | Temporary |
| `104` | `standard` | Standard |
| `105` | `yearly_turnover` | Yearly turnover |

The UAE [code lists](https://docs.complyance.io/countries/ae/code-lists/) page has both lists with their full descriptions, and a CSV download of each.

Last updated 9 October 2026

Source: https://docs.complyance.io/api-reference/gets/reason-codes/
