> This page is for Product Documentation.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.navipartner.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.navipartner.com/_mcp/server.

# Set up fiscalization compliance - Spain

> This article details how to configure NP Retail for compliance in Spain.

This guide explains how to configure NP Retail to comply with Spanish fiscal laws. Follow these steps:

1. Open the **ES Fiscalization Setup** page, and enable **ES Fiscalization**.

2. In the **Endpoints** section, enter the following links:

   * Test environment: *[https://test.es.sign.fiskaly.com/api/v1/](https://test.es.sign.fiskaly.com/api/v1/)*
   * Live environment: *[https://live.es.sign.fiskaly.com/api/v1/](https://live.es.sign.fiskaly.com/api/v1/)*

3. If using the live environment, ensure the **Live** toggle switch is enabled so that transactions are sent to the correct API.

4. In the **Invoicing** tab, set the maximum amount for issuing simplified invoices in the **Simplified Invoice Limit** field.\
   If this amount is exceeded, a complete invoice is generated.

5. Enter the invoice description in the **Invoice Description** field.

   ![spain\_1](/_fern-files/_img/a2ac9e7f25e9d987b00ec9ca2f0a6dcf5680a4e8967c86fe7e074361e9f90b93.webp)

6. Go to the **POS Audit Profiles** page and create a new audit profile for all POS units.

7. Set its **Audit Handler** to **ES_FISKALY**.

8. Select **Successful Sales** in the **Fill Sale Fiscal No.** field.

9. Enable the **Require Item Return Reason** toggle switch.\
   As a result, when processing a return, a **Return Reason Code** will be required.

   ![spain\_2](/_fern-files/_img/f8caaf851a6adc2acceee03f6d91420f6e827fd6599ac71745c7bde0c08570a2.webp)

10. Navigate to the **ES Organizations** administrative section, and provide all the necessary information in the **ES Organization Card**.\
    The **API Key** and **Secret** are obtained from Fiskaly upon API creation. These credentials are displayed only once, so ensure they are copied and entered immediately.

    ![spain\_3](/_fern-files/_img/c8318333ce8f8081a82d66307738acd2980b8b0fed4aa90c6ad11bd4ad844db7.webp)

11. In the **Taxpayer** section, select the applicable business territory.\
    The system will configure compliance settings based on the selected territory (TicketBAI or Verifactu).

12. Click **Create Taxpayer**, to register the organization in Business Central.\
    The Fiskaly dashboard is updated accordingly.

    Company details (**Company Name**, **Tax Number**) and software-related information (**Software Name**, **License**, **Version**) are automatically populated.

13. (Optional) If the server is unavailable during taxpayer creation, use:
    * **Retrieve Taxpayer** to refresh the taxpayer details.
    * **Retrieve Software** to refresh the software details.

14. (Optional) To deactivate an organization, use the **Disable** action.\
    Once disabled, the same organization can't be reactivated.\
    Each organization represents a single POS store.

    > **Note:** Before creating an organization in Business Central, you must first create a managed organization on the Fiskaly dashboard. Each POS store requires a separate ES Organization.

15. After the organization is created, navigate to the **ES Signers** table, enter the required information, and select the previously created organization from the **ES Organization Code** field.

16. Click **Create** in the ribbon to activate the signer.\
    The certificate-related details are automatically populated, and the signer state is updated to **Enabled**.

    ![spain\_4](/_fern-files/_img/8df18e2c210b6b8daa2f191c6a43097d5dabda6a8dfd4b9cb5fcc8744453184c.webp)

    The **Disable** action is used to put the signer out of work, and when executed, the signer's **State** is updated to **Disabled**.\
    If the signer’s **State** is **Defective**, it may be due to an expired certificate or updated taxpayer details.\
    If the server is unavailable during signer creation, use the **Retrieve** action to update certificate details from Fiskaly.\
    Only one signer is needed per organization.

17. From the **ES Clients** table, select the POS units, and link them to the previously created organization in the **ES Organization Code** field.

18. Click **Create** in the ribbon to connect the POS unit with the organization.\
    The signer is assigned to the related POS unit in the **ES Signer Code** field.\
    The client's **State** is updated, and the **Signer ID** is populated automatically.

    ![spain\_5](/_fern-files/_img/999496fd075cdb0ee631c6968f026864b573b13c8326afba85396b05f0730466.webp)

    Each organization (store) has a single signer, used by all associated POS units.

    You can use the **Disable** action if you need to deactivate a POS unit. The **Client State** will be updated to **Disabled** as a result.

    If the server is unavailable during client creation, you can use the **Retrieve** action to refresh the **Signer ID** from Fiskaly.

19. In the **ES Clients** table, define the **No. Series** for:
    * Simplified Invoices – **Invoice No. Series**
    * Complete Invoices – **Complete Invoice No. Series**
    * Corrective Invoice – **Correction Invoice No. Series**

Although there isn't a strict law regulation on invoice numbering, there are certain [<ins>known recommendations</ins>](https://sede.agenciatributaria.gob.es/Sede/en_gb/iva/facturacion-registro/facturacion-iva.html):

* Use uppercase letters (A-Z) and digits (0-9). Avoid lowercase letters.
* Blank space: if you use a blank space, only one character will be used, and never any more.
* Usage of special characters: Dash '-', underscore '\_', forward slash '/' and full stop '.'
* If using a series prefix, it should precede the invoice number with a space separator.
* The invoice number must not start with blanks (therefore text adjusted to the left).

20. Define the possible return reasons in the **Return Reason** table.
21. Navigate to the **Return Reason Mapping** table, and assign fiscalization correction options from the drop-down list.

    ![spain\_6](/_fern-files/_img/4534251063202c94570f08002baaedad0d6ee8758069621577a095e6b16a8027.webp)

    All POS transactions are recorded in the **ES POS Audit Log Aux. Info** table.

    ![spain\_7](/_fern-files/_img/5effc361c125101bf213d1e7f5e875243bc7f7b08404c356ad0fd90099342762.webp)

### ES POS Audit Log Aux. Info reference

The following fields and options are found in the **ES POS Audit Log Aux. Info** table:

| Field Name                                 | Description                                                                                                                                       |
| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| **ES Organization Code**                   | Identifies the organization that processed the transaction.                                                                                       |
| **ES Signer Code**                         | Specifies the signer used for fiscalization.                                                                                                      |
| **Invoice Type**                           | Specifies whether the issued invoice is **Simplified**, **Complete**, **Correcting**, **Enrichment**, **Remedy** or **External**.                 |
| **Invoice No.**                            | Specifies the invoice number given from the number series previously set on the **ES Clients Setup** page.                                        |
| **Invoice State**                          | Specifies whether the invoice was **Issued**, **Cancelled** or **Imported**.                                                                      |
| **Invoice Registration/Cancelation State** | Reflects the invoice status on Fiskaly: **Pending**, **Registered**, **Requires Correction**, **Requires Inspection**, **Stored** or **Invalid**. |

The following actions are available in the **ES POS Audit Log Aux. Info** ribbon:

* **Create** - If the invoice creation at the end of sale fails, you can use this action to create it after first selecting the failed transaction in the table.

  ![spain\_8](/_fern-files/_img/f969e2d3349779953c566c0723a09d02b32125ca322cbad8346f167d5a310ca5.webp)

  When the action is executed, a window with the invoice recipient information is opened, and you can provide all the necessary information regarding the customer to create a **Complete Invoice**.

  ![spain\_9](/_fern-files/_img/619868c1e4b178b42f5ebaf672260b5715fdd9784a4da0242661fe0f3e66fd6d.webp)

* **Retrieve** - This action updates the data in the table according to the invoice status on the Fiskaly end. This action only updates the data for the selected transaction.