API design
Versioned REST or GraphQL interfaces with a published schema, consistent errors, pagination that works, and documentation generated from the source.
Most companies do not need another system. They need the ones they already run to agree with each other — reliably, in the right order, and in a way that lets you answer "where did that record go?" in minutes rather than days.
01 — Position
Connecting two systems is easy for a week. It gets hard the first time a request times out after the remote side already committed, or a webhook arrives twice, or a nightly job runs while yesterday's is still finishing.
So we design for those cases first: idempotent operations, explicit retry and backoff, dead-letter handling, and a reconciliation routine that compares both sides and reports the difference rather than hoping there is none.
We are comfortable working against legacy systems with incomplete documentation, undocumented quirks and a support contact who left in 2019. That is normal.
02 — What we build
Versioned REST or GraphQL interfaces with a published schema, consistent errors, pagination that works, and documentation generated from the source.
Two-way synchronisation of customers, orders, stock and invoices, with field mapping documented and owned by you rather than buried in a config screen.
Payment provider integration with webhook verification, idempotent capture, refund flows and a ledger that reconciles against the provider's own report.
Queues and streams with ordering guarantees you actually need, consumer groups, replay, and a dead-letter queue nobody has to guess about.
SOAP, flat files, SFTP drops, fixed-width exports and databases queried directly — wrapped behind a modern interface so nothing else has to know.
Structured logs, traces and dashboards that make an integration debuggable by someone who did not build it.
03 — Delivered
04 — Questions
It is the normal case. We verify behaviour against a sandbox or a scoped test account before designing around it, and we record the actual behaviour in our own documentation. Where a vendor's API is genuinely unusable, we say so early rather than absorbing the cost silently.
Not blindly. We can work against a copy, a sandbox, an export or a screen-shared session with someone who has access — but we will not guess at a contract. If access is genuinely impossible, we will scope the work as discovery until it is not.
You do. The code, the credentials and the infrastructure are yours. We can stay on under a maintenance agreement — integrations break when a third party changes something, which is not an event you can schedule — but that is your choice, not a lock-in.
Names and directions are enough to start. We will come back with the failure modes we would design against.
HALDIR LTD · HE 459882 · Nicosia, Cyprus