{
  "project": "Alder Supply / Stripe customer preparation",
  "batch": "AS-104",
  "generated_at": "2026-09-18T02:32:28.723Z",
  "review_status": "Review complete",
  "reviewed_at": "2026-09-18T02:32:28.663Z",
  "context": "Original Young Copy project. Fictional supplier and sample records. No Stripe requests made. This is a review handoff, not an executable import or production approval.",
  "sources": [
    {
      "title": "Create a customer",
      "url": "https://docs.stripe.com/api/customers/create"
    },
    {
      "title": "Create an invoice",
      "url": "https://docs.stripe.com/api/invoices/create"
    },
    {
      "title": "Metadata",
      "url": "https://docs.stripe.com/api/metadata"
    }
  ],
  "sources_checked": "2026-09-17",
  "supplier_rules": [
    "Account identifier, company name, and billing email are required by this scenario; name and email are optional in Stripe Customer creation.",
    "NET 15, NET 30, NET 45 and NET 60 are the supplier’s supported periods. Other terms require a recorded decision.",
    "On-hold accounts require a recorded decision. An invoice hold here is an implementation instruction, not a Stripe restriction."
  ],
  "customer_drafts": [
    {
      "source_account_id": "AS-10482",
      "target": "POST /v1/customers",
      "fields": {
        "name": "Northline Hardware",
        "email": "accounts@northline.example",
        "metadata": {
          "legacy_account_id": "AS-10482"
        }
      }
    },
    {
      "source_account_id": "AS-10483",
      "target": "POST /v1/customers",
      "fields": {
        "name": "Linden Industrial",
        "email": "billing@linden.example",
        "metadata": {
          "legacy_account_id": "AS-10483"
        }
      }
    },
    {
      "source_account_id": "AS-10484",
      "target": "POST /v1/customers",
      "fields": {
        "name": "Cedar Workshop",
        "email": "accounts@cedar.example",
        "metadata": {
          "legacy_account_id": "AS-10484"
        }
      }
    },
    {
      "source_account_id": "AS-10485",
      "target": "POST /v1/customers",
      "fields": {
        "name": "Harbor Maintenance",
        "email": "billing@harbor.example",
        "metadata": {
          "legacy_account_id": "AS-10485"
        }
      }
    },
    {
      "source_account_id": "AS-10486",
      "target": "POST /v1/customers",
      "fields": {
        "name": "Juniper Supply",
        "email": "accounts@juniper.example",
        "metadata": {
          "legacy_account_id": "AS-10486"
        }
      }
    },
    {
      "source_account_id": "AS-10487",
      "target": "POST /v1/customers",
      "fields": {
        "name": "Mason Fabrication",
        "email": "billing@mason.example",
        "metadata": {
          "legacy_account_id": "AS-10487"
        }
      }
    }
  ],
  "invoice_plans": [
    {
      "source_account_id": "AS-10482",
      "state": "For implementation review",
      "instruction": "Use the customer ID returned by Customer creation when planning the invoice. Verify remaining invoice requirements separately.",
      "future_invoice_parameters": {
        "collection_method": "send_invoice",
        "days_until_due": 30
      },
      "note": "Invoice instructions only. No invoice, customer ID, line items, or charges have been created."
    },
    {
      "source_account_id": "AS-10483",
      "state": "For implementation review",
      "instruction": "Use the customer ID returned by Customer creation when planning the invoice. Verify remaining invoice requirements separately.",
      "future_invoice_parameters": {
        "collection_method": "send_invoice",
        "days_until_due": 30
      },
      "note": "Invoice instructions only. No invoice, customer ID, line items, or charges have been created."
    },
    {
      "source_account_id": "AS-10484",
      "state": "On hold",
      "instruction": "Keep invoice preparation on hold until a separate business release decision. This file does not configure a Stripe restriction.",
      "future_invoice_parameters": {
        "collection_method": "send_invoice",
        "days_until_due": 30
      },
      "note": "Invoice instructions only. No invoice, customer ID, line items, or charges have been created."
    },
    {
      "source_account_id": "AS-10485",
      "state": "For implementation review",
      "instruction": "Use the customer ID returned by Customer creation when planning the invoice. Verify remaining invoice requirements separately.",
      "future_invoice_parameters": {
        "collection_method": "send_invoice",
        "days_until_due": 45
      },
      "note": "Invoice instructions only. No invoice, customer ID, line items, or charges have been created."
    },
    {
      "source_account_id": "AS-10486",
      "state": "For implementation review",
      "instruction": "Use the customer ID returned by Customer creation when planning the invoice. Verify remaining invoice requirements separately.",
      "future_invoice_parameters": {
        "collection_method": "send_invoice",
        "days_until_due": 45
      },
      "note": "Invoice instructions only. No invoice, customer ID, line items, or charges have been created."
    },
    {
      "source_account_id": "AS-10487",
      "state": "For implementation review",
      "instruction": "Use the customer ID returned by Customer creation when planning the invoice. Verify remaining invoice requirements separately.",
      "future_invoice_parameters": {
        "collection_method": "send_invoice",
        "days_until_due": 15
      },
      "note": "Invoice instructions only. No invoice, customer ID, line items, or charges have been created."
    }
  ],
  "deferred_records": [],
  "open_issues": [],
  "decisions": {
    "AS-10484": {
      "hold": {
        "choice": "prepare_hold",
        "reviewer": "Morgan Ellis · billing reviewer",
        "reason": "Scenario decision: the hold applies to new invoicing. Customer details can be prepared; invoice preparation requires a separate release decision.",
        "recorded_at": "2026-09-18T02:32:27.425Z",
        "context": "Scenario decision; not verified business approval"
      }
    },
    "AS-10485": {
      "terms": {
        "choice": "NET 45",
        "reviewer": "Morgan Ellis · billing reviewer",
        "reason": "Scenario decision: the supplier agrees to NET 45 for this account. This replaces the source term; it is not an automatic conversion of NET EOM.",
        "recorded_at": "2026-09-18T02:32:28.544Z",
        "context": "Scenario decision; not verified business approval"
      }
    }
  },
  "corrections": [
    {
      "record_id": "AS-10483",
      "field": "billing_email",
      "original": "billing@linden",
      "replacement": "billing@linden.example",
      "note": "Scenario correction: the sample billing contact confirms billing@linden.example as the intended recipient.",
      "recorded_at": "2026-09-18T02:32:27.059Z"
    }
  ],
  "original_source_records": [
    {
      "id": "AS-10482",
      "company": "Northline Hardware",
      "email": "accounts@northline.example",
      "terms": "NET 30",
      "status": "Active"
    },
    {
      "id": "AS-10483",
      "company": "Linden Industrial",
      "email": "billing@linden",
      "terms": "NET 30",
      "status": "Active"
    },
    {
      "id": "AS-10484",
      "company": "Cedar Workshop",
      "email": "accounts@cedar.example",
      "terms": "NET 30",
      "status": "On hold"
    },
    {
      "id": "AS-10485",
      "company": "Harbor Maintenance",
      "email": "billing@harbor.example",
      "terms": "NET EOM",
      "status": "Active"
    },
    {
      "id": "AS-10486",
      "company": "Juniper Supply",
      "email": "accounts@juniper.example",
      "terms": "NET 45",
      "status": "Active"
    },
    {
      "id": "AS-10487",
      "company": "Mason Fabrication",
      "email": "billing@mason.example",
      "terms": "NET 15",
      "status": "Active"
    }
  ],
  "reviewed_source_records": [
    {
      "id": "AS-10482",
      "company": "Northline Hardware",
      "email": "accounts@northline.example",
      "terms": "NET 30",
      "status": "Active"
    },
    {
      "id": "AS-10483",
      "company": "Linden Industrial",
      "email": "billing@linden.example",
      "terms": "NET 30",
      "status": "Active"
    },
    {
      "id": "AS-10484",
      "company": "Cedar Workshop",
      "email": "accounts@cedar.example",
      "terms": "NET 30",
      "status": "On hold"
    },
    {
      "id": "AS-10485",
      "company": "Harbor Maintenance",
      "email": "billing@harbor.example",
      "terms": "NET EOM",
      "status": "Active"
    },
    {
      "id": "AS-10486",
      "company": "Juniper Supply",
      "email": "accounts@juniper.example",
      "terms": "NET 45",
      "status": "Active"
    },
    {
      "id": "AS-10487",
      "company": "Mason Fabrication",
      "email": "billing@mason.example",
      "terms": "NET 15",
      "status": "Active"
    }
  ],
  "implementation_checklist": [
    "Confirm source definitions and real business approval.",
    "Pin the API version and verify all destination requirements.",
    "Test in a Stripe sandbox before any production import.",
    "Plan idempotency, duplicate detection, failures, and reconciliation.",
    "Do not treat metadata or this review status as a billing control."
  ]
}