{
  "name": "razorpay_processor",
  "display_name": "Razorpay Settlement Export",
  "source_role": "processor",
  "file_format": "csv",
  "fields": [
    {
      "canonical": "transaction_id",
      "aliases": ["payment_id", "id", "entity_id"],
      "normalize": [{ "step": "trim" }]
    },
    {
      "canonical": "amount",
      "aliases": ["amount", "credit", "settled_amount"],
      "dtype": "number",
      "normalize": [{ "step": "strip_chars", "chars": [",", "₹"] }, { "step": "to_number" }]
    },
    {
      "canonical": "rrn",
      "aliases": ["acquirer_rrn", "rrn", "bank_reference"],
      "required": false,
      "normalize": [{ "step": "trim" }, { "step": "lpad", "length": 12, "fill": "0" }]
    },
    {
      "canonical": "reference",
      "aliases": ["order_id", "notes.reference"],
      "required": false,
      "normalize": [{ "step": "trim" }]
    },
    {
      "canonical": "payment_mode",
      "aliases": ["method"],
      "required": false,
      "normalize": [{ "step": "trim" }, { "step": "upper" }]
    },
    {
      "canonical": "email",
      "aliases": ["email", "contact_email"],
      "required": false,
      "normalize": [{ "step": "trim" }, { "step": "lower" }]
    },
    {
      "canonical": "txn_date",
      "aliases": ["created_at", "settled_at", "date"],
      "required": false,
      "dtype": "date",
      "normalize": [{ "step": "date_parse", "formats": ["%Y-%m-%d %H:%M:%S", "%d/%m/%Y", "%Y-%m-%d"] }]
    }
  ]
}
