# Xero to Logistaas payments

> Payment.received from Xero through enrich, duplicate check, and Logistaas create_payment — serial XERO-{id}.

This is the flagship **Xero → Logistaas** payment flow OnDraft ships today.

## Flow summary

When Xero reports a payment against an invoice, OnDraft:

1. Receives the invoice update / payment received context from Xero.
2. **Enriches** the payment payload with the fields Logistaas expects.
3. Runs a **duplicate check** against existing Logistaas payments.
4. Calls **`create_payment`** with serial **`XERO-{id}`**.

If Logistaas responds with **422 already-exists**, the run is treated as **success** — the payment is already recorded.

Process executions are recorded for audit. Bud can notify operators when configured.

## Supporting detail

- [Why this integration](/integrations/logistaas/xero/why/)
- [How it works](/integrations/logistaas/xero/how-it-works/)
- Persona views: [operations](/integrations/logistaas/xero/for-operations/), [finance](/integrations/logistaas/xero/for-finance/)

## Boundaries

No named customer logos. No pricing. No claims beyond this payment path.
