PDF Invoice and Credit Notes for WooCommerce allows your WooCommerce store to to automatically generate, manage, and send professional PDF invoices and credit notes for every order.
Installation
โ Back to topTo start using a product from WooCommerce.com, you can use the โAdd to storeโ functionality on the order confirmation page or the My subscriptions section in your account.
- Navigate to My subscriptions.
- Find the Add to store button next to the product youโre planning to install.
- Follow the instructions on the screen, and the product will be automatically added to your store.
Alternative options and more information at:
Managing WooCommerce.com subscriptions.
Setup and Configuration
โ Back to topGetting started
โ Back to topTo set upย your store with PDF Invoice and Credit Notes for WooCommerce:
- Getting Started
- To set up your store with PDF Invoices:
- Go to: WooCommerce > Settings > Invoices.
- Fill in the required fields:
- Company Name
- Full Address
- Phone Number
- Email Address
- (Optional) Upload your Company Logo.
- Choose when you want to send the invoice or credit note:
- Send the invoice when the order is completed
- Send the invoice when the order is processing
- Send a credit note when the order is refunded
- Choose a theme under Choose a theme for your invoice section.
- Finally, click Save changes.
Advanced configuration
โ Back to topAdd notes in the invoices
To add notes to your invoices, go to WooCommerce > Settings > Invoices. Under the Add Field section, enter the desired name for your notes in the Field Label input, then click Add Field. Confirm the popup by clicking Yes.
A new field will be created with the name you entered. You can now enter any value you want in this field and then click Save Changes.
To delete a field, go to the “Delete Custom Fields” section and click on the one you want to remove.
Enable customers to see theirs invoices and credits notes
To enable customers to see their invoices and credit note , go to WooCommerce > Settings > Invoices, then scroll to Simplify customer access to documents. Check the box labeled “Enable this to show download buttons for invoices and credit notes in the Orders section of the customer’s My Account page.“
Finally, click Save changes.
Change credit note prefix
To change the credit note prefix, , go to WooCommerce > Settings > Invoices , In the “Credit Note Prefix” section, enter the desired prefix, then click Save changes.
QuickBooks Online Integration
โ Back to topWhat the QuickBooks integration does
โ Back to topWhen QuickBooks is correctly configured and connected, the plugin can automatically synchronize your WooCommerce orders with your QuickBooks Online company.
For each paid order (according to the statuses you configure), the plugin can:
- Create or reuse a Customer in QuickBooks based on the WooCommerce billing details.
- Create a QuickBooks Invoice that reflects the WooCommerce order (customer, date, amounts, and line items).
- Optionally create a Payment in QuickBooks linked to this invoice to mark it as paid (depending on how the integration is implemented in your version).
If QuickBooks is unavailable or an error occurs, the WooCommerce order still completes normally; only the QuickBooks synchronization fails for that order.
Where to configure QuickBooks
โ Back to topThe QuickBooks settings are located in a dedicated tab inside your invoices settings:
- Go to WooCommerce > Settings > Invoices.
- Click on the โQuickBooksโ sub-tab (or section).
In this tab, youโll see:
- The connection status (Connected / Not connected).
- Fields to enter your QuickBooks OAuth credentials:
- Environment (Sandbox or Production)
- Client ID
- Client Secret
- A โConnect to QuickBooksโ button.
- A โDisconnectโ button when already connected.
Where to find your Client ID and Client Secret
โ Back to topTo obtain your Client ID and Client Secret:
- Go to the Intuit Developer portal and sign in with your QuickBooks Online account.
- Create or open your QuickBooks Online app (the app that will connect WooCommerce to QBO).
- In the app settings, go to the section typically named โKeys and Credentialsโ or similar.
- Copy the following from your app:
- Client ID
- Client Secret
- In your WordPress admin:
- Go to WooCommerce > Settings > Invoices > QuickBooks.
- Select the correct Environment:
- Sandbox if you are testing with a sandbox QuickBooks company.
- Production if you are connecting to your live QuickBooks company.
- Paste your Client ID and Client Secret in the corresponding fields.
- Click Save changes.
Configuring the redirect URL in QuickBooks
โ Back to topFor the connection to work, QuickBooks must accept the redirect URL used by your plugin.
- In your QuickBooks app settings (on the Intuit Developer portal), go to the Redirect URIs section.
- Add your pluginโs redirect URL, which is usually of the form:
https://your-site.com/wp-admin/admin-post.php?action=carien_qbo_oauth_callback - Save the app settings in QuickBooks.
Make sure the URL you configure in QuickBooks exactly matches the redirect URL used by the plugin (including protocol https:// and path).
Connecting WooCommerce to QuickBooks
โ Back to topOnce your Client ID, Client Secret and redirect URI are correctly configured:
- In WordPress, go to WooCommerce > Settings > Invoices > QuickBooks.
- Make sure the Environment, Client ID, and Client Secret fields are filled, then click Save changes.
- Click the โConnect to QuickBooksโ button.
- Youโll be redirected to QuickBooks Online:
- Log in if needed.
- Select the company you want to connect.
- Review the permissions and click Authorize.
- Youโll be redirected back to your WordPress admin.
- The status should show โConnected (Realm: โฆ)โ in the QuickBooks section.
To disconnect, click โDisconnectโ in the same section.
How it works when a customer places an order
โ Back to topOnce the integration is connected:
- When a WooCommerce order reaches a paid status (for example
processingorcompleted, depending on how you configure your sync logic):- The plugin checks if the orderโs customer already exists in QuickBooks:
- If yes, it reuses the existing Customer.
- If not, it creates a new Customer in QuickBooks based on the WooCommerce billing information.
- The plugin creates a QuickBooks Invoice:
- The customer is set to the QuickBooks customer created or reused above.
- The invoice date is based on the WooCommerce order date.
- The currency is aligned with your QuickBooks setup (and your companyโs base currency and multi-currency settings).
- The line items reflect the WooCommerce order lines (product names and totals).
- Optionally, the plugin can create a Payment in QuickBooks that:
- Is linked to the newly created invoice.
- Marks the invoice as paid for the total amount of the order.
- The plugin checks if the orderโs customer already exists in QuickBooks:
- If the QuickBooks API returns an error (for example: authorization problems, invalid data, or a temporary outage), the WooCommerce order is not blocked:
- The order status in WooCommerce still changes normally.
- The QuickBooks synchronization for this order fails internally.
- Depending on your configuration and version, errors can be logged or shown in the admin to let you investigate and retry.
QuickBooks Settings โ Field Explanations
Below is the full documentation for all QuickBooks-related settings added to your plugin.
This explains what each field does, why it exists, and how QuickBooks uses it.
1. Default Income Account (QuickBooks ID)
Purpose:
When the plugin creates QuickBooks Items (products) automatically, QuickBooks requires each item to be linked to an income account. This account determines where sales revenue is recorded in the QuickBooks chart of accounts.
How it works:
- When a WooCommerce product is synced or auto-created in QuickBooks, the plugin assigns this income account to the newly created Item.
- If left empty, QuickBooks will refuse Item creation and the sync will fail.
Example values:
- 79 (Sales of Product Income)
- 81 (Services Income)
Recommended: Ask your accountant which income account to use.
2. Default Deposit Account (QuickBooks ID)
Purpose:
Whenever a WooCommerce order is paid, the plugin creates a Payment object in QuickBooks. QuickBooks must know into which bank account this payment was deposited.
How it works:
- When a payment is synced, the plugin places it into this deposit account.
- If left empty, QuickBooks uses its internal default (usually โUndeposited Fundsโ), which may confuse accountants.
Example values:
- 4 (Bank Account)
- 35 (Undeposited Funds)
- 23 (Stripe Clearing Account)
Recommended: Choose the account where customer payments normally arrive.
3. Default Generic Item (QuickBooks Item ID)
Purpose:
Used when a WooCommerce product does not have a specific QuickBooks Item mapping and auto-creation of Items is disabled.
How it works:
- The plugin assigns this generic ItemRef to invoice lines.
- This prevents invoice creation from failing due to missing ItemRef.
- If empty, the line will not be synced unless auto-creation is enabled.
Typical use cases:
- For shops selling services where product-level differentiation is not needed.
- For minimal QuickBooks configurations.
4. Fallback QuickBooks ItemRef for lines when no product-level mapping is available.
Purpose:
This field acts as a secondary backup, used when both:
- the product has no
_qbo_item_id, and - auto-creation is disabled or fails.
How it works:
- If a product line cannot be mapped, the plugin uses this fallback ItemRef.
- This guarantees the invoice can still be created successfully.
Why this matters:
QuickBooks requires ItemRef for all SalesItem lines. Without this fallback, invoices would fail when a product is not mapped.
5. Shipping Item (QuickBooks Item ID)
Purpose:
QuickBooks requires shipping charges to be represented as an Item on the invoice.
This setting allows you to select which QuickBooks Item to use for WooCommerce shipping.
How it works:
- Every shipping line in an order will use this ItemRef on the invoice.
- If empty, the plugin uses the Default Generic Item.
Use cases:
- Charging VAT/tax on shipping separately.
- Having dedicated reporting on shipping income.
6. QuickBooks ItemRef used for WooCommerce shipping lines. Falls back to the default generic item if empty.
Purpose:
Clarifies the behavior of the previous field to the user.
How it works:
- When a shipping line is detected in the order, the plugin will check:
- Shipping Item ID โ use it if defined
- Otherwise โ use Default Generic Item
Why this matters:
QuickBooks does not allow shipping lines without an ItemRef.
Usage
โ Back to topCustomers will see invoices and credit notes in the “Orders” section of their My Account page, if the option
“Enable this to show download buttons for invoices and credit notes in the Orders section of the customer’s My Account page” is enabled.
Additionally, invoices and credit notes will be sent by email if the corresponding options are enabled, such as:
Send a credit note when the order is refunded
Send the invoice when the order is completed
Send the invoice when the order is processing
FAQs
โ Back to topHelp customers by answering commonly asked questions.
How do I add my company logo to invoices and credit notes?
Go to WooCommerce > Settings > Invoices, upload your logo under Choose a logo, click Choose this logo, and then click Save changes. Your logo will automatically appear on all generated PDFs.
ย
Are credit notes sent automatically when an order is refunded?
When a full or partial refund is processed through WooCommerce, the plugin automatically generates a corresponding credit note PDF, provided that the ‘Send a credit note when the order is refunded‘ option is enabled under WooCommerce > Settings > Invoices.
How can I select a custom theme for my invoices?
Under WooCommerce > Settings > Invoices, in the ‘Choose a theme for your invoice‘ section, you can select from several predefined themes. Donโt forget to click Save changes.
