# Modified Finnegan NAS score

Finnegan

Status: LIVE
Price: $0.005 USDC
`GET /api/calc/finnegan`
HTML: https://magentlab.com/docs/finnegan
Markdown: https://magentlab.com/docs/finnegan.md

Not a medical device. Not a diagnosis, dose, or listing recommendation.

## What it computes

Sum Maguire 2013 Table 1 modified Finnegan items from caller-assigned exclusive cry, sleep, Moro, tremor, fever, respiratory, and stool bands plus true/false CNS, vasomotor, and GI flags. Return the 0–46 total and at_or_above_8 (true iff score ≥ 8).

## When to use

When an agent already has Maguire 2013 Table 1 modified FNAS observations as assigned by the caller and needs that published total and ≥8 threshold. magent does not examine the infant, score Eat Sleep Console, score Maguire's 7-item short form, or issue a morphine order.

## When not to use

- Not a medical device and not a diagnosis of neonatal abstinence syndrome.
- magent does not examine the infant. Each item is a caller-assigned Maguire 2013 Table 1 exclusive band or true/false flag.
- This is the operational modified FNAS item table reprinted as Maguire 2013 Table 1, not a 31-item website variant and not Maguire's 7-item short form.
- Not Eat Sleep Console (Grossman 2018).
- Not a morphine or other pharmacologic dose. at_or_above_8 is the published ≥8 suspicion / treatment threshold only. This tool does not invent mild/moderate/severe stages.

## Formula

```
FNAS = crying + sleep + moro + tremors + increased_muscle_tone + myoclonic_jerk + generalized_convulsions + excoriation + sweating + fever + frequent_yawning + mottling + nasal_stuffiness + sneezing + nasal_flaring + respiratory + excessive_sucking + poor_feeding + regurgitation + projectile_vomiting + stools; Maguire 2013 Table 1 modified Finnegan (exclusive cry/sleep/moro/tremors/fever/respiratory/stools; remaining items true/false); max 46; at_or_above_8 iff total >= 8 (Zimmermann-Baer / Maguire suspicion and pharmacologic-treatment threshold). Not Eat Sleep Console. Not Maguire 7-item short form. magent does not examine the infant. Not a morphine order.
```

## Citation

