{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/stripe/main/json-schema/stripe-post-sources-source-request-schema.json",
  "title": "PostSourcesSourceRequest",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/stripe-sources-api-openapi.yml#/components/schemas/PostSourcesSourceRequest",
  "type": "object",
  "properties": {
    "amount": {
      "description": "Amount associated with the source.",
      "type": "integer"
    },
    "expand": {
      "description": "Specifies which fields in the response should be expanded.",
      "items": {
        "maxLength": 5000,
        "type": "string"
      },
      "type": "array"
    },
    "mandate": {
      "description": "Information about a mandate possibility attached to a source object (generally for bank debits) as well as its acceptance status.",
      "properties": {
        "acceptance": {
          "properties": {
            "date": {
              "format": "unix-time",
              "type": "integer"
            },
            "ip": {
              "type": "string"
            },
            "offline": {
              "properties": {
                "contact_email": {
                  "type": "string"
                }
              },
              "required": [
                "contact_email"
              ],
              "title": "mandate_offline_acceptance_params",
              "type": "object"
            },
            "online": {
              "properties": {
                "date": {
                  "format": "unix-time",
                  "type": "integer"
                },
                "ip": {
                  "type": "string"
                },
                "user_agent": {
                  "maxLength": 5000,
                  "type": "string"
                }
              },
              "title": "mandate_online_acceptance_params",
              "type": "object"
            },
            "status": {
              "enum": [
                "accepted",
                "pending",
                "refused",
                "revoked"
              ],
              "maxLength": 5000,
              "type": "string"
            },
            "type": {
              "enum": [
                "offline",
                "online"
              ],
              "maxLength": 5000,
              "type": "string"
            },
            "user_agent": {
              "maxLength": 5000,
              "type": "string"
            }
          },
          "required": [
            "status"
          ],
          "title": "mandate_acceptance_params",
          "type": "object"
        },
        "amount": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "enum": [
                ""
              ],
              "type": "string"
            }
          ]
        },
        "currency": {
          "type": "string"
        },
        "interval": {
          "enum": [
            "one_time",
            "scheduled",
            "variable"
          ],
          "maxLength": 5000,
          "type": "string"
        },
        "notification_method": {
          "enum": [
            "deprecated_none",
            "email",
            "manual",
            "none",
            "stripe_email"
          ],
          "maxLength": 5000,
          "type": "string"
        }
      },
      "title": "mandate_params",
      "type": "object"
    },
    "metadata": {
      "anyOf": [
        {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        {
          "enum": [
            ""
          ],
          "type": "string"
        }
      ],
      "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`."
    },
    "owner": {
      "description": "Information about the owner of the payment instrument that may be used or required by particular source types.",
      "properties": {
        "address": {
          "properties": {
            "city": {
              "maxLength": 5000,
              "type": "string"
            },
            "country": {
              "maxLength": 5000,
              "type": "string"
            },
            "line1": {
              "maxLength": 5000,
              "type": "string"
            },
            "line2": {
              "maxLength": 5000,
              "type": "string"
            },
            "postal_code": {
              "maxLength": 5000,
              "type": "string"
            },
            "state": {
              "maxLength": 5000,
              "type": "string"
            }
          },
          "title": "source_address",
          "type": "object"
        },
        "email": {
          "type": "string"
        },
        "name": {
          "maxLength": 5000,
          "type": "string"
        },
        "phone": {
          "maxLength": 5000,
          "type": "string"
        }
      },
      "title": "owner",
      "type": "object"
    },
    "source_order": {
      "description": "Information about the items and shipping associated with the source. Required for transactional credit (for example Klarna) sources before you can charge it.",
      "properties": {
        "items": {
          "items": {
            "properties": {
              "amount": {
                "type": "integer"
              },
              "currency": {
                "type": "string"
              },
              "description": {
                "maxLength": 1000,
                "type": "string"
              },
              "parent": {
                "maxLength": 5000,
                "type": "string"
              },
              "quantity": {
                "type": "integer"
              },
              "type": {
                "enum": [
                  "discount",
                  "shipping",
                  "sku",
                  "tax"
                ],
                "maxLength": 5000,
                "type": "string"
              }
            },
            "title": "order_item_specs",
            "type": "object"
          },
          "type": "array"
        },
        "shipping": {
          "properties": {
            "address": {
              "properties": {
                "city": {
                  "maxLength": 5000,
                  "type": "string"
                },
                "country": {
                  "maxLength": 5000,
                  "type": "string"
                },
                "line1": {
                  "maxLength": 5000,
                  "type": "string"
                },
                "line2": {
                  "maxLength": 5000,
                  "type": "string"
                },
                "postal_code": {
                  "maxLength": 5000,
                  "type": "string"
                },
                "state": {
                  "maxLength": 5000,
                  "type": "string"
                }
              },
              "required": [
                "line1"
              ],
              "title": "address",
              "type": "object"
            },
            "carrier": {
              "maxLength": 5000,
              "type": "string"
            },
            "name": {
              "maxLength": 5000,
              "type": "string"
            },
            "phone": {
              "maxLength": 5000,
              "type": "string"
            },
            "tracking_number": {
              "maxLength": 5000,
              "type": "string"
            }
          },
          "required": [
            "address"
          ],
          "title": "order_shipping",
          "type": "object"
        }
      },
      "title": "order_params",
      "type": "object"
    }
  }
}