Skip to main content

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:

StatusMeaning
DraftThe invoice has been created but is not yet finalised. You can still edit it.
ApprovedThe invoice has been reviewed and approved. An invoice number has been assigned. It is ready to post.
PostedAn accounting document has been created in the general ledger. The amount is now reflected in your financial reports.
PaidThe invoice has been fully settled, either through Stripe or bank reconciliation.
ReversedThe posted invoice has been reversed with a reversal accounting document.
RejectedThe invoice was rejected during review.
DisputedThe 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

FieldDescriptionRequired
Company CodeThe company code this invoice belongs to.Yes
CustomerThe business partner (customer) you are invoicing. Must be set up as a customer in the selected company code.Yes
Document TypeThe type of invoice -- for example, Customer Invoice, Proforma, Credit Memo. See the Overview for the full list of types.Yes
Invoice DateThe date of the invoice.Yes
Delivery DateThe date goods or services were delivered.Yes
Posting DateThe date the invoice should be recorded in the general ledger. If left blank, the invoice date is used.No
CurrencyThe currency of the invoice. Can differ from the company code currency.Yes
Exchange RateIf 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 ChannelThe distribution channel for this sale (for example, Direct, Online, Wholesale).Yes
Terms of PaymentThe 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 LocationThe location from which goods are shipped.Yes
Business ReasonThe reason for the invoice, if applicable (for example, for credit memos).No
ReferenceA 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:

FieldDescriptionRequired
LineThe line number (assigned automatically).Yes
ProductThe product or service being invoiced. Must exist in the company code's product catalogue.Yes
QuantityNumber of units.Yes
Unit of MeasureThe unit of measure (for example, EA, HR, KG).Yes
Unit PricePrice per unit in the invoice currency.Yes
Net AmountThe net (pre-tax) amount.Yes
Tax CodeThe VAT or indirect tax code. Determines the tax rate applied.No
Withholding Tax CodeIf withholding tax applies, select the code configured for this customer.No
Discount AmountAny discount applied to this line.No
CommentA free-text description.No
Investment CenterFor capital-related items.No
ProjectThe project to credit, if applicable.No
SegmentThe 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

  1. Open a Draft invoice.
  2. 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:

  1. Open an Approved invoice.
  2. 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:

EntryDebit/CreditAccountAmount
AR control lineDebitCustomer's AR control account (configured on the company code customer record)Total invoice amount
Revenue linesCreditRevenue G/L account from each invoice line (determined by the product's account determination)Net amount per line
Tax linesCreditOutput 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:

  1. Open a posted customer invoice.
  2. Click Send via Stripe.

Ayiza performs the following steps automatically:

  1. 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.
  2. Creates a Stripe invoice with line items matching the invoice lines, including amounts and currency.
  3. 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):

  1. Open the invoice.
  2. 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.

note

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

  1. Customer pays online -- The customer clicks the payment link in the email, enters payment details (card, bank transfer, etc.), and submits payment.
  2. Stripe sends a webhook -- Stripe notifies Ayiza via a secure webhook that the invoice has been paid.
  3. 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.

  1. Open the posted invoice.
  2. Click Reverse.
  3. Enter a reversal date (must be on or after the original posting date).
  4. Select a reversal reason.
  5. 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.

caution

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:

  1. Navigate to Customer Invoices.
  2. 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

  1. Navigate to the Receivables Aging Report tile.
  2. Select the Company Code to report on.
  3. Set the Reference Date (usually today). This date is used to calculate how many days each item is overdue.
  4. Optionally filter by a specific customer using the Business Partner field.
  5. Click Generate.

Understanding the aging buckets

The report groups open items into time-based buckets. The default boundaries are:

BucketRangeMeaning
Not Yet DueDue date is on or after the reference datePayment is not yet expected.
1 -- 30 days1 to 30 days past dueRecently overdue. A gentle reminder may be appropriate.
31 -- 60 days31 to 60 days past dueModerately overdue. Follow up with the customer.
61 -- 90 days61 to 90 days past dueSignificantly overdue. Consider escalating.
91 -- 120 days91 to 120 days past dueSeriously overdue. Review credit terms for this customer.
Over 120 daysMore than 120 days past dueLong-outstanding. May need to be written off or referred to collections.
tip

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 roleDescription
Company Code CurrencyYour primary operating currency. This is the default view.
Functional CurrencyFor regulatory or IFRS reporting.
Group CurrencyFor 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.