Alegra – Gotchas
Cloud-based invoicing, accounting and POS software popular across Latin America (Mexico, Colombia, Peru, Spain, Dominican Republic, Argentina, Chile and others) for SMBs and entrepreneurs.
11 gotchas across 11 resources
These are connector-specific behaviors and limitations to be aware of when integrating.
Bank Accounts1 gotcha
bankAccountsAllAlegra exposes no IBAN, BIC/SWIFT, routing number, currency or balance, so those fields are empty. On create, Alegra requires an opening balance — the connector sets it from the unified balance (or 0) at today's date.
Bill Payments1 gotcha
billPaymentsAllA bill payment must be applied to at least one bill — Alegra rejects an unapplied payment.
Bills1 gotcha
billsAllEach bill line is costed against either a catalog item (line_items[].type: expense_item, which sets line.item) or an expense ledger account (expense_account, which sets line.ledger_account); a single bill may mix both. See the Alegra usage guide for details.
Credit Notes1 gotcha
creditNotesAllallocations is not populated — Alegra exposes only the aggregate applied amount, not which invoices a credit note offset. A stamped credit note is immutable; update and delete work only while it is unstamped (open).
Invoice Items1 gotcha
invoiceItemsAllThe Mexican SAT product key (productKey) has no unified field — set it on create via pass_through and read it back via the Proxy. On create/update only name, description, code, unit_price and type are written; inventory levels, accounts and taxes are managed in Alegra.
Invoices1 gotcha
invoicesAllInvoices are created unstamped (as a draft), so no CFDI folio is consumed. To stamp (timbrar), send pass_through with stamp.generateStamp: true plus the SAT fields (paymentType, cfdiUse, regimeClient); each line's Alegra item must have a SAT productKey. Update and delete work only while the invoice is a draft — a stamped invoice is immutable (void it in Alegra). The CFDI itself (UUID, seals) is not mapped to unified fields; read it via ?raw=true or the Proxy (#11099). See the Alegra usage guide for the full stamping flow.
Journal Entries1 gotcha
journalEntriesAllAlegra does not assign a journal entry number (always empty), and journal entries have no created/updated timestamps — so they cannot be sorted by date.
Ledger Accounts1 gotcha
ledgerAccountsAllOnly postable accounts (header: false) can be used on transactions; posting against a header: true grouping node is rejected. Two codes are exposed — code (the company's own account code) and nominal_code (the SAT código agrupador); the SAT code is shared across related accounts, not unique per account. Creating an account requires a parent_account.id, and accounts cannot be deleted (Alegra has no delete-account endpoint).
Payments1 gotcha
paymentsAllA payment must be applied to at least one invoice — Alegra rejects an unapplied payment.
Purchase Orders1 gotcha
purchaseOrdersAlldelivery_date is required on create. Each line is costed against either a catalog item (line_items[].type: expense_item, which sets line.item) or an expense ledger account (expense_account, which sets line.ledger_account); a PO may mix both. See the Alegra usage guide for details.
Quotes1 gotcha
quotesAllEach line's Alegra item must have a SAT productKey or creation fails (code 1035, "La clave del producto es requerida"). The customer address is returned as a single preformatted string in billing_address.line1, not the structured object invoices return.