[Neonatal abstinence syndrome: assessment and management](https://pubmed.ncbi.nlm.nih.gov/1163358)
Finnegan LP, Connaughton JF Jr, Kron RE, Emich JP
Addict Dis. 1975;2(1-2):141-158
DOI: none

## Worked example

### All exclusive bands none and all flags false

Given: `crying=none, excessive_sucking=false, excoriation=false, fever=none, frequent_yawning=false, generalized_convulsions=false, increased_muscle_tone=false, moro=none, mottling=false, myoclonic_jerk=false, nasal_flaring=false, nasal_stuffiness=false, poor_feeding=false, projectile_vomiting=false, regurgitation=false, respiratory=none, sleep=none, sneezing=false, stools=none, sweating=false, tremors=none`

1. crying, sleep, moro, tremors, fever, respiratory, and stools are none; remaining items false as assigned by the caller
2. Score = 0 (max 46); at_or_above_8 false (below the published ≥8 threshold)


### Excessive high-pitched cry only

Given: `crying=excessive_high_pitched, excessive_sucking=false, excoriation=false, fever=none, frequent_yawning=false, generalized_convulsions=false, increased_muscle_tone=false, moro=none, mottling=false, myoclonic_jerk=false, nasal_flaring=false, nasal_stuffiness=false, poor_feeding=false, projectile_vomiting=false, regurgitation=false, respiratory=none, sleep=none, sneezing=false, stools=none, sweating=false, tremors=none`

1. crying excessive_high_pitched (2); remaining exclusive bands none and remaining flags false
2. Score = 2 (max 46); at_or_above_8 false


### Score 8 at the published threshold

Given: `crying=continuous_high_pitched, excessive_sucking=false, excoriation=false, fever=none, frequent_yawning=false, generalized_convulsions=false, increased_muscle_tone=false, moro=hyperactive, mottling=false, myoclonic_jerk=false, nasal_flaring=false, nasal_stuffiness=false, poor_feeding=false, projectile_vomiting=false, regurgitation=false, respiratory=none, sleep=lt_1h, sneezing=false, stools=none, sweating=false, tremors=none`

1. continuous_high_pitched cry 3 + sleep lt_1h 3 + hyperactive Moro 2; remaining items none or false
2. Score = 8 (max 46); at_or_above_8 true (Zimmermann-Baer / Maguire ≥8 threshold). Not a morphine dose.


## Also searched as

- modified Finnegan
- Finnegan NAS
- FNAS
- neonatal abstinence score
- modified FNAS
- Finnegan score
- neonatal abstinence syndrome score
- Maguire modified Finnegan

## Parameters

- `crying` (string, required): Caller-assigned Maguire 2013 Table 1 crying (none, excessive_high_pitched, or continuous_high_pitched). Exclusive. none 0, excessive_high_pitched 2, continuous_high_pitched 3. magent does not examine the infant.
- `sleep` (string, required): Caller-assigned Maguire 2013 Table 1 sleep after feeding (none, lt_3h, lt_2h, or lt_1h). Exclusive. Sleeps less than 3/2/1 h after feeding: lt_3h 1, lt_2h 2, lt_1h 3. magent does not observe sleep.
- `moro` (string, required): Caller-assigned Maguire 2013 Table 1 Moro reflex (none, hyperactive, or markedly_hyperactive). Exclusive. hyperactive 2, markedly_hyperactive 3. magent does not examine the infant.
- `tremors` (string, required): Caller-assigned Maguire 2013 Table 1 tremors (none, mild_disturbed, moderate_severe_disturbed, mild_undisturbed, or moderate_severe_undisturbed). Exclusive. mild_disturbed 1, moderate_severe_disturbed 2, mild_undisturbed 3, moderate_severe_undisturbed 4. magent does not examine the infant.
- `increased_muscle_tone` (boolean, required): Caller-assigned Maguire 2013 Table 1 increased muscle tone. true scores 2. magent does not examine the infant.
- `myoclonic_jerk` (boolean, required): Caller-assigned Maguire 2013 Table 1 myoclonic jerks. true scores 3. magent does not examine the infant.
- `generalized_convulsions` (boolean, required): Caller-assigned Maguire 2013 Table 1 generalized convulsions. true scores 5. magent does not examine the infant. Not a seizure diagnosis.
- `excoriation` (boolean, required): Caller-assigned Maguire 2013 Table 1 excoriation. Single item (not per-site nose, knees, or toes). true scores 1. magent does not inspect the skin.
- `sweating` (boolean, required): Caller-assigned Maguire 2013 Table 1 sweating. true scores 1. magent does not examine the infant.
- `fever` (string, required): Caller-assigned Maguire 2013 Table 1 fever (none, lt_101f, or gt_101f). Exclusive. Maguire <101°F scores 1; >101°F scores 2. magent does not take a temperature.
- `frequent_yawning` (boolean, required): Caller-assigned Maguire 2013 Table 1 frequent yawning (>3). true scores 1. magent does not observe yawning.
- `mottling` (boolean, required): Caller-assigned Maguire 2013 Table 1 mottling. true scores 1. magent does not examine the infant.
- `nasal_stuffiness` (boolean, required): Caller-assigned Maguire 2013 Table 1 nasal stuffiness. true scores 1. magent does not examine the infant.
- `sneezing` (boolean, required): Caller-assigned Maguire 2013 Table 1 sneezing (>3). true scores 1. magent does not count sneezes.
- `nasal_flaring` (boolean, required): Caller-assigned Maguire 2013 Table 1 nasal flaring. true scores 2. magent does not examine the infant.
- `respiratory` (string, required): Caller-assigned Maguire 2013 Table 1 respiratory rate (none, gt_60, or gt_60_retractions). Exclusive. Rate >60/min scores 1; >60 with retractions scores 2. magent does not count respirations.
- `excessive_sucking` (boolean, required): Caller-assigned Maguire 2013 Table 1 excessive sucking. true scores 1. magent does not observe feeding.
- `poor_feeding` (boolean, required): Caller-assigned Maguire 2013 Table 1 poor feeding. true scores 2. magent does not observe feeding.
- `regurgitation` (boolean, required): Caller-assigned Maguire 2013 Table 1 regurgitation. true scores 2. magent does not observe feeding.
- `projectile_vomiting` (boolean, required): Caller-assigned Maguire 2013 Table 1 projectile vomiting. true scores 3. magent does not observe feeding.
- `stools` (string, required): Caller-assigned Maguire 2013 Table 1 stools (none, loose, or watery). Exclusive. loose 2, watery 3. magent does not inspect stools.

## Bulk (POST)

POST the same path with a JSON items array. The first item is the GET unit; each additional item is $0.002. Invalid items return HTTP 400 before settlement.

Method: `POST /api/calc/finnegan`
Max items: 25
Price: unit_amount + extra_item_amount * (n - 1) (unit 5000 atomic, extra 2000 atomic)
Status: PREVIEW

- 1 to 25 items. Each item uses the same keys as the GET query parameters.
- POST of 1 item costs the same as GET. Lists longer than 25: chunk into multiple POSTs. Extra items still execute; do not pad dummy rows.
- The first invalid item fails the whole request (index in the 400 JSON). You are not charged.
- HTTP 200 is {count, path, items}. Each items[i] is the GET 200 body for that row.
- Catalog misses (empty matches, found=false) stay paid 200s inside that slot.
- x402 resource URL is this path plus n and body_sha256. Browsers that prefer text/html get the same paywall as GET; Pay retries POST with the same items.

Example request:

```json
{
  "items": [
    {
      "crying": "none",
      "excessive_sucking": "false",
      "excoriation": "false",
      "fever": "none",
      "frequent_yawning": "false",
      "generalized_convulsions": "false",
      "increased_muscle_tone": "false",
      "moro": "none",
      "mottling": "false",
      "myoclonic_jerk": "false",
      "nasal_flaring": "false",
      "nasal_stuffiness": "false",
      "poor_feeding": "false",
      "projectile_vomiting": "false",
      "regurgitation": "false",
      "respiratory": "none",
      "sleep": "none",
      "sneezing": "false",
      "stools": "none",
      "sweating": "false",
      "tremors": "none"
    },
    {
      "crying": "none",
      "excessive_sucking": "false",
      "excoriation": "false",
      "fever": "none",
      "frequent_yawning": "false",
      "generalized_convulsions": "false",
      "increased_muscle_tone": "false",
      "moro": "none",
      "mottling": "false",
      "myoclonic_jerk": "false",
      "nasal_flaring": "false",
      "nasal_stuffiness": "false",
      "poor_feeding": "false",
      "projectile_vomiting": "false",
      "regurgitation": "false",
      "respiratory": "none",
      "sleep": "none",
      "sneezing": "false",
      "stools": "none",
      "sweating": "false",
      "tremors": "none"
    }
  ]
}
```

Human paywall (two-item fixture): https://api.magentlab.com/paywall/bulk/finnegan

Example 200:

```json
{
  "count": 2,
  "path": "/api/calc/finnegan",
  "items": [
    {
      "components": [
        {
          "value": "none",
          "factor": "crying",
          "points": 0,
          "present": false
        },
        {
          "value": "none",
          "factor": "sleep",
          "points": 0,
          "present": false
        },
        {
          "value": "none",
          "factor": "moro",
          "points": 0,
          "present": false
        },
        {
          "value": "none",
          "factor": "tremors",
          "points": 0,
          "present": false
        },
        {
          "factor": "increased_muscle_tone",
          "points": 0,
          "present": false
        },
        {
          "factor": "myoclonic_jerk",
          "points": 0,
          "present": false
        },
        {
          "factor": "generalized_convulsions",
          "points": 0,
          "present": false
        },
        {
          "factor": "excoriation",
          "points": 0,
          "present": false
        },
        {
          "factor": "sweating",
          "points": 0,
          "present": false
        },
        {
          "value": "none",
          "factor": "fever",
          "points": 0,
          "present": false
        },
        {
          "factor": "frequent_yawning",
          "points": 0,
          "present": false
        },
        {
          "factor": "mottling",
          "points": 0,
          "present": false
        },
        {
          "factor": "nasal_stuffiness",
          "points": 0,
          "present": false
        },
        {
          "factor": "sneezing",
          "points": 0,
          "present": false
        },
        {
          "factor": "nasal_flaring",
          "points": 0,
          "present": false
        },
        {
          "value": "none",
          "factor": "respiratory",
          "points": 0,
          "present": false
        },
        {
          "factor": "excessive_sucking",
          "points": 0,
          "present": false
        },
        {
          "factor": "poor_feeding",
          "points": 0,
          "present": false
        },
        {
          "factor": "regurgitation",
          "points": 0,
          "present": false
        },
        {
          "factor": "projectile_vomiting",
          "points": 0,
          "present": false
        },
        {
          "value": "none",
          "factor": "stools",
          "points": 0,
          "present": false
        }
      ],
      "disclaimer": "Not a medical device. Deterministic published-formula or published-code output for autonomous agents. A licensed clinician remains responsible for patient care and billing submissions.",
      "citation": {
        "authors": "Finnegan LP, Connaughton JF Jr, Kron RE, Emich JP",
        "id": "finnegan-1975",
        "pmid": "1163358",
        "source": "Addict Dis. 1975;2(1-2):141-158",
        "title": "Neonatal abstinence syndrome: assessment and management"
      },
      "formula": "finnegan",
      "formula_expression": "FNAS = crying + sleep + moro + tremors + increased_muscle_tone + myoclonic_jerk + generalized_convulsions + excoriation + sweating + fever + frequent_yawning + mottling + nasal_stuffiness + sneezing + nasal_flaring + respiratory + excessive_sucking + poor_feeding + regurgitation + projectile_vomiting + stools; Maguire 2013 Table 1 modified Finnegan (exclusive cry/sleep/moro/tremors/fever/respiratory/stools; remaining items true/false); max 46; at_or_above_8 iff total >= 8 (Zimmermann-Baer / Maguire suspicion and pharmacologic-treatment threshold). Not Eat Sleep Console. Not Maguire 7-item short form. magent does not examine the infant. Not a morphine order.",
      "max_score": 46,
      "score": 0,
      "at_or_above_8": false
    },
    {
      "components": [
        {
          "value": "none",
          "factor": "crying",
          "points": 0,
          "present": false
        },
        {
          "value": "none",
          "factor": "sleep",
          "points": 0,
          "present": false
        },
        {
          "value": "none",
          "factor": "moro",
          "points": 0,
          "present": false
        },
        {
          "value": "none",
          "factor": "tremors",
          "points": 0,
          "present": false
        },
        {
          "factor": "increased_muscle_tone",
          "points": 0,
          "present": false
        },
        {
          "factor": "myoclonic_jerk",
          "points": 0,
          "present": false
        },
        {
          "factor": "generalized_convulsions",
          "points": 0,
          "present": false
        },
        {
          "factor": "excoriation",
          "points": 0,
          "present": false
        },
        {
          "factor": "sweating",
          "points": 0,
          "present": false
        },
        {
          "value": "none",
          "factor": "fever",
          "points": 0,
          "present": false
        },
        {
          "factor": "frequent_yawning",
          "points": 0,
          "present": false
        },
        {
          "factor": "mottling",
          "points": 0,
          "present": false
        },
        {
          "factor": "nasal_stuffiness",
          "points": 0,
          "present": false
        },
        {
          "factor": "sneezing",
          "points": 0,
          "present": false
        },
        {
          "factor": "nasal_flaring",
          "points": 0,
          "present": false
        },
        {
          "value": "none",
          "factor": "respiratory",
          "points": 0,
          "present": false
        },
        {
          "factor": "excessive_sucking",
          "points": 0,
          "present": false
        },
        {
          "factor": "poor_feeding",
          "points": 0,
          "present": false
        },
        {
          "factor": "regurgitation",
          "points": 0,
          "present": false
        },
        {
          "factor": "projectile_vomiting",
          "points": 0,
          "present": false
        },
        {
          "value": "none",
          "factor": "stools",
          "points": 0,
          "present": false
        }
      ],
      "disclaimer": "Not a medical device. Deterministic published-formula or published-code output for autonomous agents. A licensed clinician remains responsible for patient care and billing submissions.",
      "citation": {
        "authors": "Finnegan LP, Connaughton JF Jr, Kron RE, Emich JP",
        "id": "finnegan-1975",
        "pmid": "1163358",
        "source": "Addict Dis. 1975;2(1-2):141-158",
        "title": "Neonatal abstinence syndrome: assessment and management"
      },
      "formula": "finnegan",
      "formula_expression": "FNAS = crying + sleep + moro + tremors + increased_muscle_tone + myoclonic_jerk + generalized_convulsions + excoriation + sweating + fever + frequent_yawning + mottling + nasal_stuffiness + sneezing + nasal_flaring + respiratory + excessive_sucking + poor_feeding + regurgitation + projectile_vomiting + stools; Maguire 2013 Table 1 modified Finnegan (exclusive cry/sleep/moro/tremors/fever/respiratory/stools; remaining items true/false); max 46; at_or_above_8 iff total >= 8 (Zimmermann-Baer / Maguire suspicion and pharmacologic-treatment threshold). Not Eat Sleep Console. Not Maguire 7-item short form. magent does not examine the infant. Not a morphine order.",
      "max_score": 46,
      "score": 0,
      "at_or_above_8": false
    }
  ]
}
```

## Response fields

- `formula` (string): finnegan
- `formula_expression` (string): Exact expression used
- `score` (integer): Maguire 2013 Table 1 modified Finnegan sum of 21 caller-assigned items (0-46)
- `max_score` (integer): Always 46
- `at_or_above_8` (boolean): true iff score ≥ 8 (Zimmermann-Baer / Maguire suspicion and pharmacologic-treatment threshold). Not a morphine order. Not a mild/moderate/severe stage.
- `components` (array): Per-item caller-assigned points
- `citation` (object): Finnegan et al. Addict Dis 1975 citation
- `disclaimer` (string): Not-a-device notice

## Example JSON

Frozen fixture. Not a live lookup.

```json
{
  "components": [
    {
      "value": "none",
      "factor": "crying",
      "points": 0,
      "present": false
    },
    {
      "value": "none",
      "factor": "sleep",
      "points": 0,
      "present": false
    },
    {
      "value": "none",
      "factor": "moro",
      "points": 0,
      "present": false
    },
    {
      "value": "none",
      "factor": "tremors",
      "points": 0,
      "present": false
    },
    {
      "factor": "increased_muscle_tone",
      "points": 0,
      "present": false
    },
    {
      "factor": "myoclonic_jerk",
      "points": 0,
      "present": false
    },
    {
      "factor": "generalized_convulsions",
      "points": 0,
      "present": false
    },
    {
      "factor": "excoriation",
      "points": 0,
      "present": false
    },
    {
      "factor": "sweating",
      "points": 0,
      "present": false
    },
    {
      "value": "none",
      "factor": "fever",
      "points": 0,
      "present": false
    },
    {
      "factor": "frequent_yawning",
      "points": 0,
      "present": false
    },
    {
      "factor": "mottling",
      "points": 0,
      "present": false
    },
    {
      "factor": "nasal_stuffiness",
      "points": 0,
      "present": false
    },
    {
      "factor": "sneezing",
      "points": 0,
      "present": false
    },
    {
      "factor": "nasal_flaring",
      "points": 0,
      "present": false
    },
    {
      "value": "none",
      "factor": "respiratory",
      "points": 0,
      "present": false
    },
    {
      "factor": "excessive_sucking",
      "points": 0,
      "present": false
    },
    {
      "factor": "poor_feeding",
      "points": 0,
      "present": false
    },
    {
      "factor": "regurgitation",
      "points": 0,
      "present": false
    },
    {
      "factor": "projectile_vomiting",
      "points": 0,
      "present": false
    },
    {
      "value": "none",
      "factor": "stools",
      "points": 0,
      "present": false
    }
  ],
  "disclaimer": "Not a medical device. Deterministic published-formula or published-code output for autonomous agents. A licensed clinician remains responsible for patient care and billing submissions.",
  "citation": {
    "authors": "Finnegan LP, Connaughton JF Jr, Kron RE, Emich JP",
    "id": "finnegan-1975",
    "pmid": "1163358",
    "source": "Addict Dis. 1975;2(1-2):141-158",
    "title": "Neonatal abstinence syndrome: assessment and management"
  },
  "formula": "finnegan",
  "formula_expression": "FNAS = crying + sleep + moro + tremors + increased_muscle_tone + myoclonic_jerk + generalized_convulsions + excoriation + sweating + fever + frequent_yawning + mottling + nasal_stuffiness + sneezing + nasal_flaring + respiratory + excessive_sucking + poor_feeding + regurgitation + projectile_vomiting + stools; Maguire 2013 Table 1 modified Finnegan (exclusive cry/sleep/moro/tremors/fever/respiratory/stools; remaining items true/false); max 46; at_or_above_8 iff total >= 8 (Zimmermann-Baer / Maguire suspicion and pharmacologic-treatment threshold). Not Eat Sleep Console. Not Maguire 7-item short form. magent does not examine the infant. Not a morphine order.",
  "max_score": 46,
  "score": 0,
  "at_or_above_8": false
}
```

## Errors

- HTTP 400 `invalid_finnegan`: Finnegan inputs must match Maguire 2013 Table 1 modified FNAS exclusive bands and true/false items from that table. Returned before settlement; you are not charged.
- HTTP 400 `invalid_items`: POST body must be a JSON object with only an items array Returned before settlement; you are not charged.
- HTTP 400 `invalid_item_count`: items must be an array of 1 to 25 objects Returned before settlement; you are not charged.
- HTTP 400 `invalid_item`: each items entry must be a JSON object Returned before settlement; you are not charged.

Shared HTTP 402 and 503: https://magentlab.com/docs/payments

## Related tools

- [Eat, Sleep, Console](https://magentlab.com/docs/eat-sleep-console) — Apply the Grossman 2018 Eat, Sleep, Console functional assessment from caller-assigned eat, sleep, and console flags. magent does not examine the infant.
- [WAT-1](https://magentlab.com/docs/wat-1) — Sum the eleven Franck 2008 WAT-1 items (ten caller-assigned 0/1 signs and time_to_calm 0-2) and return the published 0-12 total plus wat1_ge_3 (true iff score ≥3 versus NRS ≥4).

## Payment

Unpaid requests return HTTP 402 even if query parameters or POST items are missing or invalid, so CDP and agents can index the path. After a PAYMENT-SIGNATURE, invalid params return HTTP 400 JSON before settlement. magent does not charge. Fix the params, then request a new 402 quote for that complete URL. Catalog misses (empty matches, found=false) are valid paid 200s.

- GET the tool with Accept: application/json (do not send Accept: text/html unless you want the human paywall).
- HTTP 402 means you have not paid. Decode the base64 PAYMENT-REQUIRED header. HTTP 503 is not a new quote.
- Sign accepts[0] (exact, EIP-3009) with validBefore = now + maxTimeoutSeconds (600 seconds), or accepts[1] (batch-settlement deposit/voucher) on product GET. Ping and POST {items} stay exact. Magent retries transient facilitator 429/5xx before answering.
- Retry the same URL with PAYMENT-SIGNATURE (base64 JSON of accepted and payload). Magent attaches canonical extensions.bazaar on CDP verify/settle; echoing 402 bazaar is optional.
- Success is HTTP 200 JSON plus PAYMENT-RESPONSE. exact settles before the tool. batch-settlement verifies (and deposit-settles) before the tool and commits the charge after HTTP 2xx. HTTP 503: retry the same PAYMENT-SIGNATURE. Mint a new exact nonce only after a new HTTP 402.

- offered `exact` on eip155:8453: Fixed-price USDC on Base. The buyer authorizes the advertised amount (EIP-3009). magent settles before the tool runs (paymentFlow upfront). extra.assetTransferMethod=eip3009 extra.paymentFlow=upfront.
- offered `batch-settlement` on eip155:8453: Payment-channel vouchers claimed later in batches. Exact stays accepts[0]. Same-path POST {items} is still exact. extra.assetTransferMethod=eip3009 extra.paymentFlow=authorization.

- not offered `upto`: Not offered. Usage-based: buyer authorizes a ceiling, seller settles the actual amount after work. Reserved for a future metered tool. Not for current calculators or code search.

Same-path POST {items} is still scheme exact: one EIP-3009 authorization for GET unit plus $0.002 per extra item. That is not x402 batch-settlement (payment channels / vouchers).

Shared HTTP 402 and 503 table: https://magentlab.com/docs/payments

Stdio MCP (one process per host): https://magentlab.com/docs/mcp

## Guarantees

- HTTP 402 is unpaid, including a missing query. After PAYMENT-SIGNATURE, invalid parameters return HTTP 400 before settlement. You are not charged. HTTP 402 never includes the tool JSON.
- exact: settlement finishes before the tool (paymentFlow upfront). batch-settlement: verify/deposit before the tool; chargedCumulativeAmount commits after HTTP 2xx. Uncertain or failed settlement fails closed (HTTP 503). Retry the same PAYMENT-SIGNATURE.
- HTTP 402 is unpaid only. Do not sign a second authorization because of a 503.
- Execution is timeout-bounded and concurrency-capped.
- Calculator inputs are stored encrypted for allowlisted operators (Magent Console). They are not in public logs, SSH lookups, catalog, or rollups. Request logs store path without query.
