Aydınlatma metni yükleniyor…
A web software integration is more than opening a technical connection between two systems. The team must define which data leaves which system, when and under which rule it moves, how the receiving system responds, what happens on failure and who owns the outcome.
Statements such as “ERP integration,” “connect to the CRM” or “add the payment API” are not sufficient delivery scope. An implementable integration plan answers:
- What are the source and destination systems?
- Which system is authoritative for each data field?
- What triggers the flow, and in which direction does it run?
- Is it synchronous, scheduled or event-driven?
- How are authentication and permission managed?
- How are success, pending, partial success and failure represented?
- What happens if the same transaction arrives twice?
- How is inconsistency detected and corrected?
- Who owns testing, monitoring, charges and maintenance?
This guide organises an integration through ten planning areas and an ownership matrix. It does not assume that a particular ERP, CRM or payment provider has the same capabilities in every project. Current technical and commercial conditions must be verified for the selected service.
1. Draw the system context first
Before listing API endpoints, show the purpose and boundary of each system. A simple context map may include the new application, ERP/accounting, CRM, payment provider, logistics, identity, email/messaging, analytics, files and the human roles using the integration.
Label every arrow with direction and primary data: “Portal → ERP: approved order,” “ERP → Portal: stock and dispatch status,” or “Portal → CRM: qualified lead.” A two-way arrow can hide two independent behaviours; show directions separately where practical.
System owner and data authority
Identify the authoritative system for each type of data. If ERP owns price, CRM owns communication consent and the portal owns permissions, allowing every system to edit every copy independently can create contradictions.
Record who creates the data, the authoritative store, whether other systems can change it, conflict rules, where history exists and which system initiates correction or deletion.
2. Create an integration inventory

