{
  "name": "Corporate card statement expense capture",
  "description": "Extract cardholder name, account last four, period start from card statement. Start with an editable schema, inspect JSON and review exceptions before your system handoff.",
  "prompt_additions": "Extract only information explicitly present in this document. Do not infer missing values, verify authenticity, make business decisions, or compare other documents. Preserve identifiers as strings. Return amounts as numbers and dates as YYYY-MM-DD. Review and set required fields for your process before using this schema in production.",
  "fields": [
    {
      "key": "cardholder_name",
      "label": "Cardholder Name",
      "type": "string",
      "required": false,
      "description": "Cardholder name exactly as printed in this card statement. Preserve identifiers and qualifiers; do not look up or infer missing information."
    },
    {
      "key": "account_last_four",
      "label": "Account Last Four",
      "type": "string",
      "required": false,
      "description": "Only the visible last four account digits. Preserve leading zeros; do not reconstruct hidden digits."
    },
    {
      "key": "period_start",
      "label": "Period Start",
      "type": "date",
      "required": false,
      "description": "Opening date printed for the reporting period, separate from the issue date."
    },
    {
      "key": "period_end",
      "label": "Period End",
      "type": "date",
      "required": false,
      "description": "Closing date printed for the reporting period, separate from payment or posting dates."
    },
    {
      "key": "transaction_rows",
      "label": "Transaction Rows",
      "type": "array",
      "required": false,
      "description": "Every visible transaction rows row in this card statement. Preserve separate rows, labels and qualifiers; do not merge entries or reconstruct missing ones.",
      "items": {
        "type": "object",
        "fields": [
          {
            "key": "transaction_date",
            "label": "Transaction Date",
            "type": "date",
            "required": false,
            "description": "Transaction date explicitly printed in this card statement. Keep it distinct from other dates; leave it empty if no calendar date is stated."
          },
          {
            "key": "posting_date",
            "label": "Posting Date",
            "type": "date",
            "required": false,
            "description": "Posting date explicitly printed in this card statement. Keep it distinct from other dates; leave it empty if no calendar date is stated."
          },
          {
            "key": "merchant_name",
            "label": "Merchant Name",
            "type": "string",
            "required": false,
            "description": "Merchant name exactly as printed in this card statement. Preserve identifiers and qualifiers; do not look up or infer missing information."
          },
          {
            "key": "amount",
            "label": "Amount",
            "type": "currency",
            "required": false,
            "description": "Amount explicitly labeled in this card statement. Preserve its sign and stated currency; do not calculate a missing amount."
          },
          {
            "key": "direction",
            "label": "Direction",
            "type": "string",
            "required": false,
            "description": "Direction exactly as printed in this card statement. Preserve identifiers and qualifiers; do not look up or infer missing information."
          },
          {
            "key": "currency_code",
            "label": "Currency Code",
            "type": "string",
            "required": false,
            "description": "Currency explicitly stated in this source; leave empty when it is not stated."
          }
        ]
      }
    },
    {
      "key": "statement_balance",
      "label": "Statement Balance",
      "type": "currency",
      "required": false,
      "description": "Statement balance explicitly labeled in this card statement. Preserve its sign and stated currency; do not calculate a missing amount."
    }
  ]
}