Mandates 

A Mandate is a record of the permission that your customer gives you to debit their payment method.

The Mandate object 

Attributes

  • idstring

    Unique identifier for the object.

  • customer_acceptanceobject

    Details about the customer’s acceptance of the mandate.

  • payment_methodstringExpandable

    ID of the payment method associated with this mandate.

  • payment_method_detailsobject

    Additional mandate information specific to the payment method type.

  • statusenum

    The mandate status indicates whether or not you can use it to initiate a payment.

    Possible enum values
    active

    The mandate can be used to initiate a payment.

    inactive

    The mandate was rejected, revoked, or previously used, and may not be used to initiate future payments.

    pending

    The mandate is newly created and is not yet active or inactive.

  • typeenum

    The type of the mandate.

    Possible enum values
    multi_use

    Represents permission given for multiple payments.

    single_use

    Represents a one-time permission given for a single payment.

More attributes

  • objectstring

  • livemodeboolean

  • multi_usenullable object

  • on_behalf_ofnullable stringConnect only

  • single_usenullable object

The Mandate object
{
"id": "mandate_1MvojA2eZvKYlo2CvqTABjZs",
"object": "mandate",
"customer_acceptance": {
"accepted_at": 123456789,
"online": {
"ip_address": "127.0.0.0",
"user_agent": "device"
},
"type": "online"
},
"livemode": false,
"multi_use": {},
"payment_method": "pm_123456789",
"payment_method_details": {
"sepa_debit": {
"reference": "123456789",
"url": ""
},
"type": "sepa_debit"
},
"status": "active",
"type": "multi_use"
}

Retrieve a Mandate 

Retrieves a Mandate object.

Parameters

No parameters.

Returns

Returns a Mandate object.

GET /v1/mandates/:id
curl https://api.stripe.com/v1/mandates/mandate_1MvojA2eZvKYlo2CvqTABjZs \
-u "sk_test_BQokikJ...2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:"
Response
{
"id": "mandate_1MvojA2eZvKYlo2CvqTABjZs",
"object": "mandate",
"customer_acceptance": {
"accepted_at": 123456789,
"online": {
"ip_address": "127.0.0.0",
"user_agent": "device"
},
"type": "online"
},
"livemode": false,
"multi_use": {},
"payment_method": "pm_123456789",
"payment_method_details": {
"sepa_debit": {
"reference": "123456789",
"url": ""
},
"type": "sepa_debit"
},
"status": "active",
"type": "multi_use"
}

Payment Intents 

A PaymentIntent guides you through the process of collecting a payment from your customer. We recommend that you create exactly one PaymentIntent for each order or customer session in your system. You can reference the PaymentIntent later to see the history of payment attempts for a particular session.

A PaymentIntent transitions through multiple statuses throughout its lifetime as it interfaces with Stripe.js to perform authentication flows and ultimately creates at most one successful charge.

Related guide: Payment Intents API

Setup Intents 

A SetupIntent guides you through the process of setting up and saving a customer’s payment credentials for future payments. For example, you can use a SetupIntent to set up and save your customer’s card without immediately collecting a payment. Later, you can use PaymentIntents to drive the payment flow.

Create a SetupIntent when you’re ready to collect your customer’s payment credentials. Don’t maintain long-lived, unconfirmed SetupIntents because they might not be valid. The SetupIntent transitions through multiple statuses as it guides you through the setup process.

Successful SetupIntents result in payment credentials that are optimized for future payments. For example, cardholders in certain regions might need to be run through Strong Customer Authentication during payment method collection to streamline later off-session payments. If you use the SetupIntent with a Customer, it automatically attaches the resulting payment method to that Customer after successful setup. We recommend using SetupIntents or setup_future_usage on PaymentIntents to save payment methods to prevent saving invalid or unoptimized payment methods.

By using SetupIntents, you can reduce friction for your customers, even as regulations change over time.

Related guide: Setup Intents API