{"id":"reconcile-ledger","title":"Exact Ledger Reconciler","description":"Explains which charges, refunds and fees make up a Stripe, PayPal or bank payout, with an exact solver instead of a model: subset-sum over integer minor units (meet-in-the-middle, DP, branch-and-bound) across candidate fee schedules (percentage + fixed, tiers, caps), withholding, FX rates and rounding conventions (half-up, half-even, truncate; per line or on the total). Paste a Stripe balance or payout-reconciliation CSV, a PayPal activity CSV or structured rows. verdict.action is RECONCILED, MATCHED_WITH_UNSETTLED_ITEMS (every payout explained, some items belong to a later payout), AMBIGUOUS (with the exact count), UNMATCHED_SETTLEMENTS (missing items, phantom payouts and the closest near-miss) or SEARCH_INCOMPLETE. Reports which rounding convention reconciles and a hash-chained audit trail. Structured input, CSV and plain one-amount-per-line statements make zero LLM calls; other free text is normalized by a fast-tier LLM whose rows must quote the source verbatim. Not accounting or tax advice.","roi":"Finance teams and agents stop trusting a model's arithmetic: every matched payout, residual and ambiguity count is recomputable from a hash-chained audit trail.","audience":"business","channels":["x402","mcp","rapidapi","apify"],"endpoint":{"method":"POST","url":"https://agents.writerslogic.com/api/v1/reconcile-ledger","path":"/api/v1/reconcile-ledger","contentType":"application/json"},"price":{"amount":"1.50","currency":"USDC","network":"base","perCall":true,"failedCallsCharged":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","maxItems":2000,"description":"Ledger lines. Amounts are signed (refunds and disputes negative) strings in major units, e.g. \"1234.56\".","items":{"type":"object","additionalProperties":false,"required":["id","amount","currency"],"properties":{"id":{"type":"string","minLength":1,"maxLength":64},"amount":{"anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"number"}],"description":"Decimal string; locale formats (1.234,56, (12.00)) are accepted and parsed exactly."},"currency":{"type":"string","minLength":3,"maxLength":3,"description":"ISO 4217 currency code."},"date":{"type":"string","minLength":10,"maxLength":40,"description":"ISO date YYYY-MM-DD (a time suffix is ignored)."},"kind":{"type":"string","enum":["charge","invoice","refund","dispute","fee","adjustment","other"]},"group":{"type":"string","minLength":1,"maxLength":64,"description":"Lines sharing a group (an invoice) are settled together or not at all."}}}},"settlements":{"type":"array","maxItems":200,"description":"Payouts or bank settlement totals to explain.","items":{"type":"object","additionalProperties":false,"required":["id","amount","currency"],"properties":{"id":{"type":"string","minLength":1,"maxLength":64},"amount":{"anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"number"}]},"currency":{"type":"string","minLength":3,"maxLength":3,"description":"ISO 4217 currency code."},"date":{"type":"string","minLength":10,"maxLength":40,"description":"ISO date YYYY-MM-DD (a time suffix is ignored)."},"itemIds":{"type":"array","maxItems":2000,"items":{"type":"string","minLength":1,"maxLength":64},"description":"Restrict the candidate items for this settlement."},"feeScheduleIds":{"type":"array","maxItems":20,"items":{"type":"string","minLength":1,"maxLength":64},"description":"Restrict the fee schedules tried for this settlement (e.g. its processor)."},"withholdingIds":{"type":"array","maxItems":20,"items":{"type":"string","minLength":1,"maxLength":64},"description":"Require one of these withholdings; omit to also try none."}}}},"feeSchedules":{"type":"array","maxItems":20,"description":"Candidate fee schedules; the solver reports which one reconciles each settlement. Omit for no fees.","items":{"type":"object","additionalProperties":false,"required":["id","rules"],"properties":{"id":{"type":"string","minLength":1,"maxLength":64},"description":{"type":"string","maxLength":300},"source":{"type":"string","maxLength":500},"rules":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"description":"First rule whose kinds (default charge, invoice) and currencies match an item sets its fee: percent (or tiers) of |amount| plus a fixed amount, clamped to min and max, signed like the item.","properties":{"kinds":{"type":"array","maxItems":7,"items":{"type":"string","enum":["charge","invoice","refund","dispute","fee","adjustment","other"]}},"currencies":{"type":"array","maxItems":40,"items":{"type":"string","minLength":3,"maxLength":3,"description":"ISO 4217 currency code."}},"percent":{"anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"number"}],"description":"Percentage, e.g. 2.9 for 2.9%."},"fixed":{"anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"number"}],"description":"Fixed fee per item in the item's currency."},"fixedByCurrency":{"type":"array","maxItems":40,"items":{"type":"object","additionalProperties":false,"required":["currency","amount"],"properties":{"currency":{"type":"string","minLength":3,"maxLength":3,"description":"ISO 4217 currency code."},"amount":{"anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"number"}]}}},"description":"Per-currency fixed fee; overrides fixed."},"tiers":{"type":"array","maxItems":20,"description":"Percentage bands on |amount|; amounts above the last upTo use the last band's percent.","items":{"type":"object","additionalProperties":false,"required":["percent"],"properties":{"upTo":{"anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"number"}]},"percent":{"anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"number"}]}}}},"tierMode":{"type":"string","enum":["marginal","threshold"],"description":"marginal: each band charged at its own percent; threshold: the band containing the amount applies to all of it."},"min":{"anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"number"}]},"max":{"anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"number"}]}}}},"fixedPerSettlement":{"anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"number"}],"description":"Fixed fee deducted once per settlement, in the settlement currency (rounded to its minor unit)."},"fxMarkupPercent":{"anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"number"}],"description":"Spread applied to FX conversions: effective rate = rate x (1 - markup/100)."}}}},"withholdings":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["id","ratePercent"],"properties":{"id":{"type":"string","minLength":1,"maxLength":64},"ratePercent":{"anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"number"}]},"base":{"type":"string","enum":["gross","net_of_fee"]},"kinds":{"type":"array","maxItems":7,"items":{"type":"string","enum":["charge","invoice","refund","dispute","fee","adjustment","other"]}}}}},"fxRates":{"type":"array","maxItems":500,"description":"Direct rates only (1 from = rate to). The latest rate dated on or before the reference date applies; an undated rate is the fallback.","items":{"type":"object","additionalProperties":false,"required":["from","to","rate"],"properties":{"from":{"type":"string","minLength":3,"maxLength":3,"description":"ISO 4217 currency code."},"to":{"type":"string","minLength":3,"maxLength":3,"description":"ISO 4217 currency code."},"rate":{"anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"number"}]},"date":{"type":"string","minLength":10,"maxLength":40,"description":"ISO date YYYY-MM-DD (a time suffix is ignored)."}}}},"text":{"type":"object","additionalProperties":false,"description":"Messy source text for collections not given structurally. A CSV with a header (Stripe balance or payout-reconciliation export, PayPal activity export, bank statement) is parsed by code with no model, and so are headerless lines with one amount each (date, id, amount, currency, and wording that names one kind, such as Payment or Refund); anything else goes to a fast-tier LLM that must quote every row verbatim.","properties":{"items":{"type":"string","maxLength":30000},"settlements":{"type":"string","maxLength":30000},"terms":{"type":"string","maxLength":30000,"description":"Fee schedules, tax/withholding rates and FX rates in prose or tables."},"amountColumn":{"type":"string","maxLength":100,"description":"CSV header to read amounts from, e.g. \"net\" for a Stripe or PayPal export whose payout is the sum of net amounts. Default: the first amount-like column (Amount, then Gross)."}}},"defaultCurrency":{"type":"string","minLength":3,"maxLength":3,"description":"Currency for text rows that state none."},"crossCheck":{"type":"boolean","description":"Run two independent LLM translations and keep only rows both produced (default true)."},"conventions":{"type":"object","additionalProperties":false,"description":"Restrict the conventions searched (default: all rounding modes x both scopes x both FX date policies).","properties":{"rounding":{"type":"array","minItems":1,"maxItems":3,"items":{"type":"string","enum":["half_up","half_even","truncate"]}},"scope":{"type":"array","minItems":1,"maxItems":2,"items":{"type":"string","enum":["line","total_net"]}},"fxPolicy":{"type":"array","minItems":1,"maxItems":2,"items":{"type":"string","enum":["item_date","settlement_date"]}}}},"toleranceMinor":{"type":"integer","minimum":0,"maximum":1000000,"description":"Accepted |residual| per settlement in minor units (default 0 = exact)."},"nearMissToleranceMinor":{"type":"integer","minimum":1,"maximum":1000000000,"description":"Largest residual searched when reporting the closest near-miss for an unmatched settlement."},"maxLagDays":{"type":"integer","minimum":0,"maximum":3650,"description":"An item may settle at most this many days after its date."},"limits":{"type":"object","additionalProperties":false,"properties":{"maxSolutions":{"type":"integer","minimum":2,"maximum":100},"maxNodes":{"type":"integer","minimum":1000,"maximum":20000000},"maxMillis":{"type":"integer","minimum":100,"maximum":25000}}}}},"resultSchema":{"type":"object","properties":{"verdict":{"type":"object","description":"Machine-readable call, computed in code. Leads the answer; detail follows in the other fields.","properties":{"action":{"type":"string","enum":["RECONCILED","MATCHED_WITH_UNSETTLED_ITEMS","AMBIGUOUS","UNMATCHED_SETTLEMENTS","SEARCH_INCOMPLETE","INSUFFICIENT_INPUT"]},"reason_code":{"type":"string","description":"Stable code for why this action was returned."},"confidence":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"0-1; null when no judgment was made."},"confidence_label":{"type":"string","enum":["low","medium","high"]},"edge_bps":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Expected edge in bps of cost; null when not priced."},"edge_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Expected edge in USD (cover-claim: cover-asset units); null when not priced."},"size_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Suggested stake in USD; null when not sized."},"headline":{"type":"string"},"drivers":{"type":"array","items":{"type":"string"}},"next_step":{"type":"string"},"partial":{"type":"boolean","description":"True when part of the analysis could not run; see missing."},"missing":{"type":"array","items":{"type":"string"}}}},"disclaimer":{"type":"string","description":"Not financial advice."},"status":{"type":"string","enum":["UNIQUE","AMBIGUOUS","NO_EXACT_MATCH","BUDGET_EXCEEDED","INSUFFICIENT_INPUT"],"description":"UNIQUE only when the search completed and exactly one assignment exists."},"deterministic":{"type":"boolean","description":"True when no LLM touched the verdict path (structured, CSV or line-grammar input)."},"reconciled":{"type":"boolean","description":"Every settlement matched and no item left unsettled."},"summary":{"type":"object"},"solution":{"anyOf":[{"type":"object"},{"type":"null"}],"description":"The recommended assignment (lowest date lag among the reported solutions); null when no settlement matched."},"alternatives":{"type":"array","items":{"type":"object"}},"ambiguity":{"type":"object"},"conventions":{"type":"object","description":"Which rounding mode / scope / FX policy reproduces the settlements."},"discrepancies":{"type":"object","description":"Unsettled items, phantom settlements, residuals, closest near-misses."},"budget":{"type":"object"},"audit":{"type":"object","description":"Solver, budgets, statistics, canonical input hash and the hash-chained step list."},"translation":{"type":"object"},"notes":{"type":"array","items":{"type":"string"}}}},"outputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"verdict":{"type":"object","description":"Machine-readable call, computed in code. Leads the answer; detail follows in the other fields.","properties":{"action":{"type":"string","enum":["RECONCILED","MATCHED_WITH_UNSETTLED_ITEMS","AMBIGUOUS","UNMATCHED_SETTLEMENTS","SEARCH_INCOMPLETE","INSUFFICIENT_INPUT"]},"reason_code":{"type":"string","description":"Stable code for why this action was returned."},"confidence":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"0-1; null when no judgment was made."},"confidence_label":{"type":"string","enum":["low","medium","high"]},"edge_bps":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Expected edge in bps of cost; null when not priced."},"edge_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Expected edge in USD (cover-claim: cover-asset units); null when not priced."},"size_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Suggested stake in USD; null when not sized."},"headline":{"type":"string"},"drivers":{"type":"array","items":{"type":"string"}},"next_step":{"type":"string"},"partial":{"type":"boolean","description":"True when part of the analysis could not run; see missing."},"missing":{"type":"array","items":{"type":"string"}}}},"disclaimer":{"type":"string","description":"Not financial advice."},"status":{"type":"string","enum":["UNIQUE","AMBIGUOUS","NO_EXACT_MATCH","BUDGET_EXCEEDED","INSUFFICIENT_INPUT"],"description":"UNIQUE only when the search completed and exactly one assignment exists."},"deterministic":{"type":"boolean","description":"True when no LLM touched the verdict path (structured, CSV or line-grammar input)."},"reconciled":{"type":"boolean","description":"Every settlement matched and no item left unsettled."},"summary":{"type":"object"},"solution":{"anyOf":[{"type":"object"},{"type":"null"}],"description":"The recommended assignment (lowest date lag among the reported solutions); null when no settlement matched."},"alternatives":{"type":"array","items":{"type":"object"}},"ambiguity":{"type":"object"},"conventions":{"type":"object","description":"Which rounding mode / scope / FX policy reproduces the settlements."},"discrepancies":{"type":"object","description":"Unsettled items, phantom settlements, residuals, closest near-misses."},"budget":{"type":"object"},"audit":{"type":"object","description":"Solver, budgets, statistics, canonical input hash and the hash-chained step list."},"translation":{"type":"object"},"notes":{"type":"array","items":{"type":"string"}}}},"_provenance":{"type":"object","description":"C2PA-aligned manifest and W3C VC 2.0 (eddsa-jcs-2022) issued by the hub DID; verify at POST /api/v1/verify-provenance"}},"required":["data","_provenance"]},"example":{"text":{"items":"id,Type,Amount,Currency,Created (UTC)\nch_1,charge,100.00,usd,2026-10-01 09:12:44\nch_2,charge,250.00,usd,2026-10-01 14:03:10\nch_3,charge,40.00,usd,2026-10-02 08:45:31\nre_1,refund,25.00,usd,2026-10-02 16:20:05","settlements":"id,Amount,Currency,Arrival Date\npo_1,314.25,usd,2026-10-05"},"feeSchedules":[{"id":"stripe_us_card","rules":[{"percent":"2.9","fixed":"0.30"}]}]},"openapiOperation":{"operationId":"reconcile_ledger","summary":"Exact Ledger Reconciler","description":"Explains which charges, refunds and fees make up a Stripe, PayPal or bank payout, with an exact solver instead of a model: subset-sum over integer minor units (meet-in-the-middle, DP, branch-and-bound) across candidate fee schedules (percentage + fixed, tiers, caps), withholding, FX rates and rounding conventions (half-up, half-even, truncate; per line or on the total). Paste a Stripe balance or payout-reconciliation CSV, a PayPal activity CSV or structured rows. verdict.action is RECONCILED, MATCHED_WITH_UNSETTLED_ITEMS (every payout explained, some items belong to a later payout), AMBIGUOUS (with the exact count), UNMATCHED_SETTLEMENTS (missing items, phantom payouts and the closest near-miss) or SEARCH_INCOMPLETE. Reports which rounding convention reconciles and a hash-chained audit trail. Structured input, CSV and plain one-amount-per-line statements make zero LLM calls; other free text is normalized by a fast-tier LLM whose rows must quote the source verbatim. Not accounting or tax advice.\n\nPrice: 1.50 USDC on Base (x402).","x-x402-price-usdc":"1.50","x-x402-amount":"1500000","x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"1.50"}},"x-audience":"business","x-sample-url":"https://agents.writerslogic.com/api/v1/samples/reconcile-ledger","security":[{"x402":[]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","maxItems":2000,"description":"Ledger lines. Amounts are signed (refunds and disputes negative) strings in major units, e.g. \"1234.56\".","items":{"type":"object","additionalProperties":false,"required":["id","amount","currency"],"properties":{"id":{"type":"string","minLength":1,"maxLength":64},"amount":{"anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"number"}],"description":"Decimal string; locale formats (1.234,56, (12.00)) are accepted and parsed exactly."},"currency":{"type":"string","minLength":3,"maxLength":3,"description":"ISO 4217 currency code."},"date":{"type":"string","minLength":10,"maxLength":40,"description":"ISO date YYYY-MM-DD (a time suffix is ignored)."},"kind":{"type":"string","enum":["charge","invoice","refund","dispute","fee","adjustment","other"]},"group":{"type":"string","minLength":1,"maxLength":64,"description":"Lines sharing a group (an invoice) are settled together or not at all."}}}},"settlements":{"type":"array","maxItems":200,"description":"Payouts or bank settlement totals to explain.","items":{"type":"object","additionalProperties":false,"required":["id","amount","currency"],"properties":{"id":{"type":"string","minLength":1,"maxLength":64},"amount":{"anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"number"}]},"currency":{"type":"string","minLength":3,"maxLength":3,"description":"ISO 4217 currency code."},"date":{"type":"string","minLength":10,"maxLength":40,"description":"ISO date YYYY-MM-DD (a time suffix is ignored)."},"itemIds":{"type":"array","maxItems":2000,"items":{"type":"string","minLength":1,"maxLength":64},"description":"Restrict the candidate items for this settlement."},"feeScheduleIds":{"type":"array","maxItems":20,"items":{"type":"string","minLength":1,"maxLength":64},"description":"Restrict the fee schedules tried for this settlement (e.g. its processor)."},"withholdingIds":{"type":"array","maxItems":20,"items":{"type":"string","minLength":1,"maxLength":64},"description":"Require one of these withholdings; omit to also try none."}}}},"feeSchedules":{"type":"array","maxItems":20,"description":"Candidate fee schedules; the solver reports which one reconciles each settlement. Omit for no fees.","items":{"type":"object","additionalProperties":false,"required":["id","rules"],"properties":{"id":{"type":"string","minLength":1,"maxLength":64},"description":{"type":"string","maxLength":300},"source":{"type":"string","maxLength":500},"rules":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"description":"First rule whose kinds (default charge, invoice) and currencies match an item sets its fee: percent (or tiers) of |amount| plus a fixed amount, clamped to min and max, signed like the item.","properties":{"kinds":{"type":"array","maxItems":7,"items":{"type":"string","enum":["charge","invoice","refund","dispute","fee","adjustment","other"]}},"currencies":{"type":"array","maxItems":40,"items":{"type":"string","minLength":3,"maxLength":3,"description":"ISO 4217 currency code."}},"percent":{"anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"number"}],"description":"Percentage, e.g. 2.9 for 2.9%."},"fixed":{"anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"number"}],"description":"Fixed fee per item in the item's currency."},"fixedByCurrency":{"type":"array","maxItems":40,"items":{"type":"object","additionalProperties":false,"required":["currency","amount"],"properties":{"currency":{"type":"string","minLength":3,"maxLength":3,"description":"ISO 4217 currency code."},"amount":{"anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"number"}]}}},"description":"Per-currency fixed fee; overrides fixed."},"tiers":{"type":"array","maxItems":20,"description":"Percentage bands on |amount|; amounts above the last upTo use the last band's percent.","items":{"type":"object","additionalProperties":false,"required":["percent"],"properties":{"upTo":{"anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"number"}]},"percent":{"anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"number"}]}}}},"tierMode":{"type":"string","enum":["marginal","threshold"],"description":"marginal: each band charged at its own percent; threshold: the band containing the amount applies to all of it."},"min":{"anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"number"}]},"max":{"anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"number"}]}}}},"fixedPerSettlement":{"anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"number"}],"description":"Fixed fee deducted once per settlement, in the settlement currency (rounded to its minor unit)."},"fxMarkupPercent":{"anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"number"}],"description":"Spread applied to FX conversions: effective rate = rate x (1 - markup/100)."}}}},"withholdings":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["id","ratePercent"],"properties":{"id":{"type":"string","minLength":1,"maxLength":64},"ratePercent":{"anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"number"}]},"base":{"type":"string","enum":["gross","net_of_fee"]},"kinds":{"type":"array","maxItems":7,"items":{"type":"string","enum":["charge","invoice","refund","dispute","fee","adjustment","other"]}}}}},"fxRates":{"type":"array","maxItems":500,"description":"Direct rates only (1 from = rate to). The latest rate dated on or before the reference date applies; an undated rate is the fallback.","items":{"type":"object","additionalProperties":false,"required":["from","to","rate"],"properties":{"from":{"type":"string","minLength":3,"maxLength":3,"description":"ISO 4217 currency code."},"to":{"type":"string","minLength":3,"maxLength":3,"description":"ISO 4217 currency code."},"rate":{"anyOf":[{"type":"string","minLength":1,"maxLength":40},{"type":"number"}]},"date":{"type":"string","minLength":10,"maxLength":40,"description":"ISO date YYYY-MM-DD (a time suffix is ignored)."}}}},"text":{"type":"object","additionalProperties":false,"description":"Messy source text for collections not given structurally. A CSV with a header (Stripe balance or payout-reconciliation export, PayPal activity export, bank statement) is parsed by code with no model, and so are headerless lines with one amount each (date, id, amount, currency, and wording that names one kind, such as Payment or Refund); anything else goes to a fast-tier LLM that must quote every row verbatim.","properties":{"items":{"type":"string","maxLength":30000},"settlements":{"type":"string","maxLength":30000},"terms":{"type":"string","maxLength":30000,"description":"Fee schedules, tax/withholding rates and FX rates in prose or tables."},"amountColumn":{"type":"string","maxLength":100,"description":"CSV header to read amounts from, e.g. \"net\" for a Stripe or PayPal export whose payout is the sum of net amounts. Default: the first amount-like column (Amount, then Gross)."}}},"defaultCurrency":{"type":"string","minLength":3,"maxLength":3,"description":"Currency for text rows that state none."},"crossCheck":{"type":"boolean","description":"Run two independent LLM translations and keep only rows both produced (default true)."},"conventions":{"type":"object","additionalProperties":false,"description":"Restrict the conventions searched (default: all rounding modes x both scopes x both FX date policies).","properties":{"rounding":{"type":"array","minItems":1,"maxItems":3,"items":{"type":"string","enum":["half_up","half_even","truncate"]}},"scope":{"type":"array","minItems":1,"maxItems":2,"items":{"type":"string","enum":["line","total_net"]}},"fxPolicy":{"type":"array","minItems":1,"maxItems":2,"items":{"type":"string","enum":["item_date","settlement_date"]}}}},"toleranceMinor":{"type":"integer","minimum":0,"maximum":1000000,"description":"Accepted |residual| per settlement in minor units (default 0 = exact)."},"nearMissToleranceMinor":{"type":"integer","minimum":1,"maximum":1000000000,"description":"Largest residual searched when reporting the closest near-miss for an unmatched settlement."},"maxLagDays":{"type":"integer","minimum":0,"maximum":3650,"description":"An item may settle at most this many days after its date."},"limits":{"type":"object","additionalProperties":false,"properties":{"maxSolutions":{"type":"integer","minimum":2,"maximum":100},"maxNodes":{"type":"integer","minimum":1000,"maximum":20000000},"maxMillis":{"type":"integer","minimum":100,"maximum":25000}}}}},"example":{"text":{"items":"id,Type,Amount,Currency,Created (UTC)\nch_1,charge,100.00,usd,2026-10-01 09:12:44\nch_2,charge,250.00,usd,2026-10-01 14:03:10\nch_3,charge,40.00,usd,2026-10-02 08:45:31\nre_1,refund,25.00,usd,2026-10-02 16:20:05","settlements":"id,Amount,Currency,Arrival Date\npo_1,314.25,usd,2026-10-05"},"feeSchedules":[{"id":"stripe_us_card","rules":[{"percent":"2.9","fixed":"0.30"}]}]}}}},"responses":{"200":{"description":"Paid result with provenance","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"verdict":{"type":"object","description":"Machine-readable call, computed in code. Leads the answer; detail follows in the other fields.","properties":{"action":{"type":"string","enum":["RECONCILED","MATCHED_WITH_UNSETTLED_ITEMS","AMBIGUOUS","UNMATCHED_SETTLEMENTS","SEARCH_INCOMPLETE","INSUFFICIENT_INPUT"]},"reason_code":{"type":"string","description":"Stable code for why this action was returned."},"confidence":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"0-1; null when no judgment was made."},"confidence_label":{"type":"string","enum":["low","medium","high"]},"edge_bps":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Expected edge in bps of cost; null when not priced."},"edge_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Expected edge in USD (cover-claim: cover-asset units); null when not priced."},"size_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Suggested stake in USD; null when not sized."},"headline":{"type":"string"},"drivers":{"type":"array","items":{"type":"string"}},"next_step":{"type":"string"},"partial":{"type":"boolean","description":"True when part of the analysis could not run; see missing."},"missing":{"type":"array","items":{"type":"string"}}}},"disclaimer":{"type":"string","description":"Not financial advice."},"status":{"type":"string","enum":["UNIQUE","AMBIGUOUS","NO_EXACT_MATCH","BUDGET_EXCEEDED","INSUFFICIENT_INPUT"],"description":"UNIQUE only when the search completed and exactly one assignment exists."},"deterministic":{"type":"boolean","description":"True when no LLM touched the verdict path (structured, CSV or line-grammar input)."},"reconciled":{"type":"boolean","description":"Every settlement matched and no item left unsettled."},"summary":{"type":"object"},"solution":{"anyOf":[{"type":"object"},{"type":"null"}],"description":"The recommended assignment (lowest date lag among the reported solutions); null when no settlement matched."},"alternatives":{"type":"array","items":{"type":"object"}},"ambiguity":{"type":"object"},"conventions":{"type":"object","description":"Which rounding mode / scope / FX policy reproduces the settlements."},"discrepancies":{"type":"object","description":"Unsettled items, phantom settlements, residuals, closest near-misses."},"budget":{"type":"object"},"audit":{"type":"object","description":"Solver, budgets, statistics, canonical input hash and the hash-chained step list."},"translation":{"type":"object"},"notes":{"type":"array","items":{"type":"string"}}}},"_provenance":{"type":"object","description":"C2PA-aligned manifest and W3C VC 2.0 (eddsa-jcs-2022) issued by the hub DID; verify at POST /api/v1/verify-provenance"}},"required":["data","_provenance"]}}}},"400":{"description":"Invalid request (no payment consumed)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"401":{"description":"Invalid X-API-KEY","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"402":{"description":"Payment required or invalid","content":{"application/json":{"schema":{"type":"object","description":"x402 v2 PaymentRequired (also base64 in the PAYMENT-REQUIRED header)","properties":{"x402Version":{"type":"integer"},"error":{"type":"string"},"code":{"type":"string"},"resource":{"type":"object"},"accepts":{"type":"array","items":{"type":"object"}},"extensions":{"type":"object"}}}}}},"502":{"description":"Upstream failure; the payment is released or not settled","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}}},"links":{"docs":"https://agents.writerslogic.com/docs/reconcile-ledger/","docsJson":"https://agents.writerslogic.com/docs/reconcile-ledger.json","sample":"https://agents.writerslogic.com/api/v1/samples/reconcile-ledger","openapi":"https://agents.writerslogic.com/openapi.json","catalog":"https://agents.writerslogic.com/api/v1/catalog","verifyProvenance":"https://agents.writerslogic.com/api/v1/verify-provenance","index":"https://agents.writerslogic.com/docs/index.json"}}