Your AWS invoice for June says $0.00. The usage came to $268.55; AWS covered it with the promotional credits on your account. If you book that invoice at face value, your books show zero hosting costs and no credit balance. The month the credits run out, hosting costs appear in your P&L for the first time, and nothing in your books explains why.
Financica now connects to AWS and DigitalOcean directly and books these invoices at what the usage actually cost, with the credits tracked as an asset that depletes.
What gets imported
For AWS, Financica pulls every invoice from your payer account, going back up to three years:
- The official invoice PDF and any supplemental tax documents, attached to the expense
- Totals, tax breakdowns, currencies, due dates, and the actual issuing entity (for most European companies that is Amazon Web Services EMEA SARL), straight from AWS's invoicing records
- In an AWS Organization, the one-invoice-per-account-per-month structure AWS uses, so each member account keeps its own invoices
Invoices are booked in their original currency, like any other foreign-currency expense in Financica. New invoices are picked up automatically every hour, and there is a Sync now button on the integration page.
How credits are booked
The imported expense is booked at the gross amount. For that June invoice: $268.55 to AWS hosting, owed on accounts payable. The credits AWS applied are then recorded as a payment funded by an AWS Credits asset account, which clears the payable and draws the asset down by $268.55. The invoice shows as paid, the real hosting cost sits in your profit and loss, and the remaining credit value sits on your balance sheet. When credits only cover part of an invoice, the remainder stays open on accounts payable until you match it with the card or bank payment, so reconciliation works as usual.
The grants that fund the asset are booked automatically too. AWS exposes each credit's initial amount, description, and validity dates, so Financica records one journal entry per credit (debit AWS Credits, credit an AWS credit grants income account) dated when the credit became valid. Two notes for your accountant:
- If they prefer deferring grant income and releasing it as the credits are consumed, recategorize the income side of the grant entry to a deferred income account. It is a normal journal entry, and the sync will not touch it again.
- Credits that expire unused need a manual write-off of the remaining asset. Financica does not book expiry automatically yet.
The integration page lists every imported invoice with three columns: the gross amount, the credits applied, and the net amount AWS actually charged.
DigitalOcean
The same model applies to DigitalOcean: every invoice arrives with the PDF, a CSV usage breakdown, and a JSON summary attached, and the expense gets one line item per product group (Droplets, Backups, and so on), matching the PDF. Invoices paid from your credit balance settle against a DigitalOcean Credits asset. The one difference: the DigitalOcean API exposes no grant data, so you record the grant entry once yourself.
If you already booked these invoices
Most people connecting this have months of cloud invoices entered by hand. The sync checks for an existing expense with the same invoice number and supplier before creating anything, and attaches the documents to your existing entry instead of duplicating it. It only posts invoices it created itself, and it never rewrites an imported invoice afterwards, so your edits and recategorizations stick.
Connecting
Open an expense that looks like an AWS or DigitalOcean invoice and a banner offers to connect the provider. Both also live under Settings > Integrations.
DigitalOcean connects with a standard authorization screen and read-only billing access.
AWS has no equivalent login flow, so you create a read-only IAM role instead. The connect page has a one-click button that opens AWS CloudFormation with everything pre-filled; you create the stack, paste the resulting role ARN back, and you are done. The role grants exactly three read-only actions (invoicing:ListInvoiceSummaries, invoicing:GetInvoicePDF, billing:GetCredits) and its trust policy carries an external ID unique to your organization, so the ARN is useless to anyone else. You can inspect the template before creating the stack and delete the role in your AWS console at any time. If you prefer, pasting access keys for a restricted IAM user works too.
A few things worth noting:
- Connect the payer account (the management account of your AWS Organization). Member accounts do not own the invoices.
- Reading credits requires the "IAM user and role access to Billing information" setting in your AWS account, which only the root user can enable. Without it, invoices still import and the integration page shows a reminder.
- AWS only exposes credit data about a year back. A credit that was fully used up longer ago will not appear; record that grant once manually and the asset balances.
- Credit memos and payment receipts are not imported, only invoices.
- AWS invoices carry no per-service line items through the API, so the expense has a single usage line. The attached PDF has the full breakdown.
Undoing it
Deleting the integration asks whether to also delete all associated data. Tick the checkbox and every imported invoice, its ledger entries, and the attached documents are removed in one step. Leave it unchecked and the books keep everything; only the connection goes away.
Google Cloud is not planned: Google offers no API for retrieving invoices, so there is nothing reliable to import. Both the AWS and DigitalOcean integrations are available now on all plans.