Turn every connection into a separate row:
| ID | Source → destination | Business event | Primary data | Method | Criticality | Owner |
|---|---|---|---|---|---|---|
| INT-ORD-01 | Portal → ERP | Order approved | customer, items, price, address | API | High | Operations + technical team |
| INT-STK-02 | ERP → Portal | Stock changed | product, warehouse, quantity, time | event/schedule | Medium | ERP owner |
| INT-CRM-03 | Portal → CRM | Form became qualified lead | contact, source, consent | API | Medium | Marketing operations |
Do not combine three different flows into one “ERP integration” row. Triggers, criticality and failure behaviour may differ.
3. Define the business outcome
Describe the outcome before the method.
Weak:
Integrate the CRM API.
Clearer:
A form submission meeting the consent and qualification rules must create a CRM lead with campaign source and portal record ID. If transfer fails, the user must not need to resubmit the form and operations must be able to see the failed transaction.
This makes data, success and failure discussable. A technically successful call can still fail the user need if it produces incomplete data or the wrong timing.
4. Select trigger, timing and direction
Synchronous request
The user waits for an immediate response—for example, current price verification or payment initiation. A slow or unavailable destination affects the journey, so timeout and pending states are required.
Asynchronous or event-driven flow
The application records an event and completes processing through a queue or webhook. The user need not wait, but received, processing, completed and failed states must be managed.
Scheduled batch transfer
Data moves at intervals through files or batch APIs. It may suit reports or catalogues that do not require real-time updates. Define file integrity, retries, interrupted batches and reconciliation.
Choose according to user wait time, freshness, volume, provider limits and failure impact—not one universal integration pattern.
5. Document the API contract and mapping
API documentation should cover more than endpoint addresses. Requests, responses, types, required fields, validation, errors, pagination, limits, versions and examples should be visible.
The OpenAPI Specification provides a language-agnostic way to describe HTTP APIs so people and tools can understand service capabilities without source-code access (OpenAPI Specification). OpenAPI does not guarantee a correct integration; it can create a shared contract for documentation and testing.
Data-mapping table
| Business meaning | Source | Destination | Transformation | Required | Failure behaviour |
|---|---|---|---|---|---|
| Account number | dealer_code | accountId | trim leading spaces | Yes | reject and send to review |
| Currency | currency | currencyCode | ISO-code mapping | Yes | unknown code not transferred |
| Transaction time | approved_at | orderDate | timezone conversion | Yes | retain source timestamp |
Map business meaning, not only names. Two fields named status do not necessarily share the same state model.
6. Plan authentication, authorisation and secrets
Avoid giving an integration account the broadest permissions. Restrict it to the necessary resources and actions.
Plan authentication method, account owner, separate test/production credentials, least privilege, secret storage, rotation and revocation, access records, handover and emergency shutdown.
The OWASP API Security Top 10 covers risks including object-, property- and function-level authorisation, authentication, resource consumption, inventory and unsafe consumption of APIs (OWASP API Security Top 10). Security should not be reduced to possession of a valid key; the request must also be authorised for the relevant user, role, organisation and record.
Do not place passwords, API keys or secrets in requirements, tickets or plain-text tables. Record only who manages each secret and through which secure process.
7. Design failures, retries and duplicate handling
Integrations experience outages, timeouts, invalid data, rate limits and partial success. “Retry on error” is incomplete without stating which errors, how often, user state, duplicate prevention, where exhausted work goes and who reprocesses it.
Idempotency and transaction identity
Idempotency allows a logical operation to be retried without an unintended second result. Critical creation or payment operations may use a unique operation key and business rule. Confirm the provider’s actual support in its current documentation.
Stripe documents idempotency keys as a way to retry after connection failure without accidentally creating a second object or operation (Stripe idempotent requests). That behaviour is specific to the relevant API contract and must not be assumed for every service.
Webhook retries
A provider may send the same event more than once or deliver events out of the expected order. Plan event identity, processed-event records, signature verification, timestamps and replay handling. Stripe’s webhook guidance recommends handling duplicate events, verifying signatures and returning a successful response before lengthy processing (Stripe webhooks). Other providers may use different rules.
8. Plan reconciliation and consistency
A successful HTTP response does not always prove that the business process completed correctly. ERP may reject an order later, or payment may succeed while the portal fails to store the result.
Define a common transaction ID, fields and states to compare, reconciliation frequency, difference report, automatic corrections, human-review cases, correction permission and history. The point at which the user sees “completed” should reflect when the business outcome becomes final, not merely when a request was sent.
9. Define monitoring, logs and alerts
Do not rely on a customer to discover integration failure. Monitor transaction counts, successes, error type, response time, timeouts, queued work, last successful sync, retries, reconciliation differences, quota, and credential/certificate or version expiry.
Logs should not contain secrets, complete payment data or unnecessary personal information. A correlation/transaction ID and limited technical context can support investigation. Define who receives which alert, by which channel and during which support period.
10. Complete test, cost, version and ownership
Test scope
Include sandbox ownership, safe realistic data, successful paths, validation and permission failures, timeout, rate limits, duplicates, partial success, reconciliation, reprocessing and end-to-end production-readiness acceptance. Sandbox and production can differ; verify production-specific limits, permissions, domains, certificates and approvals.
Charges and quotas
Record setup/licence fees, subscriptions, transaction/message/user/call/data-volume charges, quotas, overage behaviour, tax/currency, renewal and whether the account is client- or provider-owned. State whether charges sit inside or outside the development proposal.
Version and change
Record the API version, announcement channel, deprecation date, compatibility-test owner, whether adaptation is maintenance or new development, and the emergency-change/rollback process.
Ownership matrix
| Area | Client process owner | Web software team | Third-party/system owner |
|---|---|---|---|
| Business rule/data meaning | Approves | Documents/implements | Explains source constraints |
| API access | Provides authorised request | Uses securely | Provides account/docs |
| Mapping | Validates | Develops/tests | Confirms field meaning |
| Failure operations | Decides operational action | Builds monitoring/reprocessing | Reports service incidents |
| Charges/quota | Approves commercial account | Monitors technical usage | Provides current terms |
| Version change | Approves business impact | Adapts/tests | Publishes schedule/notes |
Actual ownership depends on the contract and service. “The agency builds the integration” does not transfer the third party’s service availability, access and source-data responsibilities to the agency.
Different questions for ERP, CRM and payments
ERP integration
- Which system owns product, stock, price, customer and order?
- How current must stock and price be?
- How are branch, warehouse, currency and tax values mapped?
- What happens in the portal if ERP rejects an order?
- Are there batch windows or maintenance periods?
- Who owns migration and reconciliation?
CRM integration
- When does a submission become a lead or contact?
- How are duplicates matched?
- How are source, campaign and consent retained?
- Which system changes the sales stage?
- Does a result return to the portal?
- How does correction or deletion propagate?
Payment integration
- Is the payment page hosted, embedded or application-controlled?
- Which systems touch payment-card data?
- What are the initiation, redirect, verification and result steps?
- How are cancellation, refund, partial refund and dispute handled?
- How are signatures, duplicates and out-of-order events handled?
- How are payment and order states reconciled?
- Who owns test and production accounts?
Payment architecture can affect compliance scope. PCI Security Standards Council guidance explains that eligibility conditions differ according to the origin of payment-page elements (PCI SSC e-commerce FAQ). The actual PCI DSS scope must be established with the provider and, where necessary, qualified specialists; this article is not a compliance assessment.
Copyable integration requirement card
| Field | Information |
|---|---|
| Integration ID | INT-… |
| Business outcome | User/operational result |
| Source/destination | Systems and owners |
| Data authority | Authoritative system for each field |
| Trigger | user action, event or schedule |
| Direction/method | one/two-way; API, webhook, file, queue |
| Contract | endpoint, field, format, error, version, limit |
| Identity/permission | method, scope, owner, rotation |
| Success condition | point at which outcome is final |
| Failure behaviour | user state, record, alert, reprocessing |
| Idempotency | transaction identity and duplicate rule |
| Reconciliation | shared ID, frequency, difference owner |
| Monitoring | metrics, logs, alerts, owner |
| Test | environment, data, scenarios, acceptance |
| Cost/quota | subscription, usage, overage, payer |
| Version/maintenance | change channel and adaptation owner |
| Open dependency | access, document, decision and due date |
Go-live checklist
- Are test and production accounts separate?
- Are production secrets stored securely?
- Has least privilege been checked?
- Are field and state mappings approved?
- Have success, error, timeout and duplicate scenarios passed?
- Are webhook signature and replay behaviours verified?
- Is a common transaction ID recorded?
- Is reconciliation ready?
- Do monitoring and alerts reach the right owner?
- Are quota and cost alerts configured?
- Is the third-party support route recorded?
- Are version and certificate expiries monitored?
- Can the integration be rolled back or safely stopped?
- Does operations know how to handle failed work?
- Are accounts, documentation and ownership in the handover record?
Treat integration decisions as part of the overall web software process. Define every flow as a testable item in the requirements document, limit first-release connections through the MVP scope, assess their cost through the budget guide and confirm production ownership in the security and maintenance plan.
Conclusion
A successful integration does more than exchange data. Correct data must move at the right time through an authorised flow; failures and duplicates must be controlled; systems must reconcile the outcome; and operations must be able to see and resolve problems.
Start with the system map and data authority. Turn each flow into a separate inventory item and record trigger, contract, permissions, failure, idempotency, reconciliation, monitoring, testing, cost, version and ownership. “API integration included” then becomes a scope that can be verified from proposal through production operations.
Frequently Asked Questions
Can integration begin as soon as API documentation exists?
Not always. Access, permissions, sandbox, sample data, errors, rate limits, data quality and business rules still need verification.
Must an ERP integration be real time?
No. It can be synchronous, event-driven or scheduled according to user need, freshness, volume and ERP capabilities.
What should the user see when integration fails?
Do not show success before the outcome is final. Show an understandable state and next step, while operations receives secure technical detail.
Can a webhook deliver the same event twice?
Depending on the provider, yes. Use event or transaction identity for duplicate handling and follow the provider’s current signature and replay guidance.
Who pays when a third-party API changes?
It depends on the contract. Define whether adaptation is maintenance or new development and how urgent provider-driven changes are handled.
Does a payment provider eliminate PCI DSS obligations?
Do not assume it automatically removes every obligation. Assess the real architecture and current conditions with the provider and qualified specialists when needed.



