## Zoho Billing - Product, solutions, integrations, support, and resources Index Access the complete documentation index at: https://www.zoho.com/billing/llms.txt Use this file to discover all available documentation pages before proceeding. # VeriFactu in Zoho Billing Spain is introducing mandatory VeriFactu compliance for all transactions. All VAT-registered businesses that pay Corporate Income Tax in Spain and are not subject to the SII Reporting mandate will be required to adapt VeriFactu for all their domestic transactions starting 1 January 2026. Self-employed individuals, freelancers, and smaller enterprises are required to adapt VeriFactu starting 1 July 2026. ## How VeriFactu Works in Zoho Billing Zoho Billing uses B2Brouter as the authorized service provider for sending invoices to AEAT. B2Brouter is a certified e-invoicing service provider that facilitates the exchange of electronic documents such as invoices. Here’s how VeriFactu works in Zoho Billing: **Pushing Invoices** * When you create an invoice, it is saved in the _Draft_ status which you should verify and push to AEAT. * B2Brouter checks the invoice and transmits it to AEAT securely. * A QR code is added to the invoice once the invoice is validated by AEAT, and a notification is sent to your system with the invoice status. * You can then share this invoice with your customer through your preferred communication channel. **Note:** Zoho Billing does not charge for pushing invoices to B2Brouter. The number of invoices you can send depends on your B2Brouter plan. You can also purchase addons directly from B2Brouter if required. **Handling Failed Invoices** * If an invoice is failed to be pushed to AEAT, you will receive a notification that includes the reason for rejection. You can edit the invoice and push it to AEAT again. * If an error occurs after the invoice has been pushed to AEAT, you have to create a new invoice to rectify the error. **Making Changes to Pushed Invoices** * You cannot edit or delete an invoice once it is pushed to AEAT. * If you have pushed an incorrect invoice which is in _Draft_ status, you can cancel it in Zoho Billing and the invoice gets cancelled in AEAT through B2Brouter. * If you have pushed an incorrect invoice which is already sent to your customer, you can cancel it by creating a cancellation invoice. * If you had already cancelled the invoice in AEAT through B2Brouter, you can mark the invoice as cancelled in Zoho Billing. You can create a new invoice again and push it to AEAT. ## Set Up VeriFactu in Zoho Billing To set up VeriFactu in Zoho Billing, you must have a B2Brouter account. If you don’t have an account already, you can create one and proceed with the setup. **Note:** * B2Brouter offers special pricing for Zoho customers. Reach out to our support team at [](mailto:support@zohobilling.com)[support@zohobilling.com](mailto:support@zohobilling.com) to learn more. * If you already have a B2Brouter account, make sure you are subscribed to their **eDocExchange**. An eDocExchange subscription is required to access their _Developers_ module. While setting up VeriFactu in Zoho Billing, you will have to enter the Project Identifier, API Key, and Signature Key that can be found in your B2Brouter account. Here’s how to find them: * Log in to your _B2Brouter_ account. * Go to **Settings**. * Select **VeriFactu** under _Taxes_. * Enter the required details and click **Save** to enable VeriFactu in B2Brouter. * To copy the Project Identifier: * Go to **Developers** and click the **Edit** icon next to the Groups dropdown. * Copy the **Account Identifier** next to the account name. * To copy the API Key: * Under **Developers**, navigate to the **API Key** tab. * Click **Show API Key** and copy the key that appears. * To copy the Signature Key: * Under **Developers**, navigate to the **Webhooks** tab. * Click **Add webhook** and paste the webhook URL that you have to copy from Zoho Billing. * Mark **Changes in tax return status** under _Events_. * Mark **Show Key** under _Signature Key_ and copy the key that appears. * Click **Save**. Let’s see how you can set up VeriFactu in Zoho Billing: **Prerequisite:** You can set up VeriFactu only if you’ve enabled taxes in your Zoho Billing organisation. Make sure to enter your tax registration number with \*\*"ES"\*\* as the label. * Go to **Settings**. * Select **VeriFactu** under _Taxes & Compliance_ in the _Organization Settings_ pane.. * Click **Connect to B2Brouter**. * Enter the required details that are copied from your B2Brouter account. * Click **Copy Webhook URL**, which you can use when configuring your B2Brouter account. * Click **Finish** to complete the setup. ## Push Invoices via B2Brouter To push invoices to AEAT through B2Brouter: * Go to **Sales** and select [Invoices](/billing/help/invoice/#create-invoice). * Enter the required details. * Click **Save as Draft**. * Click **Push Invoice** at the top of the Invoice’s _Details_ page. The invoice push to AEAT will be initiated. Once the invoice is successfully pushed to AEAT, a QR code will be displayed on the invoice, and a notification is sent to your system about the status of the invoice. You can now send the invoice to your customer by clicking **Send Invoice**. **Note:** * Once an invoice is pushed to AEAT, it cannot be edited or deleted. * Invoices generated from subscriptions will be sent automatically to AEAT through B2Brouter. If there are any errors while pushing an invoice, you will be notified both in the app and by email. * You can push credit notes to AEAT only if they are created from an invoice, such as a cancellation invoice. Also, the invoice from which the credit note is created must also be pushed. ## Statuses of Invoices in VeriFactu The status of each invoice will be displayed in the invoice overview page. The statuses of the invoices in VeriFactu are: Status Description **Yet To Be Pushed** When you create an invoice and save it as a draft, the status of the invoice will be _Yet To Be Pushed_. **Initiated** When you send the invoice to AEAT, the status of the invoice will be _Initiated_. **Pushed** When the invoice is successfully pushed to AEAT and it is sent to your customer, then the status of the invoice will be changed to _Pushed_. **Failed** If there are any errors while pushing the invoice to AEAT, the invoice will not be sent and its status will be changed to _Failed_. You can correct the errors and try again. If an error occurs after the invoice has been pushed to AEAT, the status will also be changed to _Failed_, and you will need to create a new invoice to rectify the error. **Cancel Initiated** When you initiate cancellation of an invoice in Zoho Billing, the status of the invoice will be changed to _Cancel Initiated_. **Canceled** When the invoice is successfully cancelled in AEAT, the status of the invoice will be changed to _Canceled_. **Marked as Canceled** If the invoice was already cancelled in AEAT through B2Brouter and you mark it as canceled in Zoho Billing, the status of the invoice will be changed to _Marked as Canceled_. You can filter invoices based on these statuses by clicking the **All Invoices** dropdown at the top and then selecting the desired VeriFactu status. If you want to filter invoices using your own criteria, you can create a custom view with these statuses. ## Cancel Pushed Invoices After you create and push an invoice to AEAT, you may want to cancel the invoice due to reasons like order cancellation or incorrect entries. If the invoice is in the _Draft_ status and is yet to be sent to customer, you can cancel the invoice by following the below steps: * Log in to your Zoho Billing organization. * Go to _Sales_ and select **Invoices**. * Select the invoice which you want to cancel. * Click **Cancel** next to _VeriFactu Status_. * Select a reason and a description on why you’re cancelling the invoice in the popup that appears. * Click **Cancel**. The system will initiate the cancellation of the invoice, and its status will change to _Cancel Initiated_. Once the invoice is successfully canceled in AEAT, the status will update to _Canceled_. The invoice status will also be automatically updated to Canceled in B2Brouter. If the pushed invoice is already sent to your customers, you can cancel it by following the below steps: * Go to _Sales_ and select **Invoices**. * Select the invoice which you want to cancel. * Click the **More** icon and select **Cancel**. A cancellation invoice will now be created automatically in the _Credit Notes_ module. You can send the cancellation invoice to AEAT. Then, you can create a [correction invoice](/billing/help/sales/e-invoicing/spain.html#correction-invoice) for the cancelled invoice. If you had already cancelled the invoice in AEAT through B2Brouter, you can mark the invoice as cancelled in Zoho Billing. Here’s how: * Log in to your Zoho Billing organization. * Go to _Sales_ and select **Invoices**. * Select the invoice that you want to mark as cancelled. * Click the **More** icon and select **Mark as Cancelled**. * Enter the reason and again click **Mark as Cancelled** in the popup that appears. **Note:** Once an invoice is cancelled, the action cannot be reversed. Any associated transactions will be dissociated and excluded from your organisation's accounts. ## Correction Invoices Here’s how to create a correction invoice: * Go to _Sales_ and select **Invoices**. * Select the invoice for which you want to create a correction invoice. * Click the **More** icon and select **Create Correction Invoice**. * Make the necessary changes. * Click **Save as Draft**. Now, a new invoice with the corrected details will be created. The invoice for which you created a correction invoice will be shown in the invoice PDF as _Preceding Invoice#_. You can then send this invoice to AEAT. ## Allow Users To Push and Cancel Invoices You can allow users in your organization to push and cancel invoices via B2Brouter. Here’s how: * Go to _Settings_. * Select **Roles** under _Users & Roles_ in the _Organization Settings_ pane. * Create a [new role](/billing/help/settings/users.html#custom-roles) or [edit](/billing/help/settings/users.html#editing-users) an existing one. * Mark **Push and Cancel Transactions** under _e-Invoicing_ to allow users with this role to push and cancel invoices. You can unmark the option to restrict users to perform these actions. ## Disable VeriFactu in Zoho Billing **Note:** Once enabled, an organization should remain in VeriFactu for the rest of the calendar year. However, you can disable VeriFactu in Zoho Billing if you are migrating to another application. Here’s how you can disable VeriFactu in Zoho Billing: * Go to _Settings_. * Select **VeriFactu** under _Taxes & Compliance_ in the _Organization Settings_ pane. * Slide the toggle near _Push Transactions to AEAT_ to **Disabled** if you don’t want to send invoices to AEAT. You can enable them anytime by sliding the toggle to **Enabled**. You can also delete the VeriFactu configuration if you want. Here’s how: * Go to _Settings_. * Select **VeriFactu** under _Taxes & Compliance_ in the _Organization Settings_ pane. * Click **Disable** at the top. * In the popup, click **Proceed** to confirm the action. The configuration will be deleted. To send transactions again via B2Brouter, you should [configure VeriFactu](/billing/help/sales/e-invoicing/spain.html#set-up) in _Settings_.