Troubleshooting
Common situations, their likely cause, and what to do. If yours isn't here, reach us from Contact.
A bank movement wasn't reconciled
Cause. Auto-reconciliation only links when the match confidence is ≥ 0.95. Below that threshold the movement isn't linked automatically, to avoid a wrong match.
What to do. Check the suggestions board: likely matches show up there to confirm in one click. If there's no suggestion (the invoice or expense is missing, or the amounts don't line up), link it manually. See How reconciliation works, The suggestions board and Reconcile manually.
A purchase appears duplicated
Cause. Aikount deduplicates purchases by invoice identity (supplier + supplier invoice number; fallback total + date ±7 days), never by the source file. The same supplier split across two contacts, or a missing or misread invoice number, can keep two records from being recognized as the same one.
What to do. Make sure the supplier invoice number is correct and that you don't have the same supplier duplicated as a contact; fix the wrong record. Note: a statement with several charges sharing one invoice number (e.g. threshold prepayments) are distinct real charges and should not be collapsed into one. See Purchase deduplication and Suppliers.
Modelo 369 shows zero
Cause. The 369 (OSS) depends on being registered under the OSS scheme. If your company isn't OSS-registered, the model shows zero on purpose: it isn't a bug.
What to do. If you sell B2C into the EU above the threshold and must report under OSS, register and set it in your tax details; the 369 will then pick up those sales. If you're not in OSS, intra-EU B2C carries Spanish VAT. See Modelo 369 (OSS) and Customer regime (EU, OSS, export).
A Stripe payout doesn't match gross sales
Cause. A Stripe payout is the net of many charges minus fees and refunds, so the bank deposit never matches gross sales.
What to do. Let Aikount break down the payout: it links payout ↔ charges ↔ bank deposit, so fees and refunds are accounted for. Don't try to match the gross against the bank by hand. See The Stripe payout case and Connect Stripe.
I get a 401 or 403 when calling the API
Cause. These are authentication and permission errors:
401— the token is missing, invalid or has been revoked.403— the token is valid, but lacks the scope needed for that operation.
What to do. Check that you send the Authorization: Bearer <token> header. Verify the token against /api/v1/tenants/me (use this with agl_ keys; /auth/me is session-login only and rejects API keys). If the token was revoked, mint a new one from a logged-in session. For a 403, review the key's scope. See Authentication and API keys and API conventions.