# Base and modifiers

A base identifies the document you are sending; a variant or modifier refines it. Select the combination for your country before filling the GETS payload.

In a [Unify submission](https://docs.complyance.io/api-reference/unify/submit-and-retrieve/), `documentType` is an object beside `payload`. Select exactly one `base`. Send `modifiers` as an array, even when it is empty. Include `variant` only when the country and base offer one. These selections affect which GETS fields you must supply; see the [field reference](https://docs.complyance.io/api-reference/gets/fields/).

On your country’s fields page, such as [UAE fields](https://docs.complyance.io/countries/ae/fields/), the **Table** view summarises requirements across all document types in **Requirement** and explains conditions in **Description**; **Enums** lists fixed allowed values. **Required fields by document type**, under the table, lists the paths each document type, modifier and variant makes mandatory. Open **List with sample request** to choose your document type, modifiers and variant under **Scope** and see the matching field paths and sample.

| Selection | Request field | Meaning |
| - | - | - |
| Base | `documentType.base` | The document category, such as `tax_invoice` or `credit_note`. See [document types](https://docs.complyance.io/api-reference/gets/document-types/) for country availability. |
| Variant | `documentType.variant` | An optional subtype of the base. Select no more than one. |
| Modifiers | `documentType.modifiers` | Additional treatments or classifications, selected as an array. Use `[]` when none apply. |

For an ordinary UAE tax invoice:

```json title="Ordinary UAE tax invoice selection"
{
  "country": "AE",
  "documentType": {
    "base": "tax_invoice",
    "modifiers": []
  }
}
```

This is a **selection excerpt**, not a complete request. The [quickstart](https://docs.complyance.io/get-started/quickstart/) supplies the GETS payload and other required request fields.

## What modifiers change

A modifier can change the required fields or the treatment of a document. Some examples of what to check (every country’s modifiers are under [Choices by country](https://docs.complyance.io/api-reference/gets/base-and-modifiers/#choices-by-country)):

| Selection | What to check |
| - | - |
| `out_of_scope` (UAE) | Out-of-scope commercial documents use their own UAE document type codes and tax rules. |
| `self_billed` (UAE) | A self-billed invoice or credit note uses the UAE self-billing validation profile. |
| `reverse_charge` (UAE) | Supply the applicable reverse-charge information on each affected line. |
| `b2g` (Germany, Belgium, Saudi Arabia) | Check your country’s fields page for the fields this selection requires, such as [Germany fields](https://docs.complyance.io/countries/de/fields/#required-by-type). |

The UAE has **no separate variant**. For example, an out-of-scope UAE invoice uses `base: "tax_invoice"` with `modifiers: ["out_of_scope"]`, not an `out_of_scope` variant. An out-of-scope document’s lines must be exempt, zero rated or not subject to VAT (ibr-122-ae), so it cannot carry reverse-charge lines either. If you send `out_of_scope` with `self_billed`, the document is sent as out of scope (type code `480` or `81`), not as self-billed. See [UAE document types](https://docs.complyance.io/api-reference/gets/document-types/#uae-invoice-and-credit-note-selections) and [UAE fields](https://docs.complyance.io/countries/ae/fields/) for the supported routes and their requirements.

Variants are country-specific: Germany’s `partial` is an invoice variant; Malaysia’s `refund` is a credit-note variant. Do not assume a modifier or variant accepted for one country is accepted for another.

## Choices by country

The bases, variants and modifiers each country offers, and the combinations its validation rejects.

### United Arab Emirates (`AE`)

| Choice | Values |
| - | - |
| Bases | `tax_invoice` and `credit_note` |
| Variants | None |
| Modifiers | `free_trade_zone`, `disclosed_agent`, `e_commerce`, `export`, `reverse_charge`, `continuous_supply`, `deemed_supply`, `summary`, `margin_scheme`, `self_billed` and `out_of_scope` |

ibr-157-ae: an out-of-scope document cannot be a summary invoice, a deemed supply or under the margin scheme.

- Do not combine `out_of_scope` with `summary`, `deemed_supply` or `margin_scheme`.

### Saudi Arabia (`SA`)

| Choice | Values |
| - | - |
| Bases | `tax_invoice`, `credit_note`, `debit_note`, `simplified_invoice`, `simplified_credit_note` and `simplified_debit_note` |
| Variants | `prepayment` |
| Modifiers | `export`, `summary`, `continuous_supply`, `b2g`, `third_party`, `nominal_supply`, `nominal` and `self_billed` |

BR-KSA-31: simplified documents cannot be self-billed.

- `self_billed` works only with tax invoices, credit notes and debit notes.

BR-KSA-07: an export invoice cannot be self-billed.

- Do not combine `export` with `self_billed`.

### Oman (`OM`)

| Choice | Values |
| - | - |
| Bases | `tax_invoice`, `credit_note`, `debit_note`, `simplified_invoice`, `simplified_credit_note` and `simplified_debit_note` |
| Variants | `advance` |
| Modifiers | `self_billed`, `third_party`, `summary`, `continuous_supply`, `export`, `deemed_supply`, `reverse_charge`, `margin_scheme`, `e_commerce`, `import_goods`, `special_zone_supplies` and `b2g` |

Oman’s transaction type rules reject these:

- `self_billed` works only with tax invoices and credit notes.
- `summary` works only with tax invoices, credit notes and debit notes.
- `export` works only with tax invoices, credit notes and debit notes.
- `reverse_charge` works only with tax invoices and credit notes.
- `margin_scheme` works only with tax invoices, credit notes and debit notes.
- `import_goods` works only with tax invoices and credit notes.
- `b2g` works only with tax invoices, credit notes and debit notes.
- `advance` works only with tax invoices and simplified invoices.
- Do not combine `self_billed` with `third_party`, `export`, `reverse_charge` or `import_goods`.
- Do not combine `summary` with `continuous_supply`, `export`, `margin_scheme`, `import_goods` or `advance`.
- Do not combine `continuous_supply` with `deemed_supply`, `margin_scheme` or `import_goods`.
- Do not combine `export` with `deemed_supply`, `reverse_charge`, `margin_scheme` or `import_goods`.
- Do not combine `deemed_supply` with `margin_scheme` or `advance`.
- Do not combine `reverse_charge` with `margin_scheme` or `import_goods`.
- Do not combine `margin_scheme` with `import_goods`.
- Do not combine `e_commerce` with `import_goods`.

### Malaysia (`MY`)

| Choice | Values |
| - | - |
| Bases | `tax_invoice`, `credit_note` and `debit_note` |
| Variants | `refund` |
| Modifiers | `self_billed`, `is_receipt`, `peppol` and `b2b` |

- `refund` works only with credit notes.

### Belgium (`BE`)

| Choice | Values |
| - | - |
| Bases | `tax_invoice`, `credit_note` and `debit_note` |
| Variants | None |
| Modifiers | `self_billed`, `export`, `reverse_charge`, `b2g` and `intra_community` |

Validation does not reject any pairing of these modifiers for Belgium. Each modifier still adds its own required fields.

### Germany (`DE`)

| Choice | Values |
| - | - |
| Bases | `tax_invoice`, `credit_note` and `debit_note` |
| Variants | `partial`, `partial_construction`, `partial_final_construction` and `final_construction` |
| Modifiers | `intra_community`, `self_billed`, `reverse_charge`, `export` and `b2g` |

Validation does not reject any pairing of these modifiers for Germany. Each modifier still adds its own required fields.

## If the selection is rejected

Check `country`, `base`, `variant` and each `modifiers` value against your chosen country’s options. Then use the field reference to supply any newly required fields. A validation failure returns `422` with field-level errors; [Unify errors](https://docs.complyance.io/api-reference/unify/errors/) explains the response and how to correct it.

Source: https://docs.complyance.io/api-reference/gets/base-and-modifiers/
