Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.yorlet.com/llms.txt

Use this file to discover all available pages before exploring further.

Payment Method Sessions allow you to securely collect and save payment methods from your customers. Unlike Payment Sessions which collect a one-time payment, Payment Method Sessions save the payment method for future use with subscriptions, invoices, and transactions.

Create a customer

Before creating a Payment Method Session, you need a customer to attach the payment method to. You can either use an existing customer or create a new one using the Customers API.
Create a customer
curl https://api.yorlet.com/v1/customers \
  -H "Authorization: Bearer {{API_KEY}}" \
  -H "Content-Type: application/json" \
  -d '{
        "email": "[email protected]"
      }'
If the request completed successfully, the response contains the customer object.
Customer object
{
  "id": "cus_lrhplff1u4ZhIPSU",
  "object": "customer",
  "email": "[email protected]"
  // ... other fields on the Customer object
}

Create a Payment Method Session

To create a Payment Method Session, you need to specify the customer and payment_method_types. You can optionally include a return_url to redirect customers after the payment method is collected.
Create a Payment Method Session
curl https://api.yorlet.com/v1/payment_method_sessions \
  -H "Authorization: Bearer {{API_KEY}}" \
  -H "Content-Type: application/json" \
  -d '{
        "customer": "{{CUSTOMER_ID}}",
        "payment_method_types": ["card", "bacs_debit"],
        "return_url": "https://example.com/success"
      }'
If the request completed successfully, the Payment Method Session object contains the url parameter.
Payment Method Session object
{
  "id": "pmsess_kfls092pPQalaj2",
  "object": "payment_method_session",
  "customer": "cus_lrhplff1u4ZhIPSU",
  "payment_method": null,
  "payment_method_types": ["card", "bacs_debit"],
  "return_url": "https://example.com/success",
  "url": "https://pay.yorlet.com/payment_methods/pmsess_kfls092pPQalaj2"
  // ... other fields on the Payment Method Session object
}

Supported payment method types

You can collect the following payment method types:
TypeDescription
cardCredit or debit card
bacs_debitBacs Direct Debit (UK)
sepa_debitSEPA Direct Debit (EU)
autogiroAutogiro (Sweden)
bank_transferBank transfer
direct_transferDirect transfer
gbp_credit_transferGBP credit transfer
pay_by_bankPay by Bank (Open Banking)
card_presentIn-person card payment

Share the Payment Method Session URL

After creating a Payment Method Session, share the url with your customer. They will be guided through a secure flow to enter their payment details. Once complete, they will be redirected to your return_url. You can also set send_email to true to automatically send the URL to the customer’s email address.
Send email to customer
curl https://api.yorlet.com/v1/payment_method_sessions \
  -H "Authorization: Bearer {{API_KEY}}" \
  -H "Content-Type: application/json" \
  -d '{
        "customer": "{{CUSTOMER_ID}}",
        "payment_method_types": ["card"],
        "send_email": true
      }'

Collect payment method for a subscription

You can associate a Payment Method Session with a subscription. Once the customer completes the session, the payment method will automatically be attached to the subscription.
Create a Payment Method Session for a subscription
curl https://api.yorlet.com/v1/payment_method_sessions \
  -H "Authorization: Bearer {{API_KEY}}" \
  -H "Content-Type: application/json" \
  -d '{
        "customer": "{{CUSTOMER_ID}}",
        "payment_method_types": ["bacs_debit"],
        "subscription": "{{SUBSCRIPTION_ID}}",
        "return_url": "https://example.com/success"
      }'

Retrieve a Payment Method Session

You can retrieve a Payment Method Session to check its status and see which payment method was created.
Retrieve a Payment Method Session
curl https://api.yorlet.com/v1/payment_method_sessions/{{PAYMENT_METHOD_SESSION_ID}} \
  -H "Authorization: Bearer {{API_KEY}}"
Once the customer completes the session, the payment_method field will contain the ID of the created payment method.
Completed Payment Method Session
{
  "id": "pmsess_kfls092pPQalaj2",
  "object": "payment_method_session",
  "customer": "cus_lrhplff1u4ZhIPSU",
  "payment_method": "pm_l34dl7phkOVU7wcI",
  "payment_method_types": ["card"],
  "status": "complete"
  // ... other fields on the Payment Method Session object
}