Stripe · Schema
PostSourcesRequest
CommerceFinancial ServicesFintechPaymentsT1StripeAgentic CommercePoint-of-SalePayment Processing
Properties
| Name | Type | Description |
|---|---|---|
| amount | integer | Amount associated with the source. This is the amount for which the source will be chargeable once ready. Required for `single_use` sources. Not supported for `receiver` type sources, where charge amo |
| currency | string | Three-letter [ISO code for the currency](https://stripe.com/docs/currencies) associated with the source. This is the currency for which the source will be chargeable once ready. |
| customer | string | The `Customer` to whom the original source is attached to. Must be set when the original source is not a `Source` (e.g., `Card`). |
| expand | array | Specifies which fields in the response should be expanded. |
| flow | string | The authentication `flow` of the source to create. `flow` is one of `redirect`, `receiver`, `code_verification`, `none`. It is generally inferred unless a type supports multiple flows. |
| mandate | object | Information about a mandate possibility attached to a source object (generally for bank debits) as well as its acceptance status. |
| metadata | object | |
| original_source | string | The source to share. |
| owner | object | Information about the owner of the payment instrument that may be used or required by particular source types. |
| receiver | object | Optional parameters for the receiver flow. Can be set only if the source is a receiver (`flow` is `receiver`). |
| redirect | object | Parameters required for the redirect flow. Required if the source is authenticated by a redirect (`flow` is `redirect`). |
| source_order | object | Information about the items and shipping associated with the source. Required for transactional credit (for example Klarna) sources before you can charge it. |
| statement_descriptor | string | An arbitrary string to be displayed on your customer's statement. As an example, if your website is `RunClub` and the item you're charging for is a race ticket, you may want to specify a `statement_de |
| token | string | An optional token used to create the source. When passed, token properties will override source parameters. |
| type | string | The `type` of the source to create. Required unless `customer` and `original_source` are specified (see the [Cloning card Sources](https://stripe.com/docs/sources/connect#cloning-card-sources) guide) |
| usage | string |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/stripe/main/json-schema/stripe-post-sources-request-schema.json",
"title": "PostSourcesRequest",
"x-generated": "2026-10-12",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/stripe-sources-api-openapi.yml#/components/schemas/PostSourcesRequest",
"type": "object",
"properties": {
"amount": {
"description": "Amount associated with the source. This is the amount for which the source will be chargeable once ready. Required for `single_use` sources. Not supported for `receiver` type sources, where charge amount may not be specified until funds land.",
"type": "integer"
},
"currency": {
"description": "Three-letter [ISO code for the currency](https://stripe.com/docs/currencies) associated with the source. This is the currency for which the source will be chargeable once ready.",
"type": "string"
},
"customer": {
"description": "The `Customer` to whom the original source is attached to. Must be set when the original source is not a `Source` (e.g., `Card`).",
"maxLength": 500,
"type": "string"
},
"expand": {
"description": "Specifies which fields in the response should be expanded.",
"items": {
"maxLength": 5000,
"type": "string"
},
"type": "array"
},
"flow": {
"description": "The authentication `flow` of the source to create. `flow` is one of `redirect`, `receiver`, `code_verification`, `none`. It is generally inferred unless a type supports multiple flows.",
"enum": [
"code_verification",
"none",
"receiver",
"redirect"
],
"maxLength": 5000,
"type": "string"
},
"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": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"original_source": {
"description": "The source to share.",
"maxLength": 5000,
"type": "string"
},
"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"
},
"receiver": {
"description": "Optional parameters for the receiver flow. Can be set only if the source is a receiver (`flow` is `receiver`).",
"properties": {
"refund_attributes_method": {
"enum": [
"email",
"manual",
"none"
],
"maxLength": 5000,
"type": "string"
}
},
"title": "receiver_params",
"type": "object"
},
"redirect": {
"description": "Parameters required for the redirect flow. Required if the source is authenticated by a redirect (`flow` is `redirect`).",
"properties": {
"return_url": {
"type": "string"
}
},
"required": [
"return_url"
],
"title": "redirect_params",
"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": "shallow_order_specs",
"type": "object"
},
"statement_descriptor": {
"description": "An arbitrary string to be displayed on your customer's statement. As an example, if your website is `RunClub` and the item you're charging for is a race ticket, you may want to specify a `statement_descriptor` of `RunClub 5K race ticket.` While many payment types will display this information, some may not display it at all.",
"maxLength": 5000,
"type": "string"
},
"token": {
"description": "An optional token used to create the source. When passed, token properties will override source parameters.",
"maxLength": 5000,
"type": "string"
},
"type": {
"description": "The `type` of the source to create. Required unless `customer` and `original_source` are specified (see the [Cloning card Sources](https://stripe.com/docs/sources/connect#cloning-card-sources) guide)",
"maxLength": 5000,
"type": "string"
},
"usage": {
"enum": [
"reusable",
"single_use"
],
"maxLength": 5000,
"type": "string"
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/stripe-post-sources-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.