Transaction Reporting
Report Off-Yuno Transactions
Report transactions processed directly with your providers so they appear in Yuno as payments — dashboard, listings and analytics included.
POST
This endpoint gives Yuno visibility over the traffic you process directly with your providers, outside Yuno’s transaction path. Each accepted event is persisted as a regular Yuno payment, differentiated by the
Per-event rejections:
Causes: invalid enum value, wrong field type, unknown field, or
origin field:
origin: YUNO— payments processed by Yuno (every existing payment).origin: REPORTED— payments that entered through this API.
GET /v1/payments, and in analytics — filtered by origin — but Yuno never processes them: no routing, no provider calls, no retries, and no money movement. The money already moved at your provider; Yuno records the fact.
Enabled per organizationThis API requires activation for your organization. Contact your Key Account Manager (KAM) to enable it.
How it works
- You process a transaction directly with your provider (e.g. a purchase on your own Adyen account).
- You report it here — one event or a batch of up to 500. For latency-sensitive integrations we recommend batches of up to 100 events: the full 500-event batch is processed synchronously and can take several seconds.
- Each accepted event creates one payment with one transaction, with the status derived from
resultand the event type: aPURCHASEwith resultSUCCEEDEDlands the paymentSUCCEEDED; anAUTHORIZEwith resultSUCCEEDEDlandsPENDINGwith sub-statusAUTHORIZED(an approved authorization is not captured money — it mirrors how Yuno-processed authorizations behave); aVERIFYwith resultSUCCEEDEDlandsSUCCEEDEDwith sub-statusVERIFIED(the verification completed; no money moves — it mirrors how Yuno-processed verifications persist);DECLINED→DECLINED,ERROR→ERROR.
PURCHASE (default), AUTHORIZE, and VERIFY. A VERIFY reports a card verification (zero-dollar authorization), typically reported with amount.value: 0. Lifecycle events (captures, refunds, chargebacks) are on the roadmap.
Retries and deduplication
There is no idempotency header on this endpoint — and none is needed. Thereport_id you generate per event is the deduplication key: an event whose report_id was already ingested is counted in duplicates and never ingested twice, no matter when or in which batch it arrives. Retrying a whole batch after a network failure is always safe.
Because report_id alone decides, an event that reuses an already-ingested report_id with a different payload is also counted as a duplicate and silently discarded — never reuse a report_id across different transactions.
The batch is processed per event: one invalid event lands in rejected[] with its reason, and the rest of the batch is unaffected.
The raw provider response
If you includeraw_provider_response (the provider’s response payload, verbatim, up to 64 KB), Yuno stores it with defensive card-data redaction applied — primary account numbers and security codes are removed before anything is persisted. It is never returned by any API.
Sending it is recommended: it lets Yuno enrich the reported payment later (network transaction references, decline reasons) without asking you for anything new.
Operations on reported payments
Reported payments cannot be operated through Yuno — a refund or capture request on a payment withorigin: REPORTED returns 403 OPERATION_NOT_ALLOWED_FOR_REPORTED_PAYMENT. Perform the operation at your provider and report it as a new event when lifecycle events become available.
Errors
Errors return acode and a messages array.
Per-event rejections: INVALID_EVENT
INVALID_EVENT is not an HTTP error — the batch itself is accepted (202), and each invalid event is returned individually inside rejected[] with this code and its reason, while the rest of the batch is ingested normally:
raw_provider_response over 64 KB.Headers
Your public API key.
Your private secret key. Never expose it client-side.
Body
application/json