{"actions":{"bootstrapAndRun":{"effect":"installs rote if missing, inspects, prepares, and asks before running","href":"https://play.modiqo.ai/install?play=jaylabs/settlement-delay@0.3.41","method":"GET","rel":"https://rote.dev/rels/bootstrap-and-run","requiresConsent":true,"responseMediaType":"text/x-shellscript"},"inspect":{"command":"rote play inspect https://play.modiqo.ai/jaylabs/settlement-delay@0.3.41","effect":"read-only"},"installCliOnly":{"effect":"installs the rote CLI, nothing else","href":"https://play.modiqo.ai/install","method":"GET","rel":"https://rote.dev/rels/install-cli","requiresConsent":true,"responseMediaType":"text/x-shellscript"},"run":{"command":"rote play run https://play.modiqo.ai/jaylabs/settlement-delay@0.3.41","effect":"executes the play locally after consent","headless":{"approvalAssertion":"--yes","approvalRequiredBeforeInvocation":true,"commandTemplate":"rote play run https://play.modiqo.ai/jaylabs/settlement-delay@0.3.41 <name=value...> --yes","stdinPolicy":"never pipe input to automate the interactive Ready selector"},"requiresConsent":true}},"description":"Your Stripe payout landed days late and nobody can say why. It gives every waiting day one reason from weekends, Indian second and fourth Saturday closures, bank holidays, dispute holds, reserves, batch cutoffs and posting lag, each naming the evidence behind it, with ids where they exist, and reporting a day nothing accounts for as unexplained. It reads Stripe, Plaid rather than Mercury, Xero and bundled calendars rather than a Google Calendar over plain HTTPS, declaring no adapter so a stranger can run it cold. Your accounts are only ever read from; it writes one JSON file per leg, the attribution and a markdown report.","distribution":{"digest":"sha256:518346b1c46b6caee5952b7edb1344e4644649bd77391c6a110c7b090a1c4785","mediaType":"application/vnd.modiqo.rote-flow","size":178034,"verifiedBy":"rote verifies the downloaded archive against this digest before it runs"},"effects":{"credentialsProvidedBy":"runner","credentialsRemainLocal":true,"declaredWrites":[],"publisherReceivesCredentials":false},"id":"https://play.modiqo.ai/jaylabs/settlement-delay@0.3.41","inputPolicy":{"optionalWithDefault":"show_default_and_accept_override","optionalWithoutDefault":"omit_unless_supplied","required":"ask","secrets":"collect_locally_outside_conversation"},"links":{"docs":"https://rote.dev","page":"https://play.modiqo.ai/jaylabs/settlement-delay@0.3.41","protocol":"https://play.modiqo.ai/.well-known/rote","self":"https://play.modiqo.ai/jaylabs/settlement-delay@0.3.41.json"},"name":"settlement-delay","owner":{"kind":"org","slug":"jaylabs"},"parameters":[{"default":"demo","description":"Set demo for the bundled sample data, with no network call and no credential. Set live to read your own systems, from STRIPE_BEARER_TOKEN (or STRIPE_API_KEY, or STRIPE_SECRET_KEY) plus the Plaid and Xero variables in resources/LIVE-KEYS.md.","example":"demo","input":{"allowCustom":false,"choices":[{"label":"demo","value":"demo"},{"label":"live","value":"live"}],"label":"Mode"},"name":"mode","required":false,"type":"string","validValues":["demo","live"]},{"default":"IN","description":"Which bank-holiday calendar and weekend rule to reason with. IN uses India's six national bank holidays, a regional tier, and the RBI second and fourth Saturday closure rule. US uses the Federal Reserve holidays, GB England and Wales.","example":"IN","input":{"allowCustom":false,"choices":[{"label":"IN","value":"IN"},{"label":"US","value":"US"},{"label":"GB","value":"GB"}],"label":"Country"},"name":"country","required":false,"type":"string","validValues":["IN","US","GB"]},{"default":"30","description":"How far back to explain, in days. Clamped to 1..180, and a value that is not a plain integer silently uses the default. It filters live reads only, because the bundled sample data carries its own fixed window of the real 2026 calendar.","example":"30","input":{"allowCustom":true,"choices":[],"label":"Lookback days"},"name":"lookback_days","required":false,"type":"string"},{"default":"3","description":"How many days after the expected arrival date a credit may land before this play calls the payout late. Clamped to 0..30. It sets what counts as late, not what counts as matched. A credit is still paired with its payout for two weeks past it.","example":"3","input":{"allowCustom":true,"choices":[],"label":"Settle window days"},"name":"settle_window_days","required":false,"type":"string"},{"default":"0","description":"How far a bank credit may differ from a payout, in the currency's minor unit, and still count as the same money. Clamped to 0..100000. The default of 0 demands an exact match, which is what a correct payout looks like.","example":"0","input":{"allowCustom":true,"choices":[],"label":"Amount tolerance cents"},"name":"amount_tolerance_cents","required":false,"type":"string"},{"description":"A public ICS calendar feed of extra closures, for example your bank's published holiday calendar. Read only in live mode, parsed with the standard library, and only its all-day events are used. Each closure it adds is labelled with its own source.","example":"https://example.com/bank-holidays.ics","input":{"allowCustom":true,"choices":[],"label":"Calendar ics url"},"name":"calendar_ics_url","required":false,"type":"string"},{"description":"Path in the run workspace to your own holiday list as JSON, either an object with a holidays array or a bare array, each entry carrying a date and a name. Use it for the state and regional closures no national calendar can cover.","example":"my-holidays.json","input":{"allowCustom":true,"choices":[],"label":"Holidays file"},"name":"holidays_file","required":false,"type":"string"},{"default":"findings","description":"Choose findings to list only the payouts that were late or that never matched. Choose all to add a line for every payout in the window, including the ones that behaved, which is what you want when someone asks you to prove the clean ones were clean.","example":"findings","input":{"allowCustom":false,"choices":[{"label":"findings","value":"findings"},{"label":"all","value":"all"}],"label":"Report"},"name":"report","required":false,"type":"string","validValues":["findings","all"]},{"description":"Where the demo data lives. Empty means the sample set bundled inside this play. Anything else is a directory in the run workspace, or an absolute path, holding either this play's own sample files or raw API captures one file per endpoint.","example":"my-samples","input":{"allowCustom":true,"choices":[],"label":"Samples dir"},"name":"samples_dir","required":false,"type":"string"},{"default":"false","description":"Which legs must really be live, or nothing runs. Set false to let any leg fall back to labelled sample data, true to demand stripe, bank and ledger, or a list such as stripe,bank. Naming a leg with no credential stops the run before anything is read.","example":"stripe,bank","input":{"allowCustom":true,"choices":[],"label":"Strict live"},"name":"strict_live","required":false,"type":"string"}],"preparation":[{"action":{"command":"rote play inspect https://play.modiqo.ai/jaylabs/settlement-delay@0.3.41 --json","effect":"read-only"},"step":1,"type":"inspect_local_readiness"},{"references":["/parameters"],"step":2,"type":"collect_parameters"},{"references":["/parameters","/requirements","/effects"],"step":3,"type":"review"},{"consentBoundary":"the user approves the exact play and parameter values","references":["/parameters","/requirements","/effects"],"step":4,"type":"obtain_run_consent"},{"action":{"command":"rote play run https://play.modiqo.ai/jaylabs/settlement-delay@0.3.41","headlessCommandTemplate":"rote play run https://play.modiqo.ai/jaylabs/settlement-delay@0.3.41 <name=value...> --yes"},"preservesAcquisitionBoundaries":["adapter_selection","oauth_dcr","google_discovery","static_token_setup","runtime_security_checks"],"requiresConsent":true,"step":5,"type":"run"}],"producedBy":{"roteVersion":"0.79.0"},"publishedAt":"2026-09-04T14:34:43.144803+00:00","reference":"jaylabs/settlement-delay@0.3.41","requirements":{"adapters":[],"browser":{"dependencies":[],"runtime":false,"signIn":false},"localTools":["python3","rote"],"roteCli":{"minimumVersion":"0.62.0"},"sessions":false},"resolution":"pinned","schema":"rote.play.v1","stats":{"downloads":1,"installs":0},"steps":{"count":7,"names":["attribute","load_calendar","preflight","pull_bank","pull_ledger","pull_stripe","report"]},"title":"settlement-delay","type":"play","version":"0.3.41","visibility":"public"}