Service

Systems integration that survives the day the API is down

ERP, e-commerce, CRM, banking, and spreadsheets talking to each other by API, webhook, or file — without duplicating orders and without a person copying in the middle.

In short

Integration connects the systems you already run so no one retypes between them. What decides the project is not the connection itself but what happens when it fails: retry without duplicating, a queue that absorbs the spike, and daily reconciliation that finds what slipped through unnoticed.

The happy path is the easy half

Connecting two systems while both are up is a solved problem. Every integration demo works. What separates an integration that lasts from one that needs a person watching it is what happens on the bad days.

The supplier's API returns a 500 halfway through a batch. A webhook is delivered twice. A rate limit hits during the busiest hour of the month. The remote system accepts a request, returns 200, and silently does nothing.

That last one is the expensive failure, because it produces no alert. The integration reports success, the operation continues, and the divergence is discovered days later by a customer.

How we build it

  1. Idempotency before anything else

    Every operation that changes state carries a key that makes repeating it safe. Without that, retry logic turns a transient failure into a duplicate order — and duplicated orders cost more than the outage did.

  2. A queue between the systems

    Direct coupling means the slowest system sets the pace and an outage on one side becomes an outage on both. A queue absorbs the spike and lets the receiver catch up on its own schedule.

  3. Respect the rate limit by design

    Sending the whole catalogue on every change hits a quota during the hour that matters most. The update strategy determines whether a sync takes minutes or hours, and it is a design decision, not a tuning one.

  4. Daily reconciliation

    A routine reads what each side is actually showing, compares it with what it should be, and reports the difference. It is the only mechanism that catches silent failures — and it is the piece most integrations skip.

Frequently asked

The other system has no API. What then?

File exchange over SFTP, a database view, or scheduled export remain perfectly good integration surfaces and are often more reliable than a badly built API. The absence of a modern API changes the latency you can promise, not whether the integration is possible.

Should we buy an iPaaS instead?

For standard connections between popular products, often yes, and we will say so. The case for building is when the mapping carries real business logic, when the volume makes per-operation pricing painful, or when the failure handling has to be specific to your operation.

How do you handle a change on the other side?

Contract tests that run against the real endpoint on a schedule, so a change in the supplier's response is caught by a failing test rather than by an incident. Third-party APIs change without announcement more often than their documentation suggests.

Read this in Portuguese

The Portuguese version of this page goes into more depth: /servicos/integracao-de-sistemas.