Mandate
A Mandate is a record of the permission that your customer gives you to debit their payment method.
Summary
Types
@type customer_acceptance() :: %{ optional(:accepted_at) => integer() | nil, optional(:offline) => map() | nil, optional(:online) => customer_acceptance_online() | nil, optional(:type) => String.t() | nil, optional(String.t()) => term() }
accepted_at- The time that the customer accepts the mandate. Format: Unix timestamp. Nullable.offlineonlinetype- The mandate includes the type of customer acceptance information, such as:onlineoroffline. Possible values:offline,online.
@type customer_acceptance_online() :: %{ optional(:ip_address) => String.t() | nil, optional(:user_agent) => String.t() | nil, optional(String.t()) => term() }
ip_address- The customer accepts the mandate from this IP address. Max length: 5000. Nullable.user_agent- The customer accepts the mandate using the user agent of the browser. Max length: 5000. Nullable.
@type payment_method_details() :: %{ optional(:acss_debit) => Stripe.Resources.AcssDebit.t() | nil, optional(:amazon_pay) => Stripe.Resources.AmazonPay.t() | nil, optional(:au_becs_debit) => payment_method_details_au_becs_debit() | nil, optional(:bacs_debit) => payment_method_details_bacs_debit() | nil, optional(:card) => map() | nil, optional(:cashapp) => Stripe.Resources.Cashapp.t() | nil, optional(:kakao_pay) => Stripe.Resources.KakaoPay.t() | nil, optional(:klarna) => map() | nil, optional(:kr_card) => Stripe.Resources.KrCard.t() | nil, optional(:link) => map() | nil, optional(:naver_pay) => map() | nil, optional(:nz_bank_account) => Stripe.Resources.NzBankAccount.t() | nil, optional(:paypal) => payment_method_details_paypal() | nil, optional(:payto) => Stripe.Resources.Payto.t() | nil, optional(:revolut_pay) => Stripe.Resources.RevolutPay.t() | nil, optional(:sepa_debit) => Stripe.Resources.SepaDebit.t() | nil, optional(:type) => String.t() | nil, optional(:us_bank_account) => Stripe.Resources.UsBankAccount.t() | nil, optional(String.t()) => term() }
acss_debitamazon_payau_becs_debitbacs_debitcardcashappkakao_payklarnakr_cardlinknaver_paynz_bank_accountpaypalpaytorevolut_paysepa_debittype- This mandate corresponds with a specific payment method type. Thepayment_method_detailsincludes an additional hash with the same name and contains mandate information that's specific to that payment method. Max length: 5000.us_bank_account
@type payment_method_details_au_becs_debit() :: %{ optional(:url) => String.t() | nil, optional(String.t()) => term() }
url- The URL of the mandate. This URL generally contains sensitive information about the customer and should be shared with them exclusively. Max length: 5000.
@type payment_method_details_bacs_debit() :: %{ optional(:network_status) => String.t() | nil, optional(:reference) => String.t() | nil, optional(:revocation_reason) => String.t() | nil, optional(:url) => String.t() | nil, optional(String.t()) => term() }
network_status- The status of the mandate on the Bacs network. Can be one ofpending,revoked,refused, oraccepted. Possible values:accepted,pending,refused,revoked.reference- The unique reference identifying the mandate on the Bacs network. Max length: 5000.revocation_reason- When the mandate is revoked on the Bacs network this field displays the reason for the revocation. Possible values:account_closed,bank_account_restricted,bank_ownership_changed,could_not_process,debit_not_authorized. Nullable.url- The URL that will contain the mandate that the customer has signed. Max length: 5000.
@type payment_method_details_paypal() :: %{ optional(:billing_agreement_id) => String.t() | nil, optional(:payer_id) => String.t() | nil, optional(String.t()) => term() }
billing_agreement_id- The PayPal Billing Agreement ID (BAID). This is an ID generated by PayPal which represents the mandate between the merchant and the customer. Max length: 5000. Nullable.payer_id- PayPal account PayerID. This identifier uniquely identifies the PayPal customer. Max length: 5000. Nullable.
@type single_use() :: %{ optional(:amount) => integer() | nil, optional(:currency) => String.t() | nil, optional(String.t()) => term() }
amount- The amount of the payment on a single use mandate.currency- The currency of the payment on a single use mandate. Format: ISO 4217 currency code.
@type t() :: %Stripe.Resources.Mandate{ customer_acceptance: customer_acceptance(), id: String.t(), livemode: boolean(), multi_use: map() | nil, object: String.t(), on_behalf_of: String.t() | nil, payment_method: String.t() | Stripe.Resources.PaymentMethod.t(), payment_method_details: payment_method_details(), single_use: single_use() | nil, status: String.t(), type: String.t() }
customer_acceptance- Expandable.id- Unique identifier for the object. Max length: 5000.livemode- Has the valuetrueif the object exists in live mode or the valuefalseif the object exists in test mode.multi_use- Expandable.object- String representing the object's type. Objects of the same type share the same value. Possible values:mandate.on_behalf_of- The account (if any) that the mandate is intended for. Max length: 5000.payment_method- ID of the payment method associated with this mandate. Expandable.payment_method_details- Expandable.single_use- Expandable.status- The mandate status indicates whether or not you can use it to initiate a payment. Possible values:active,inactive,pending.type- The type of the mandate. Possible values:multi_use,single_use.