API integrations allow two systems to exchange data without a person in between. They appear on websites, in Windows programs and in Office add-ins alike — but the work and risk are the same everywhere: half of the code depends on somebody else’s system that you do not control and that changes without notice. That is why API integration services stand apart here, with their own analysis and price: connecting to third-party services, data synchronization and ERP integration, and API development when others need to reach your system.
Half of the job is out of your hands
Code that I write, I can fix in an hour. The service on the other side has its own rules, its own quotas and its own outages, and there you wait. Everything that follows on this page is written because of that one sentence.
It runs through everything else I do
The same integration gets built into a website, a Windows program or an Office add-in. Only the screen around it changes; the weight of the work stays the same.
You can see what was sent
Every integration gets a log: what was sent, what came back and when. Without it, every disagreement is argued without evidence; with it, you can see whose side the error is on in a minute.
What I do
Six kinds of work. The first three are the most common and the most represented in the portfolio.
Connecting to a third-party service
Your software calls somebody else's: card payments, an accounting service, a courier, a supplier's price list, SMS or email. The call gets written, along with the handling of the response, the behaviour when no response arrives, and a log that stays available for checking.
Two-way synchronization
Two systems hold the same data and both of them change it — a website and an ERP, a shop and a warehouse, a CRM and accounting. Most of the work here hides in the question of whose change is newer and what happens when both sides edited the same record.
Repairing an integration that stopped
It worked for years, then the other side retired an old version, changed how sign-in works or introduced a call limit. I go into the existing code, find what changed and bring the connection back, no matter who wrote it.
Your own API
When somebody else's software needs to take data from you — a partner, an app, a website or a client's system — your own API gets built: access keys, permissions, a call limit and documentation a third-party developer can work from without phoning you.
Payments and electronic invoices
Card payments, refunds and subscriptions, as well as filing to an electronic invoicing system. This is a special case, because an error costs money rather than time, so it is built with retries that cannot charge the same amount twice.
Data transfer and import
A one-off move from an old system into a new one, or a regular import of price lists and stock levels from a supplier. When the work is mainly in the database itself — schema, indexes, cleaning — that is database work.
Why this is a job of its own, not part of the build
When I build a screen, a database or a report, I know every participant and can fix all of them. With an integration that is not true, and that is why it is estimated, tested and charged differently. These six things turn up in almost every such job:
- The documentation does not match reality. A field that always exists according to the manual sometimes arrives empty, and the example from the documentation returns an error. The first part of the job is establishing how the service actually behaves, not how it is described.
- Sign-in and keys. A password, a token that expires, an OAuth window somebody has to click through, a certificate with an end date. Each of those is renewed differently and each can bring the connection down at three in the morning.
- Call limits. Services count calls and either charge for them or refuse them. That is why a queue is built and what has already been fetched is remembered, instead of pulling everything every time.
- The other side changes without notice. A version is retired, a field is renamed, the terms get stricter. The integration is written so that this becomes visible immediately and in one place, rather than three months later through a customer complaint.
- Errors that come and go. The service is down for two minutes. The job must neither stop nor run twice — hence retries and the rule that the same order cannot be submitted twice.
- The sandbox is not production. A test service often accepts what the real one rejects. Part of the work can therefore only be closed on your real data and your real accounts.
For all of those reasons an integration carries its own price on the other pages too — with Office add-ins, for instance, local work is separated from work with a connection to a third-party service. Here that part of the job is described in one place instead of five. Artificial intelligence integration is a special case of the same story: it is also a connection to somebody else's service, except that there the answer to the same question need not be the same twice, so it has its own page and its own analysis.
Delivered
Integrations run through the whole portfolio, because they appear in every kind of software I build: from accounting exchange and Stripe payments to pulling data from suppliers and jobs that run on their own, with nobody at the screen.
Two finished products grew out of exactly this kind of work: the SEF e-invoice add-in for Excel and the Word-GPT VSTO add-in.
How the work goes
- You say which two systems need connecting and what ought to happen — for example, "when a customer pays on the website, the invoice should land in accounting".
- Analysis of the other API. I read the documentation, make test calls with your account and establish what is possible at all. This is the one part that cannot be skipped, because without it neither the price nor the existence of a solution is known.
- An offer for the agreed scope. After the analysis you get a fixed price and a list of the cases that are covered, including what happens when the other side does not answer.
- Work on sandbox accounts wherever the third-party service offers them, then verification on your data before it goes live.
- Handover. You get the code, keys in your own name, the call log and a short note on what to do when the other side changes the rules.
Pricing
The same arrangement as the other services: analysis first, then a piece of work with a known entry price, and small changes by the hour.
First step
Third-party API analysis
Reviewing the documentation and making test calls with your account to determine what is possible and how much it will cost.
Price 29.900 RSD ($285.54)
The analysis is paid for and ordered first, and it is deducted from the price of the work if we continue. If it turns out that the third-party service does not allow what you need, you find that out after the analysis rather than after paid development.
Scopes of work
API integrations
Repair of an integration that stopped
The other side shut down an old version, changed the sign-in or introduced a limit; I get the connection working again, no matter who wrote it.
- A review of the existing code and logs, including reproducing the failure with a specific example.
- Identification of whether the cause is a new API version, changed sign-in, data format or call limit.
- Adaptation of the existing calls and response handling within the workflow that previously worked.
- Clear error logs and retries that do not perform the same operation twice.
- Verification of the repaired connection with your account and real example before it is returned to service.
Connecting to another service
Your software calls somebody else's: card payments, accounting, a courier service, a supplier price list, SMS or e-mail.
- Connection of your existing software to one agreed service through your account and keys.
- Sending and retrieving the agreed data or performing the agreed action through the API.
- Mapping of fields, identifiers and statuses between the two systems.
- Handling of responses, errors and outages, with retries that do not duplicate work.
- A call log and verification of the connection in a test environment and then with the live account.
Data transfer and import
A one-off or repeatable pull of data from another system into yours, with a check of what actually came across.
- An inventory and mapping of the agreed fields from the source to the destination system.
- A script or process for a one-off transfer or regular import according to the agreed schedule.
- Format validation and the agreed value conversions before data is written to the destination.
- Batch processing that can continue after an interruption without importing completed records again.
- A report of transferred, skipped and invalid records, with a list of errors for review.
An API of your own
For when somebody else's software has to take data from you: keys, permissions, a call rate limit and instructions for their developer.
- API endpoints for reading or writing the precisely agreed data and performing the agreed actions.
- Access keys, permissions by user or system, and call limits.
- Input validation, clear statuses and responses that describe each error.
- Documentation of endpoints and fields, with request examples for the third-party developer.
- A call log and verification with the system that will use the API.
Payments and e-invoices
A connection to a payment service or to an electronic invoicing system, with a record of every document sent.
- Connection to one agreed payment or electronic invoicing service through your account.
- The agreed operations on payments, refunds, subscriptions or electronic documents.
- Mapping of amounts, customers, documents, identifiers and statuses between the systems.
- Handling of confirmations and rejections, with retries that cannot charge or submit the same document twice.
- A record of every exchange and verification with a test account and then the live account.
Two-way synchronisation
Two systems hold the same data and both of them change it: a website and an ERP, a shop and a warehouse, a CRM and accounting.
- Mapping of the agreed fields, identifiers and statuses shared by both systems.
- Rules defining which system is the source of truth and what happens when both sides change the same record.
- Transfer of new and changed data in both directions according to the agreed schedule or event.
- A queue and retries that respect service limits and do not create duplicates.
- A record of the last synchronization, errors and records that require manual review.
Smaller changes to an integration that already works do not have to go through a scope of work: for those there is hourly work, where you pay for the time spent. The complete price list is on the pricing page.
What I commit to:
- I reply the same working day, the next one at the latest.
- You learn the price before, not after. A fixed price and deadline come after the analysis, and anything outside the agreement is announced before I do it.
- The connection does not go live before it is checked on real data, including the case where the other side returns an error.
- What was sent and what came back is logged, so it is clear later where a record stopped.
- Keys and access are in your name and stay yours. The source code is delivered with the work.
- Faults are fixed at no charge for 30 days after delivery. A fault is something not working as agreed; a change is wanting something other than what was agreed.
I write this so that you understand the price before ordering, not afterwards. Everything on the list is work I can do, but it is agreed and charged separately.
Not included in the price:
I write this so you understand the price before ordering, not after. Everything on the list is something I can do, but it is agreed and charged separately.
- Subscriptions and fees of the other service. The account, the plan and any per-transaction fees at the service you connect to are paid by you, from your own account.
- Whatever the other side does not allow. If their API has no function you need, or it sits behind a more expensive plan, programming cannot solve that.
- Changes on the other system. I work on your side of the connection. Changes at a partner, a bank or a supplier are arranged by you with them.
- Cleaning up data that is not ready. If the code lists share no common key, or the same article is named differently in two systems, sorting that out is a separate job.
- Legal and tax assessment. Technically I can meet what the rules require, but the assessment comes from an accountant or a lawyer.
- The other service staying available. If they change the API, raise the price or shut the service down, adapting to it is new work.
Before we start, prepare:
- Access to both systems — a test account or a copy, with documentation if any exists.
- Keys and permissions at the other service, issued in your name.
- One contact person who knows how the job is done today and what makes a record correct.
- A few real data samples, including the ones that went wrong.
- A decision on what happens when the other side does not answer — wait, retry or report.
Ownership and exit
- Accounts and keys are in your name. You open the access to the third-party service, so the connection keeps working even if we never speak again.
- The source code is yours, together with a description of every call that is used.
- The log stays with you. Records of what was sent and received are kept on your server, not with me.
- No middleman. Your software calls the third-party service directly; I do not introduce a server of mine that your data would have to pass through.
Frequently asked questions
Which two systems need to talk to each other?
Write down which systems those are and what ought to happen. If the connection is possible, I will tell you how it is done and roughly what it costs; if it is not, I will tell you that too, before you pay for anything.
Send an enquiryI usually reply the same day.

Leave a Comment