Customer Invoices
Customer invoices record the amounts your customers owe you for goods and services. This guide covers how to create, approve, post, send, and reverse customer invoices in Ayiza.
Invoice statuses
A customer invoice moves through these statuses during its lifecycle:
| Status | Meaning |
|---|---|
| Draft | The invoice has been created but is not yet finalised. You can still edit it. |
| Approved | The invoice has been reviewed and approved. An invoice number has been assigned. It is ready to post. |
| Posted | An accounting document has been created in the general ledger. The amount is now reflected in your financial reports. |
| Paid | The invoice has been fully settled, either through Stripe or bank reconciliation. |
| Reversed | The posted invoice has been reversed with a reversal accounting document. |
| Rejected | The invoice was rejected during review. |
| Disputed | The customer has raised a dispute about this invoice. |
Creating a customer invoice
Step 1: Open the Customer Invoices tile
Navigate to the Receivables section and select Customer Invoices.
Step 2: Click Create
Click the Create button to open a new customer invoice form.
Step 3: Fill in the header fields
| Field | Description | Required |
|---|---|---|
| Company Code | The company code this invoice belongs to. | Yes |
| Customer | The business partner (customer) you are invoicing. Must be set up as a customer in the selected company code. | Yes |
| Document Type | The type of invoice -- for example, Customer Invoice, Proforma, Credit Memo. See the Overview for the full list of types. | Yes |
| Invoice Date | The date of the invoice. | Yes |
| Delivery Date | The date goods or services were delivered. | Yes |
| Posting Date | The date the invoice should be recorded in the general ledger. If left blank, the invoice date is used. | No |
| Currency | The currency of the invoice. Can differ from the company code currency. | Yes |
| Exchange Rate | If the invoice is in a foreign currency, you can enter a specific exchange rate. If left blank, Ayiza uses the rate from the exchange rate table for the invoice date. | No |
| Distribution Channel | The distribution channel for this sale (for example, Direct, Online, Wholesale). | Yes |
| Terms of Payment | The agreed payment terms (for example, Net 30). Used to calculate the due date. Defaulted from the customer's company code settings but can be changed. | No |
| Ship-From Location | The location from which goods are shipped. | Yes |
| Business Reason | The reason for the invoice, if applicable (for example, for credit memos). | No |
| Reference | A free-text reference for cross-referencing. | No |
The form also includes Ship-To address fields that default from the customer's address but can be overridden per invoice:
- Name, address lines, city, postal code, country, state
Step 4: Add invoice lines
Each line represents a product or service being invoiced. Click Add Line and fill in the following:
| Field | Description | Required |
|---|---|---|
| Line | The line number (assigned automatically). | Yes |
| Product | The product or service being invoiced. Must exist in the company code's product catalogue. | Yes |
| Quantity | Number of units. | Yes |
| Unit of Measure | The unit of measure (for example, EA, HR, KG). | Yes |
| Unit Price | Price per unit in the invoice currency. | Yes |
| Net Amount | The net (pre-tax) amount. | Yes |
| Tax Code | The VAT or indirect tax code. Determines the tax rate applied. | No |
| Withholding Tax Code | If withholding tax applies, select the code configured for this customer. | No |
| Discount Amount | Any discount applied to this line. | No |
| Comment | A free-text description. | No |
| Investment Center | For capital-related items. | No |
| Project | The project to credit, if applicable. | No |
| Segment | The business segment. | No |
You can add as many lines as needed.
Step 5: Save
Click Save to create the invoice in Draft status.
Multi-currency invoices
When you create an invoice in a currency different from your company code currency, Ayiza converts all amounts automatically during posting:
- Transaction currency -- The currency on the invoice (what the customer pays in).
- Company code currency -- Your primary operating currency.
- Functional currency -- For IFRS or other regulatory reporting, if configured.
- Group currency -- For consolidated group reporting, if configured.
The exchange rate is determined as follows:
- If you enter an exchange rate on the header, that rate is used.
- Otherwise, Ayiza looks up the rate from the exchange rate table for the invoice date.
You only need to enter amounts in the transaction currency. All other currency amounts are calculated automatically.
Tax handling
VAT visibility
Tax fields on customer invoices are controlled by the company code's VAT registration status:
- If Is VAT Registered is true on the Finance Company Code, tax code fields are visible on all invoice lines. Only Output Tax codes are available (input tax codes are not shown).
- If Is VAT Registered is false, all tax fields are hidden on the invoice. In this case, Ayiza uses the Sales Out of Scope Tax Code from the Finance Company Code settings automatically where applicable.
VAT codes
Each line can have a Tax Code that determines the VAT rate. When you select a tax code, Ayiza calculates the tax amount, net amount, and gross amount automatically.
Common scenarios:
- Standard-rated -- Standard VAT rate applies (for example, 20% in the UK).
- Zero-rated -- VAT at 0%. The transaction is still reported on the VAT return.
- Exempt -- No VAT applies.
- Reverse charge -- For certain cross-border sales where the customer accounts for the VAT.
Withholding tax
If your customer is subject to withholding tax (configured via the Is Withholding Tax Active flag on the company code customer record), the withholding tax code and amount fields appear on invoice lines.
- Select the appropriate Withholding Tax Code on the relevant lines.
- The withholding tax amount is calculated based on the code's rate.
- You can tick Exclude Withholding Tax on individual lines where withholding tax should not apply — this clears the withholding tax code for that line.
Investment center
The Investment Center field on invoice lines is only visible if Is Investment Center Active is true on the Finance Company Code. When visible, the investment center may be defaulted from the product configuration.
Approval workflow
Customer invoices follow a three-step workflow: Draft then Approved then Posted.
Approving an invoice
- Open a Draft invoice.
- Click Approve.
Ayiza checks that:
- The invoice is in Draft status.
- The invoice has at least one line.
If the checks pass:
- The invoice moves to Approved status.
- A system-generated invoice number is assigned based on the document type and company code number range.
- The invoice number is propagated to all lines.
After approval, the invoice can no longer be edited. If changes are needed, you would need to create a new invoice.
Posting a customer invoice
Posting creates an accounting document in the general ledger. To post:
- Open an Approved invoice.
- Click Post.
Ayiza checks the following before posting:
- The invoice must be in Approved status.
- The financial period for the posting date must be open for receivables.
- The customer must not be locked or sanctioned.
- None of the products on the invoice lines may be locked or sanctioned.
What happens when you post
Ayiza creates an accounting document with entries such as:
| Entry | Debit/Credit | Account | Amount |
|---|---|---|---|
| AR control line | Debit | Customer's AR control account (configured on the company code customer record) | Total invoice amount |
| Revenue lines | Credit | Revenue G/L account from each invoice line (determined by the product's account determination) | Net amount per line |
| Tax lines | Credit | Output tax G/L account (determined by the tax code) | Tax amount per line |
If withholding tax applies, the withholding tax amount is separated into its own line.
All amounts are recorded in:
- Transaction currency (the invoice currency)
- Company code currency
- Functional currency (if configured)
- Group currency (if configured)
The system also creates tax register entries that feed into your VAT return.
After posting:
- The invoice status changes to Posted.
- An accounting document number is assigned and linked to the invoice.
- The invoice amount appears as an open item in the customer's account.
Sending invoices to customers
After posting, you can send the invoice to the customer.
Sending via Stripe
If your company code is connected to Stripe, you can send invoices through Stripe so customers can pay online.
Prerequisites:
- Your company code must have a connected Stripe account (set up by your administrator in the Stripe configuration area).
- The customer must have an email address on file.
To send:
- Open a posted customer invoice.
- Click Send via Stripe.
Ayiza performs the following steps automatically:
- Creates a Stripe customer (if one does not already exist for this business partner) using the customer's name, email, and address from their business partner record.
- Creates a Stripe invoice with line items matching the invoice lines, including amounts and currency.
- Sends the Stripe invoice to the customer. The customer receives an email with a link to view and pay the invoice online.
After sending:
- The invoice shows the Stripe payment status (for example, Open).
- A link to the Stripe-hosted invoice page is stored on the invoice for reference.
- A link to the Stripe-generated PDF is also available.
Cancelling a Stripe invoice
If you need to cancel a Stripe invoice (for example, because the invoice was sent in error):
- Open the invoice.
- Click Cancel Stripe Invoice.
You can only cancel Stripe invoices that are in Draft or Open status on the Stripe side. Once a Stripe invoice has been paid, it cannot be cancelled through this action.
Cancelling the Stripe invoice does not reverse the accounting document in Ayiza. If you also need to reverse the accounting entries, use the Reverse function separately.
Stripe payments
When a customer pays a Stripe invoice, the entire settlement process is handled automatically.
How it works
- Customer pays online -- The customer clicks the payment link in the email, enters payment details (card, bank transfer, etc.), and submits payment.
- Stripe sends a webhook -- Stripe notifies Ayiza via a secure webhook that the invoice has been paid.
- Ayiza processes the payment -- The webhook handler performs the following steps automatically:
- Updates the Stripe payment status on the invoice to Paid.
- Captures fee data from Stripe -- the payment processing fee and the net amount received after fees.
- Creates an accounting document for the payment:
- Credits the customer's AR control account (settling the open item from the original invoice).
- Debits the bank G/L account for the net amount received.
- Debits a fee expense G/L account for the Stripe processing fee (if a Payment Provider Account Mapping is configured).
- Settles the AR open item -- Links the original invoice's AR debit line with the payment's AR credit line via a clearing ID, so the customer's balance is reduced.
- Updates the invoice status to Paid.
Fee handling
Stripe charges a processing fee on each payment. Ayiza captures this fee and accounts for it separately:
- The gross payment equals the invoice amount (what the customer paid).
- The fee is the Stripe processing charge.
- The net amount is what arrives in your bank account (gross minus fee).
If your administrator has configured a Payment Provider Account Mapping for the company code, the fee is automatically posted to the configured fee expense G/L account. If no mapping exists, the fee is recorded on the invoice for reference but no separate accounting entry is created for it.
Idempotency
Stripe may occasionally send the same webhook event more than once. Ayiza tracks every processed webhook event and automatically skips duplicates, so you will never see double accounting entries.
When automatic accounting fails
If the automatic accounting document creation fails for any reason (for example, a missing account mapping or closed financial period), Ayiza still updates the Stripe payment status on the invoice. The accounting will need to be handled manually in this case. Check the system logs for details.
Reversing a posted invoice
If a posted invoice was entered in error, you can reverse it.
- Open the posted invoice.
- Click Reverse.
- Enter a reversal date (must be on or after the original posting date).
- Select a reversal reason.
- Confirm.
Reversing creates a new accounting document that mirrors the original but with all debit and credit entries swapped. The invoice status changes to Reversed. Tax register entries are also reversed.
You cannot reverse an invoice that has already been settled (paid). If the invoice was paid via Stripe or settled through bank reconciliation, you must first undo the settlement before reversing.
Customer balances and open items
To see what a customer currently owes:
- Navigate to Customer Invoices.
- Filter by customer and by status Posted to see all unsettled invoices.
Each posted invoice that has not been paid or reconciled is an open item. When paid and matched (either automatically via Stripe or manually via bank reconciliation), it becomes a cleared item.
You can also view customer balances through the General Ledger by looking at the AR control account for a specific customer.
Receivables Aging Report
The Receivables Aging Report shows how much customers owe you and how long each amount has been outstanding. It is essential for credit management and cash flow forecasting.
How to run the report
- Navigate to the Receivables Aging Report tile.
- Select the Company Code to report on.
- Set the Reference Date (usually today). This date is used to calculate how many days each item is overdue.
- Optionally filter by a specific customer using the Business Partner field.
- Click Generate.
Understanding the aging buckets
The report groups open items into time-based buckets. The default boundaries are:
| Bucket | Range | Meaning |
|---|---|---|
| Not Yet Due | Due date is on or after the reference date | Payment is not yet expected. |
| 1 -- 30 days | 1 to 30 days past due | Recently overdue. A gentle reminder may be appropriate. |
| 31 -- 60 days | 31 to 60 days past due | Moderately overdue. Follow up with the customer. |
| 61 -- 90 days | 61 to 90 days past due | Significantly overdue. Consider escalating. |
| 91 -- 120 days | 91 to 120 days past due | Seriously overdue. Review credit terms for this customer. |
| Over 120 days | More than 120 days past due | Long-outstanding. May need to be written off or referred to collections. |
The bucket boundaries (30, 60, 90, 120 days) can be customised per company code by your administrator through the Due Date Bucket Configuration. If custom boundaries are set, the labels adjust automatically.
Report columns
Each row represents one customer. The columns show:
- Business Partner -- The customer number and name.
- Bucket amounts -- The outstanding amount in each aging bucket.
- Total -- The total amount owed by this customer across all buckets.
- Line Count -- The number of open invoice lines.
Totals across all customers are shown at the bottom of the report.
Currency roles
Amounts are available in three currencies:
| Currency role | Description |
|---|---|
| Company Code Currency | Your primary operating currency. This is the default view. |
| Functional Currency | For regulatory or IFRS reporting. |
| Group Currency | For group-level consolidated reporting. |
Switch between currency roles to view the report in whichever currency suits your needs.
Using the report
Common uses of the Receivables Aging Report:
- Credit management -- Identify customers with large overdue balances and review their credit limits.
- Cash flow forecasting -- See what payments are due soon ("Not Yet Due" bucket) and plan accordingly.
- Collections prioritisation -- Focus collection efforts on the oldest and largest overdue amounts.
- Month-end review -- Verify AR balances before closing the period.
- Bad debt provisioning -- Use the aging breakdown to estimate provisions for doubtful debts.
- Audit preparation -- Provide a snapshot of receivables at a given date.