Stripe | Financial Infrastructure to Grow Your Revenue

Stripe | Financial Infrastructure to Grow Your Revenue

4466 articles

Sources


Sources Deprecated

Source objects allow you to accept a variety of payment methods. They represent a customer’s payment instrument, and can be used with the Stripe API just like a Card object: once chargeable, they can be charged, or can be attached to customers.

Stripe doesn’t recommend using the deprecated Sources API. We recommend that you adopt the PaymentMethods API. This newer API provides access to our latest features and payment method types.

Related guides: Sources API and Sources & Customers.

Was this section helpful? Yes No

Create a source

POST / v1 / sources

Update a source

POST / v1 / sources /:id

Retrieve a source

GET / v1 / sources /:id

Attach a source

POST / v1 / customers /:id / sources

Detach a source

DELETE / v1 / customers /:id / sources /:id

The Source object Deprecated

Attributes

  • id string Unique identifier for the object.
  • amount nullable integer A positive integer in the smallest currency unit (that is, 100 cents for $1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the total amount associated with the source. This is the amount for which the source will be chargeable once ready. Required for single_use sources.
  • currency nullable enum Three-letter ISO code for the currency associated with the source. This is the currency for which the source will be chargeable once ready. Required for single_use sources.
  • customer nullable string The ID of the customer to which this source is attached. This will not be present when the source has not been attached to a customer.
  • metadata nullable map Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  • owner nullable object Information about the owner of the payment instrument that may be used or required by particular source types.
  • redirect nullable object Information related to the redirect flow. Present if the source is authenticated by a redirect ( flow is redirect).
  • statement _ descriptor nullable string Extra information about a source. This will appear on your customer’s statement every time you charge the source.
  • status string The status of the source, one of canceled, chargeable, consumed, failed, or pending. Only chargeable sources can be used to create a charge.
  • type enum The type of the source. The type is a payment method, one of ach_credit_transfer, ach_debit, alipay, bancontact, card, card_present, eps, giropay, ideal, multibanco, klarna, p24, sepa_debit, sofort, three_d_secure, or wechat. An additional hash is included on the source with a name matching this value. It contains additional information specific to the payment method used. Possible enum values ach_credit_transfer ach_debit alipay bancontact card card_present eps giropay ideal klarna Show 6 more

More attributes

  • object string, value is "source"
  • allow _ redisplay nullable enum
  • client _ secret string
  • code _ verification nullable object
  • created timestamp
  • flow string
  • livemode boolean
  • receiver nullable object
  • source _ order nullable object
  • usage nullable string

The Source object

{ "id": "src_1N3lxdLkdIwHu7ixPHXy8UcI", "object": "source", "ach_credit_transfer": { "account_number": "test_eb829353ed79", "bank_name": "TEST BANK", "fingerprint": "kBQsBk9KtfCgjEYK", "refund_account_holder_name": null, "refund_account_holder_type": null, "refund_routing_number": null, "routing_number": "110000000", "swift_code": "TSTEZ122" }, "amount": null, "client_secret": "src_client_secret_ZaOIRUD8a9uGmQobLxGvqKSr", "created": 1683144457, "currency": "usd", "flow": "receiver", "livemode": false, "metadata": {}, "owner": { "address": null, "email": "jenny.rosen@example.com", "name": null, "phone": null, "verified_address": null, "verified_email": null, "verified_name": null, "verified_phone": null }, "receiver": { "address": "110000000-test_eb829353ed79", "amount_charged": 0, "amount_received": 0, "amount_returned": 0, "refund_attributes_method": "email", "refund_attributes_status": "missing" }, "statement_descriptor": null, "status": "pending", "type": "ach_credit_transfer", "usage": "reusable"}

Create a source

POST / v1 / sources

Creates a new source object.

Parameters

  • type string Required The type of the source to create. Required unless customer and original_source are specified (see the Cloning card Sources guide)
  • 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 amount may not be specified until funds land.
  • currency enum Three-letter ISO code for the currency associated with the source. This is the currency for which the source will be chargeable once ready.
  • metadata map Set of key-value pairs 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 object Information about the owner of the payment instrument that may be used or required by particular source types.
  • redirect object Parameters required for the redirect flow. Required if the source is authenticated by a redirect ( flow is redirect).
  • 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_descriptor of RunClub 5K race ticket. While many payment types will display this information, some may not display it at all.

More parameters

  • flow string
  • mandate object
  • receiver object
  • source _ order object
  • token string
  • usage string

Returns

Returns a newly created source.

Response

{ "id": "src_1N3lxdLkdIwHu7ixPHXy8UcI", "object": "source", "ach_credit_transfer": { "account_number": "test_eb829353ed79", "bank_name": "TEST BANK", "fingerprint": "kBQsBk9KtfCgjEYK", "refund_account_holder_name": null, "refund_account_holder_type": null, "refund_routing_number": null, "routing_number": "110000000", "swift_code": "TSTEZ122" }, "amount": null, "client_secret": "src_client_secret_ZaOIRUD8a9uGmQobLxGvqKSr", "created": 1683144457, "currency": "usd", "flow": "receiver", "livemode": false, "metadata": {}, "owner": { "address": null, "email": "jenny.rosen@example.com", "name": null, "phone": null, "verified_address": null, "verified_email": null, "verified_name": null, "verified_phone": null }, "receiver": { "address": "110000000-test_eb829353ed79", "amount_charged": 0, "amount_received": 0, "amount_returned": 0, "refund_attributes_method": "email", "refund_attributes_status": "missing" }, "statement_descriptor": null, "status": "pending", "type": "ach_credit_transfer", "usage": "reusable"}
Last verified 2026-09-24

Is this helpful?