MAGENT

Neonatal · LIVE

Modified Finnegan NAS score

Finnegan

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).

LIVE $0.005 USDC GET /api/calc/finnegan

Markdown: /docs/finnegan.md · Canonical: https://magentlab.com/docs/finnegan

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

Title
Neonatal abstinence syndrome: assessment and management
Authors
Finnegan LP, Connaughton JF Jr, Kron RE, Emich JP
Source
Addict Dis. 1975;2(1-2):141-158
DOI
none

Worked example

All exclusive bands none and all flags false

Given: crying=noneexcessive_sucking=falseexcoriation=falsefever=nonefrequent_yawning=falsegeneralized_convulsions=falseincreased_muscle_tone=falsemoro=nonemottling=falsemyoclonic_jerk=falsenasal_flaring=falsenasal_stuffiness=falsepoor_feeding=falseprojectile_vomiting=falseregurgitation=falserespiratory=nonesleep=nonesneezing=falsestools=nonesweating=falsetremors=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_pitchedexcessive_sucking=falseexcoriation=falsefever=nonefrequent_yawning=falsegeneralized_convulsions=falseincreased_muscle_tone=falsemoro=nonemottling=falsemyoclonic_jerk=falsenasal_flaring=falsenasal_stuffiness=falsepoor_feeding=falseprojectile_vomiting=falseregurgitation=falserespiratory=nonesleep=nonesneezing=falsestools=nonesweating=falsetremors=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_pitchedexcessive_sucking=falseexcoriation=falsefever=nonefrequent_yawning=falsegeneralized_convulsions=falseincreased_muscle_tone=falsemoro=hyperactivemottling=falsemyoclonic_jerk=falsenasal_flaring=falsenasal_stuffiness=falsepoor_feeding=falseprojectile_vomiting=falseregurgitation=falserespiratory=nonesleep=lt_1hsneezing=falsestools=nonesweating=falsetremors=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

Try

Opens the live endpoint. Unpaid browser requests show the paywall; agents should send Accept: application/json.

/api/calc/finnegan?crying=none&sleep=none&moro=none&tremors=none&increased_muscle_tone=false&myoclonic_jerk=false&generalized_convulsions=false&excoriation=false&sweating=false&fever=none&frequent_yawning=false&mottling=false&nasal_stuffiness=false&sneezing=false&nasal_flaring=false&respiratory=none&excessive_sucking=false&poor_feeding=false&regurgitation=false&projectile_vomiting=false&stools=none

Full URL: https://api.magentlab.com/api/calc/finnegan?crying=none&sleep=none&moro=none&tremors=none&increased_muscle_tone=false&myoclonic_jerk=false&generalized_convulsions=false&excoriation=false&sweating=false&fever=none&frequent_yawning=false&mottling=false&nasal_stuffiness=false&sneezing=false&nasal_flaring=false&respiratory=none&excessive_sucking=false&poor_feeding=false&regurgitation=false&projectile_vomiting=false&stools=none

Call

Expect HTTP 402 until you retry with PAYMENT-SIGNATURE. Incomplete query params return HTTP 400 before any quote or charge.

curl -i -H "Accept: application/json" "https://api.magentlab.com/api/calc/finnegan?crying=none&sleep=none&moro=none&tremors=none&increased_muscle_tone=false&myoclonic_jerk=false&generalized_convulsions=false&excoriation=false&sweating=false&fever=none&frequent_yawning=false&mottling=false&nasal_stuffiness=false&sneezing=false&nasal_flaring=false&respiratory=none&excessive_sucking=false&poor_feeding=false&regurgitation=false&projectile_vomiting=false&stools=none"

Parameters

Name Type Required Description
crying string required · none, excessive_high_pitched, continuous_high_pitched 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 · none, lt_3h, lt_2h, lt_1h 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 · none, hyperactive, markedly_hyperactive 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 · none, mild_disturbed, moderate_severe_disturbed, mild_undisturbed, moderate_severe_undisturbed 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 · none, lt_101f, gt_101f 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 · none, gt_60, gt_60_retractions 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 · none, loose, watery 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.

POST /api/calc/finnegan Max 25 unit_amount + extra_item_amount * (n - 1) extra $0.002 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 (fixture)

{
  "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"
    }
  ]
}

Open bulk paywall →

Opens a two-item fixture on the API host. Unpaid browsers get the same MetaMask paywall as GET; Pay retries POST with those items.

Example 200 (fixture)

{
  "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

Field Type Description
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

Machine form of the same example. Frozen fixture. Not a live lookup.

{
  "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
}

Client errors (HTTP 400)

Invalid params return 400 without charge. Shared HTTP 402 and 503 meanings: Payments.

HTTP Code When
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.
400 invalid_items POST body must be a JSON object with only an items array Returned before settlement; you are not charged.
400 invalid_item_count items must be an array of 1 to 25 objects Returned before settlement; you are not charged.
400 invalid_item each items entry must be a JSON object Returned before settlement; you are not charged.

Related tools

  • 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 — 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. Unpaid valid requests return HTTP 402 with a base64 PAYMENT-REQUIRED header. HTTP 503 is not a new quote: retry the same PAYMENT-SIGNATURE. Full handshake and shared payment errors: Payments. Stdio MCP: /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.