Appearance
Skip to content
Are you an LLM? You can read better optimized documentation at /data-flow.md for this page in Markdown format
Data Flow & Synchronisation
Payment Nexus sits between two external systems: the brand's CRM (which manages customers and orders) and the PSP (which processes payments). This page explains how information flows between all three, and the mechanisms that keep them in sync.
The Three Systems
- Brand CRM — manages the brand's customers and initiates checkout sessions
- Payment Nexus — coordinates the checkout, creates payment records, and keeps all parties in sync
- PSP — processes the payment and reports the result back
CRM → Payment Nexus: Starting a Payment
The brand's CRM begins every payment flow by calling the Payment Nexus CRM API. This is done via Silent Authentication — the CRM generates a session token on behalf of the customer, without the customer needing to log in.
The CRM call includes the customer's identity, the payment amount, and the destination URLs for each outcome. Payment Nexus validates the request, creates a Checkout Intent Ticket, and returns a checkout URL that the CRM uses to redirect the customer.
PSP → Payment Nexus: Receiving a Payment Result
When a payment is processed, the PSP sends the result to Payment Nexus via an incoming webhook — a notification sent to a URL that Payment Nexus exposes for each PSP.
Payment Nexus acknowledges the notification immediately and processes it in the background. This means the PSP gets a fast confirmation, and Payment Nexus handles the update without holding the PSP waiting. If processing fails for any reason, the notification is retried automatically.
Once processed, the notification updates the Payment Intent Ticket to reflect the new status (succeeded, cancelled, etc.).
Payment Nexus → CRM: Notifying of a Payment Update
After a Payment Intent Ticket is updated, Payment Nexus notifies the brand's CRM by sending it a notification with the latest payment details.
This happens after every status change: when the payment is created, when it succeeds or fails, and when a reconciliation update occurs.
The notification includes:
- What changed (e.g. payment created, payment updated)
- The current ticket status
- The transaction amounts (both in the original currency and in EUR)
- The customer's ID in the brand's system
- The PSP transaction ID
- Checkout session details (if the payment came from a checkout session)
The CRM uses this to update its own records — for example, to mark an order as paid.
CRM updates can be disabled
Individual Payment Intent Tickets can be excluded from automatic CRM notifications via Advanced Settings. When disabled, the Automatically Updates CRM field on the ticket shows No in red.
Keeping Payments in Sync: Reconciliation
Not every payment resolves immediately. Some PSPs take minutes or hours to confirm a result, and occasionally a webhook is missed or fails to process. Payment Nexus uses a tiered schedule of background reconciliation jobs to check back on any payment that has not yet reached a final state.
Reconciliation only runs on payments that have not yet reached a final state. Once a payment succeeds or is cancelled, no further checks are made.
The reconciliation schedule is tiered by age — recent payments are checked frequently, older ones less so:
| Payment age | Check frequency |
|---|---|
| Under 5 minutes | Every minute |
| 5 – 15 minutes | Every 5 minutes |
| 15 – 30 minutes | Every 15 minutes |
| 30 – 60 minutes | Every 30 minutes |
| 1 – 3 hours | Every hour |
| 3 – 6 hours | Every 3 hours |
| 6 – 18 hours | Every 6 hours |
| 18 – 36 hours | Every 12 hours |
| 1 – 3 days | Daily |
| 3 – 21 days | Weekly |
| 21 – 90 days | Monthly |
Each reconciliation run queries the PSP for the current status of the payment, updates the ticket if anything has changed, and triggers a CRM notification if the status moved.
Manual reconciliation
Operators can trigger a reconciliation check on demand using the Refresh from PSP button on any Payment Intent Ticket. This is useful when a payment appears stuck and you want to fetch the latest status immediately rather than waiting for the next scheduled run.
Full Synchronisation Picture
What Can Go Wrong
| Situation | What happens |
|---|---|
| PSP webhook is delayed or never arrives | Reconciliation jobs will eventually check back and pick up the result |
| CRM notification fails to deliver | The notification queue will retry delivery |
| Payment is stuck and reconciliation hasn't run yet | Use Refresh from PSP on the PIT for an immediate check |
| PSP result is ambiguous and cannot be reconciled automatically | Use Disposition on the PIT to manually set the outcome |