Custom software / .NET / API integration / Scoping guide

How to scope a .NET API integration before estimating it

A useful first integration scope names one business event, one direction of data flow, the required fields, and how a safe test will prove the result. This hypothetical example uses synthetic data; it is a planning aid, not a Flextech customer project or a promise that any two systems can be connected.

Hypothetical example — synthetic data only. “Sample Parts Co.” has an existing .NET order application. Its owner wants an approved invoice sent to a separate accounting service. No real company, software vendor, database, or customer record is represented here.

Start with one event and one direction

Instead of asking for “an accounting integration,” define the first event precisely: when an invoice in the source application reaches an agreed approved state, send that invoice once to the destination system. The example is one-way. It does not assume that the destination has an API, that the source exposes one, or that either system permits this flow. Even if the .NET application stores records in SQL Server, do not assume that a direct database write is supported or safer than the application interface. Any read-only SQL inspection needs owner approval and schema context; database writes or schema changes require separate assessment.

DecisionExample definitionWhat still needs checking
TriggerAn invoice is approved in the .NET application.Which event or supported endpoint exposes that change? Who can authorize it?
DirectionSource application → accounting service.Is the intended flow one-way, and which system remains authoritative?
First record typeOne invoice shape.Are credit notes, tax adjustments or attachments separate cases?
Test boundaryVendor sandbox or isolated test environment with synthetic records.Does it exist, and can the owner grant least-privilege test access?

Write down the field mapping

A small field map exposes missing decisions before code is changed. These values are invented examples, not a recommended accounting format.

Source valueSynthetic sampleDestination question
Invoice referenceINV-DEMO-0001Which field is the stable unique reference?
Invoice date2026-10-12Which time zone and date format does the API expect?
Currency and totalMYR 1280.00Are the amount and currency separate fields? How are rounding and tax represented?
Approval stateapprovedWhat exact source state is allowed to trigger a send?
Customer identityCUSTOMER-DEMO-01Does the destination require an existing customer ID, or can it create one?

Do not send live customer information just to explain the mapping. A sanitized schema or synthetic row is enough for an initial discussion.

Define behavior when things go wrong

Integrations need decisions for repeated events and failed requests, not just the successful path. For this example, agree how a repeated invoice event is recognized, what happens after a timeout, which errors a staff member can see, and who is allowed to retry. The actual approach depends on the source and destination capabilities.

Example acceptance checks for a first test

Acceptance should be observable and agreed before implementation. A safe test plan for the synthetic example could check:

  1. Only the agreed approved test invoice is sent from the test source to the test destination.
  2. The destination shows the expected reference, date, currency, amount and customer mapping.
  3. Repeating the same event follows the agreed duplicate rule and does not silently create an unintended second invoice.
  4. A deliberately invalid test value or unavailable test endpoint produces a visible, traceable failure and follows the agreed retry rule.
  5. The owner reviews the result and separately approves any production access or write before it is enabled.

Passing these checks would confirm only the agreed test cases. It would not certify either system's security, accounting treatment, tax compliance, or every future scenario.

What must be ready before a real estimate

If documentation, ownership, permission or a safe test path is missing, pause at discovery. Do not guess how a private API works or promise compatibility before it has been assessed.

Keep the first scope bounded

A first written scope might cover one source, one destination, one invoice event, an agreed field map, safe test cases, visible failure handling and a documented handoff—only if both systems support that approach. Two-way synchronization, historical backfill, multiple record types, redesigning either application, schema migrations, security certification, accounting advice and ongoing support should be assessed and quoted separately if needed.

For the wider custom-software process, see custom software development in Malaysia. For the factors that affect an estimate, see the custom software cost guide.

Discuss a possible fit

Have a real integration or .NET change to scope?

Share the source and destination systems, one desired event, the current blocker, and whether documentation and a safe test environment exist. Use synthetic examples. Do not send passwords, API keys, tokens, or customer records. Flextech will need to assess ownership, compatibility, access and acceptance before any scope or estimate can be confirmed.

Start a project discussion ↗