Omie
Native integration · Read-only (pull) · Syncs automatically every 60 min (configurable) + on demand · Static-key connection
Omie is a management ERP for small and medium-sized businesses. Connected to Dunning, it brings the customers and receivables from your Omie into the collection operation — the open charges become charges and the customers become people in your portfolio.
Prerequisites
- An Omie account with customers and receivables.
- An app key and an app secret generated in the Omie panel (application key).
How to connect
:::note No dedicated panel screen (yet)
Today only the Kobana Gateway has a ready connect screen in the panel. For this ERP, the connection is made through the API (/api/v1/integrations/... routes) — the steps below describe the authorization flow; the equivalent self-service screen in the panel is on the roadmap.
:::
Unlike Bling, Conta Azul and Olist, Omie does not use OAuth: authentication is by static key.
- In the Omie panel, generate (or copy) the application's app key and app secret.
- In Dunning, open Settings → Integrations and choose Omie.
- Paste the app key and the app secret in the indicated fields.
- Click Connect. Dunning validates the credentials immediately, with a test call to the Omie API; invalid keys are rejected before saving.
- The first sync runs right after connecting.
Omie has only a production environment (there is no public sandbox) — tests are done with a trial account on the platform itself.
Field mapping (source → Dunning)
| Omie field | Dunning field |
|---|---|
Receivable (financas/contareceber) | Charge |
valor_documento | Amount |
data_vencimento | Due date |
data_emissao / data_registro | Issue date |
numero_documento | Document number |
status_titulo contains RECEBIDO / LIQUIDADO / PAGO / QUITADO | paid (settlement + exit from the collection rule) |
status_titulo contains CANCELAD / INATIVO | cancelled |
status_titulo contains ATRASAD / VENCIDO | overdue |
| other statuses (A VENCER / A RECEBER / empty) | pending or overdue, derived from the due date |
Customer (geral/clientes) | Person in the portfolio |
cnpj_cpf | Person's document |
razao_social / nome_fantasia | Person's name / nickname |
email, telefone1_ddd + telefone1_numero | Person's email and phone |
Omie's status_titulo is free text; when it is not conclusive, the status is derived from the due date (past due → overdue, future → pending). "PARCIAL" does not count as full settlement.
Synchronization
Synchronization is idempotent and runs automatically (every 60 min by default) and manually (sync button). Customers and receivables are synced in the same cycle.
What it does not do / limitations
- Does not issue charges or write back to Omie — it is pull-only.
- No webhooks. The Omie API does not expose webhooks, so payments and cancellations reach Dunning only on the next sync.
- No digitable line/Pix/payment URL coming from the source — payment is tracked via status.
- No public sandbox — test with a trial account.
Disconnecting or rotating the key
To rotate the credentials, generate a new app key/app secret in the Omie panel and paste it into Dunning; the old keys stop being used. Redoing the setup also changes the environment and revalidates the connection.
Troubleshooting
- The sync is out of date. Check the interval (default 60 min) and click Sync now.
- A paid charge did not settle. Without a webhook, settlement depends on the next pull — force it with Sync now. Also confirm that the
status_tituloin Omie already indicates receipt. - A customer did not appear. The customer sync runs alongside the receivables sync; a customer with no charge is created when their first charge is synced.
- A charge appears duplicated. Dunning deduplicates by
externalId(omie:receivable:{codigo}); a real duplicate only occurs with the same charge coming from another source. - Invalid keys. Generate a new app key/app secret in the Omie panel and reconnect.
Security
The app key and app secret are encrypted at rest and are never returned by the API. Every call to the Omie API is recorded in the integration log, so you can audit what came in and diagnose failures.