---
updatedAt: 2026-08-08T01:31:50.000Z
agentTools:
  projectIndex: https://docs.deuna.com/llms.txt
---

# DEUNA Orchestration

<Callout icon="📘" theme="info">
  **If you use DEUNA's orchestration product, there is no additional development needed to enable Athia.**
</Callout>

**This page is for merchants who want to use Athia and DEUNA orchestration together.** If DEUNA is not in your payment path, the intelligence layer still works in full on the data you send; start at [Integrating Athia](https://docs.deuna.com/docs/athia-integration) instead.

The attempt-level data Athia needs is produced by the orchestration layer itself, and agents act on the same rails. There are no files to deliver, no warehouse access to grant and no provider credentials to issue.

This page covers Athia's execution layer, agents deciding inside the payment flow. Athia's intelligence layer, covered in [Athia Features](https://docs.deuna.com/docs/athia-features), runs on the data you send by any path and does not depend on anything described here.

## How agents run on your traffic

```mermaid
sequenceDiagram
    participant M as Merchant
    participant O as DEUNA orchestration with Athia agents
    participant P as Processor
    M->>O: Sends the payment request
    Note over O: The agent is consulted inside<br/>the orchestration decision.<br/>One service, one call.
    alt The agent answers inside its latency budget
        O->>P: Submits on the agent decision
    else The agent times out or is unavailable
        O->>P: Submits on your static rule configuration
    end
    P-->>O: Returns the outcome
    O-->>M: Returns the result
    Note over O: The outcome trains the next decision
```

*The agent is consulted inside the orchestration decision, not as a separate service call. Transactions enter DEUNA orchestration through whichever integration type you have chosen.*

The agent's decisions update from real outcomes rather than from rules someone has to maintain. The agent live today is [Acceptance Agent](https://docs.deuna.com/docs/athia-acceptance-agent). It uses machine learning and reinforcement learning to decide transaction by transaction, in real time.

**Fail-open always, onto your own rules.** If an agent does not answer inside its latency budget, the transaction is submitted on the static rule configuration you already have in DEUNA orchestration. That configuration is yours, it stays in place whether or not an agent is running, and it is what the transaction falls back to. No agent is ever in a position to block a payment, and no failure leaves a transaction without a routing decision.

## How much of your volume you route

You do not have to move everything at once, and most merchants do not.

<HTMLBlock>{`
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap" rel="stylesheet"><title>Full volume against a slice</title><style>
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:'Poppins',-apple-system,'Segoe UI',sans-serif;background:#FFFDFA;color:#121821;-webkit-font-smoothing:antialiased}
.bar{height:4px;background:linear-gradient(90deg,#FF5500 0%,#7A3FA0 50%,#1E51F7 100%)}
figure.diagram{margin:0;padding:0;background:#fff}
figure.diagram .canvas{display:block}
figure.diagram svg{display:block;width:100%;height:auto;font-family:'Poppins',-apple-system,'Segoe UI',sans-serif}
figcaption{padding:16px 40px 20px;border-top:1px solid #EFEAE4;background:#FFFDFA;
  font-style:normal;text-align:left;font-weight:400}
figcaption p{margin:0;font-size:12px;line-height:1.6;color:#6E6862;max-width:1180px;
  font-style:normal;text-align:left}
figcaption .legend{display:flex;gap:20px;margin-top:10px;font-size:10.5px;color:#8A837C;
  align-items:center;flex-wrap:wrap;font-style:normal;text-align:left}
figcaption .legend i{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:6px;vertical-align:middle}
@media print{figure.diagram{break-inside:avoid;page-break-inside:avoid}body{background:#fff}}

body{min-height:100vh;display:flex;flex-direction:column}
figure.diagram{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;background:#121821}
figure.diagram .canvas{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center}
figure.diagram svg{max-height:100%;margin:0 auto}
figcaption{flex:0 0 auto;width:100%}
</style></head><body><div class="bar"></div><figure class="diagram" id="volume-split" data-page="athia-with-deuna-orchestration">
<div class="canvas"><svg viewBox="0 0 1440 520" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Full volume against a slice"><defs>
<radialGradient id="bBlue" cx="35%" cy="30%"><stop offset="0%" stop-color="#8FB6F5"/><stop offset="55%" stop-color="#1E51F7"/><stop offset="100%" stop-color="#183766"/></radialGradient>
<linearGradient id="bOrange" x1="0" y1="0" x2="1" y2="1"><stop offset="0%" stop-color="#FF5500"/><stop offset="100%" stop-color="#E15C1A"/></linearGradient>
<linearGradient id="cardFill" x1="0" y1="0" x2="0" y2="1"><stop offset="0%" stop-color="#22304A"/><stop offset="100%" stop-color="#18202E"/></linearGradient>
<radialGradient id="washTL" cx="12%" cy="14%" r="62%"><stop offset="0%" stop-color="#2E6FE0" stop-opacity=".40"/><stop offset="100%" stop-color="#2E6FE0" stop-opacity="0"/></radialGradient>
<radialGradient id="washTR" cx="88%" cy="10%" r="58%"><stop offset="0%" stop-color="#2E6FE0" stop-opacity=".38"/><stop offset="100%" stop-color="#2E6FE0" stop-opacity="0"/></radialGradient>
<radialGradient id="washBL" cx="10%" cy="88%" r="60%"><stop offset="0%" stop-color="#234A86" stop-opacity=".55"/><stop offset="100%" stop-color="#234A86" stop-opacity="0"/></radialGradient>
<radialGradient id="washWarm" cx="92%" cy="88%" r="55%"><stop offset="0%" stop-color="#FF5500" stop-opacity=".16"/><stop offset="100%" stop-color="#FF5500" stop-opacity="0"/></radialGradient>
<marker id="aB" markerWidth="9" markerHeight="9" refX="7.5" refY="4.5" orient="auto"><path d="M0,0 L9,4.5 L0,9 z" fill="#5C7FB8"/></marker>
<marker id="aO" markerWidth="9" markerHeight="9" refX="7.5" refY="4.5" orient="auto"><path d="M0,0 L9,4.5 L0,9 z" fill="#FF5500"/></marker>
<marker id="aG" markerWidth="9" markerHeight="9" refX="7.5" refY="4.5" orient="auto"><path d="M0,0 L9,4.5 L0,9 z" fill="#00B831"/></marker>
<marker id="aD" markerWidth="9" markerHeight="9" refX="7.5" refY="4.5" orient="auto"><path d="M0,0 L9,4.5 L0,9 z" fill="#8B98AE"/></marker>
<marker id="aR" markerWidth="9" markerHeight="9" refX="7.5" refY="4.5" orient="auto"><path d="M0,0 L9,4.5 L0,9 z" fill="#E23B3B"/></marker>
<filter id="soft" x="-60%" y="-60%" width="220%" height="220%"><feGaussianBlur stdDeviation="9" result="b"/><feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge></filter>
</defs>
<rect width="1440" height="520" fill="#121821"/><rect width="1440" height="520" fill="url(#washTL)"/><text x="52" y="52" fill="#8FB6F5" font-size="11" letter-spacing="2.4" font-weight="600">VOLUME</text><text x="52" y="84" fill="#FFFFFF" font-size="23" font-weight="500">How much of your traffic routes through DEUNA</text>
<rect x="72" y="126" rx="12" width="620" height="330" fill="#0E1726" stroke="#1E6B36" stroke-width="1"/>
<rect x="72" y="126" rx="12" width="230" height="30" fill="#1E6B36"/>
<text x="92" y="146" fill="#FFFFFF" font-size="11.5" font-weight="600">A · FULL VOLUME</text>
<rect x="112" y="232" rx="12" width="150" height="52" fill="#1A2230" stroke="#31405A" stroke-width="1"/><text x="187" y="263" fill="#DCE4F2" font-size="12" text-anchor="middle">All attempts</text>
<line x1="262" y1="258" x2="304" y2="258" stroke="#00B831" stroke-width="1.7" marker-end="url(#aG)"/>
<rect x="308" y="226" rx="12" width="180" height="64" fill="#16243F" stroke="#2F5490" stroke-width="1"/><text x="398" y="254" fill="#FFFFFF" font-size="12.5" text-anchor="middle" font-weight="600">DEUNA orchestration</text>
<text x="398" y="272" fill="#8FB6F5" font-size="10" text-anchor="middle">every attempt passes here</text>
<line x1="488" y1="258" x2="530" y2="258" stroke="#00B831" stroke-width="1.7" marker-end="url(#aG)"/>
<rect x="534" y="226" rx="12" width="124" height="64" fill="url(#cardFill)" stroke="#3C5A93" stroke-width="1"/><text x="596" y="262" fill="#8FB6F5" font-size="12" text-anchor="middle" font-weight="600">Athia</text>
<rect x="112" y="364" rx="14" width="170" height="28" fill="#0F2A18" stroke="#1E6B36"/><text x="126" y="382" fill="#8FD9A4" font-size="10.5" font-weight="600">Attempts</text><circle cx="260" cy="378" r="7" fill="#00B831"/><path d="M256.5 378 l2.6 2.6 l4.4 -4.8" fill="none" stroke="#0B1A11" stroke-width="1.7"/><rect x="295" y="364" rx="14" width="170" height="28" fill="#0F2A18" stroke="#1E6B36"/><text x="309" y="382" fill="#8FD9A4" font-size="10.5" font-weight="600">Declines and retries</text><circle cx="443" cy="378" r="7" fill="#00B831"/><path d="M439.5 378 l2.6 2.6 l4.4 -4.8" fill="none" stroke="#0B1A11" stroke-width="1.7"/><rect x="478" y="364" rx="14" width="170" height="28" fill="#0F2A18" stroke="#1E6B36"/><text x="492" y="382" fill="#8FD9A4" font-size="10.5" font-weight="600">Settlement</text><circle cx="626" cy="378" r="7" fill="#00B831"/><path d="M622.5 378 l2.6 2.6 l4.4 -4.8" fill="none" stroke="#0B1A11" stroke-width="1.7"/>
<rect x="112" y="404" rx="15" width="536" height="30" fill="#0F2418" stroke="#1E6B36"/><text x="128" y="423" fill="#8FD9A4" font-size="11.5" font-weight="600">Nothing to ingest. Every optimization lever is available.</text>

<rect x="748" y="126" rx="12" width="620" height="330" fill="#0E1726" stroke="#6B2029" stroke-width="1"/>
<rect x="748" y="126" rx="12" width="340" height="30" fill="#6B2029"/>
<text x="768" y="146" fill="#FFFFFF" font-size="11.5" font-weight="600">B · A SLICE: SOFT DECLINES, OR AN A/B SPLIT</text>
<rect x="788" y="186" rx="12" width="190" height="64" fill="#2A1114" stroke="#6B2029" stroke-width="1"/>
<text x="883" y="212" fill="#F0A0A6" font-size="11.5" text-anchor="middle">Everything you keep on</text>
<text x="883" y="229" fill="#F0A0A6" font-size="11.5" text-anchor="middle">your own processor</text>
<text x="883" y="245" fill="#E23B3B" font-size="9.5" text-anchor="middle" font-weight="600">NOT VISIBLE TO ATHIA</text>
<path d="M883 250 L883 288 L1090 288" fill="none" stroke="#E23B3B" stroke-width="1.6" marker-end="url(#aR)"/>
<text x="900" y="280" fill="#F0A0A6" font-size="10">soft declines, or the test arm</text>
<rect x="1094" y="258" rx="12" width="150" height="60" fill="#16243F" stroke="#2F5490" stroke-width="1"/><text x="1169" y="284" fill="#FFFFFF" font-size="11.5" text-anchor="middle" font-weight="600">DEUNA</text>
<text x="1169" y="301" fill="#8FB6F5" font-size="10" text-anchor="middle">recovery, or the test arm</text>
<line x1="1244" y1="288" x2="1286" y2="288" stroke="#00B831" stroke-width="1.7" marker-end="url(#aG)"/>
<rect x="1290" y="258" rx="12" width="78" height="60" fill="url(#cardFill)" stroke="#3C5A93" stroke-width="1"/><text x="1329" y="293" fill="#8FB6F5" font-size="11.5" text-anchor="middle" font-weight="600">Athia</text>
<path d="M883 250 L883 348 L1180 348 L1180 322" fill="none" stroke="#1E51F7" stroke-width="1.7" stroke-dasharray="6 4" marker-end="url(#aB)"/>
<text x="900" y="333" fill="#8FB6F5" font-size="10">context you ingest</text>
<rect x="788" y="364" rx="14" width="176" height="28" fill="#2A1114" stroke="#6B2029"/><text x="802" y="382" fill="#F0A0A6" font-size="10.5" font-weight="600">Attempts</text><circle cx="942" cy="378" r="7" fill="#E23B3B"/><path d="M939 375 l6 6 M945 375 l-6 6" fill="none" stroke="#2A1114" stroke-width="1.7"/><rect x="978" y="364" rx="14" width="176" height="28" fill="#0F2A18" stroke="#1E6B36"/><text x="992" y="382" fill="#8FD9A4" font-size="10.5" font-weight="600">Declines and retries</text><circle cx="1132" cy="378" r="7" fill="#00B831"/><path d="M1128.5 378 l2.6 2.6 l4.4 -4.8" fill="none" stroke="#0B1A11" stroke-width="1.7"/><rect x="1168" y="364" rx="14" width="176" height="28" fill="#1A1310" stroke="#4A2E1C"/><text x="1182" y="382" fill="#FFB98A" font-size="10.5" font-weight="600">Settlement</text><circle cx="1322" cy="378" r="7" fill="#FF8A3D"/><path d="M1318.5 378 l7 0" fill="none" stroke="#2A1409" stroke-width="1.9"/>
<rect x="788" y="404" rx="15" width="556" height="30" fill="#101A2C" stroke="#2F4670"/><text x="804" y="423" fill="#9DB6E4" font-size="11.5" font-weight="600">Send the offline transactions, or the agent trains on half a picture</text>
</svg></div>
<figcaption><p>Two pilot shapes are common: soft declines only, where DEUNA touches nothing your own stack has not already given up on, and an A/B split measured on your own volume. Both need the transactions that never reached DEUNA. Without them a soft-decline pilot is a model reasoning about failures with no view of the successes, and an A/B test has only one arm.</p><div class="legend"><span><i style="background:#00B831"></i>Visible to Athia</span><span><i style="background:#E23B3B"></i>Blind spot</span><span><i style="background:#1E51F7"></i>Context you ingest separately</span></div></figcaption>
</figure></body></html>
`}</HTMLBlock>

*For any partial setup, that separately ingested context is the traffic that never reached DEUNA.*

|                            | A. Full volume                                    | B. A portion of volume             |
| -------------------------- | ------------------------------------------------- | ---------------------------------- |
| **Volume routed to DEUNA** | All of it                                         | A defined slice                    |
| **What Athia sees**        | Every attempt, decline, retry and settlement      | Only the slice you route           |
| **What you must ingest**   | Nothing                                           | The context around the slice       |
| **Optimization levers**    | Processor selection, retry, message configuration | The levers that apply to the slice |

### A. Full volume through DEUNA orchestration

All of your traffic flows through DEUNA's pipes, so processing and routing are both optimization surfaces. Athia sees every attempt, every decline, every retry and every settlement with no ingestion work on your side.

### B. A portion of volume through DEUNA orchestration

Two shapes are common, and both are pilots that grow.

**Soft declines only.** Your primary processor keeps first attempts, and DEUNA orchestration receives the soft declines for recovery. The narrowest possible start: DEUNA only ever touches transactions your own stack has already given up on.

**An A/B experiment.** A share of your traffic routes to DEUNA orchestration and the rest stays on your current configuration, so the two are compared like for like on your own volume rather than against a benchmark. The share is agreed with you and moves only as results hold.

<Callout icon="📘" theme="info">
  **Both shapes need the offline transactions.** DEUNA only sees what DEUNA processes. For the agent to keep training, and for the comparison to be honest, the transactions that did not go through DEUNA have to reach Athia by one of the paths on [Integrating Athia](https://docs.deuna.com/docs/athia-integration). Without them, a soft-decline pilot is a model reasoning about failures with no view of the successes, and an A/B test has only one arm.
</Callout>

Minimum context for a soft-decline or retry-only setup, per original attempt:

| Field                    | Type            | Description                                                           |
| ------------------------ | --------------- | --------------------------------------------------------------------- |
| `payment_transaction_id` | String          | Identifier of the original attempt, used to link the retry back to it |
| `psp_name`               | String          | Provider the original attempt was sent to                             |
| `psp_error_code`         | String          | Provider decline code                                                 |
| `psp_error_message`      | String          | Provider decline reason text                                          |
| `payment_amount`         | Decimal         | Attempt amount                                                        |
| `currency_code`          | String          | ISO 4217 currency code                                                |
| `card_bin`               | String          | Card BIN, first six or eight digits                                   |
| `last_four_digits`       | String          | Last four digits of the card                                          |
| `payment_timestamp`      | ISO 8601 string | Time of the original attempt, UTC                                     |

These are the names Athia uses; send the equivalent from your own systems and your Athia team maps them.

For an A/B experiment the requirement is wider: Athia needs the control arm too, at the same grain, or the arms are not comparable. Your Athia team agrees the field set with you before the experiment starts.

Ingest that context through any path on [Integrating Athia](https://docs.deuna.com/docs/athia-integration).

## If you do not route through DEUNA orchestration

The full intelligence layer is available on every integration path. Strategist, smart dashboards and Ask Athia run on the data you send, so you get all of it without routing a single transaction through DEUNA orchestration. Routing is what adds execution inside the payment flow, and one execution shape, batch, is available outside it as a file exchange with no integration and no change to how you route. See [Athia](https://docs.deuna.com/docs/athia) for how a recommendation reaches an MIT or a CIT transaction when DEUNA is not in the path, and [Acceptance Agent](https://docs.deuna.com/docs/athia-acceptance-agent) for the batch file itself.

## Getting started

DEUNA works through these steps with you. At each one DEUNA brings the evidence and you decide whether to go further.

1. **Confirm your orchestration setup.** DEUNA checks it with you.
2. **Decide the scope.** Full volume, a soft-decline slice, or an A/B experiment. If anything stays outside DEUNA, DEUNA identifies the context Athia is missing with you and agrees an ingestion path from [Integrating Athia](https://docs.deuna.com/docs/athia-integration).
3. **Load history.** Athia needs a historical dump to learn your baselines before the agent acts, and DEUNA works with your team on the delivery.
4. **Prove it before it carries volume.** How that is done depends on your scope, and is set out under [going live](https://docs.deuna.com/docs/athia-acceptance-agent#going-live).

## The orchestration integration itself

Documented in the DEUNA developer docs:

* [DEUNA Payments](https://docs.deuna.com/docs/deuna-payments), what the orchestration platform does
* [Integrate DEUNA's orchestration platform](https://docs.deuna.com/docs/integrate-deuna), the integration itself