WooshPay OpenAPI
Product DocumentAPI ReferenceJS SDK ReferenceSaaS Platform Integration
Product DocumentAPI ReferenceJS SDK ReferenceSaaS Platform Integration
Back to WooshPay Website
  1. Save a customer's payment method when they use it for a payment
  • Online payments
    • Quick start
    • Integration overview
    • Wooshpay JS SDK
    • Wooshpay Checkout
    • Wooshpay Direct API
    • Payment Link
    • Authorize and capture
    • Build subscriptions integration
    • Testing cards
  • After the payment
    • Webhook
    • Check the webhook signatures
    • 校验webhook签名
  • Add more payment methods
    • Supported payment method
    • Cards
    • Wallets
      • Alipay
      • Alipay HK
      • Apple Pay
      • Google Pay
      • Wechat Pay
      • 微信支付
      • Kakao Pay
      • DANA
      • Boost
      • Grabpay
      • Mcash
      • Touch'n Go
      • ShopeePay
      • UnionPay
      • 9Pay
      • OVO
      • GCash
      • TrueMoney
    • Bank Redirects
      • Bancontact
      • BPI
      • Trustly
      • EPS
      • Giropay
      • iDEAL
      • Przelewy24
      • FPX
    • Buy Now Pay Later
      • Klarna
    • Bank Debits
      • Sepa Direct Debit
    • Bank Transfer
      • Bank Transfer in Europe
      • Bank Transfer in United Kingdom
      • Bank Transfer in Indonesia
      • Bank Transfer in Nigeria
      • Bank Transfer in South Africa
    • QR Payments
      • QRIS
      • PromptPay
    • Real-time Payments
      • PIX
      • PayNow
      • UPI
      • SPEI
    • Mobile Money
      • Mobile Money - Multi-Country Integration Guide
  • More payment scenarios
    • Save a customer's payment method when they use it for a payment
      • Save payment details during payment with Direct API
      • Save payment method during payment with Drop-in
    • Save a customer's payment method without making a payment
      • Save a payment method with Wooshpay Checkout
      • Save a payment method with Drop-in
      • Save a payment method with Direct API
  • SaaS platform integration
    • Shopify Plugin
    • WooCommerce
    • Shoplazza 店匠
    • Shopastro 星盘
    • Shopline Plugin
    • Sage Connection
  • Payouts
    • Overview
    • Cameroon
    • Europe
    • Ghana
    • Kenya
    • Nigeria
    • Philippines
    • Rwanda
    • South Africa
    • Tanzania
    • Uganda
    • United Kindom
    • United States of America
    • Monitor your payout results
  • Resources
    • Supported currencies
  1. Save a customer's payment method when they use it for a payment

Save payment method during payment with Drop-in

Supported payment methods#

Payment methodCountry / Region
CardGlobal
DANAIndonesia
BoostMalaysia
Touch'n GoMalaysia
AlipayChina
AlipayHKHong Kong
GCashPhilippines
KakaoPaySouth Korea
Rabbit LINE PayThailand
TrueMoneyThailand

Learn how to save payment details during a payment.#

Unlike creating a SetupIntent to save payment details, you also have the option to save the payment method during the payment process. In the future, you can complete payments using the customer and payment method ID.
1.
Direct API
2.
JS SDK

Direct API#

1.Create a Customer#

Request
{
    "email":"test@gmail.com"
}
Response
{
    "id": "cus_1706288169156083712",
    "object": "customer",
    "created": 1695645775000,
    "livemode": false,
    "address": {},
    "email": "test@gmail.com"
}

2. Create the PaymentIntent#

Below is an example using alipay as the payment method.
Request
{
    "amount": 100,
    "currency": "USD",
    "confirm": true,
    "customer": "cus_1760950869144109056",
    "payment_method_data":{
        "type":"alipay"
    },
    "payment_method_options":{
        "alipay":{
            "terminal_type":"WEB"
        }
    },
    "setup_future_usage": "off_session",
    "return_url": "https://XXXXXXX"
}
Response
{
    "id": "pi_1762686851044343808",
    "object": "payment_intent",
    "created": 1709092269000,
    "livemode": false,
    "currency": "USD",
    "amount": 100,
    "status": "requires_action",
    "customer": "cus_1760950869144109056",
    "client_secret": "pi_1762686851044343808_secret_RSWWKd4j8HqTUZNGgvCYEFoF",
    "next_action": {
        "type": "alipay_handle_redirect",
        "alipay_handle_redirect": {
            "url": "https://XXXXXXXXXXXXXXXXXXXXx"
        }
    },
    "payment_method_types": [
        "alipay"
    ],
    "confirmation_method": "automatic",
    "payment_method_options": {
        "alipay": {
            "terminal_type": "WEB"
        }
    },
    "return_url": "https://XXXXXXX",
    "payment_method": "pm_1762686850952069120",
    "capture_method": "automatic",
    "setup_future_usage": "off_session"
}
Customer will be redirected to the payment method's page to complete the payment and bind the account
You can store the Customer ID along with the PM_id, or find the customer's saved payment method using the following method.

3. Retrieve the payment method attached to the customer#

To find a payment method to charge, list the payment methods associated with the customers using List a Customer's PaymentMethods.
Request
{"type":"alipay"}

4. Charge the saved payment method later#

Using the Customer and PaymentMethod ID to create a payment intent.
When you already have the Customer and Paymentmethod IDs, create PaymentIntent with the amount and currency of the payment.
Before that, there are some parameters in PaymentIntent you need to know.
1.
confirm: If your set it to true, payment will be confirmed immediately when the paymentintent is created.
2.
Set payment_method to the ID of the PaymentMethod and Customer to the ID of the Customer.

Create a PaymentIntent#

Request
{
    "amount": 100,
    "currency": "CNY",
    "confirm": true,
    "customer": "cus_1742882448670195712",
    "payment_method" : "pm_1743112678097813504",
    "return_url": "https://XXXXXXX"
}
Response
{
    "id": "pi_1762769251795468288",
    "object": "payment_intent",
    "created": 1709111915000,
    "livemode": false,
    "currency": "CNY",
    "amount": 100,
    "status": "succeeded",
    "customer": "cus_1742882448670195712",
    "client_secret": "pi_1762769251795468288_secret_gYnWXf7uwcBYpJKbkc8tvl90",
    "payment_method_types": [
        "alipay"
    ],
    "confirmation_method": "automatic",
    "return_url": "https://XXXXXXX",
    "payment_method": "pm_1743112678097813504",
    "amount_received": 100,
    "capture_method": "automatic"
}

JS SDK#

1.Create a Customer#

Request
{
    "email":"test@gmail.com"
}
Response
{
    "id": "cus_1706288169156083712",
    "object": "customer",
    "created": 1695645775000,
    "livemode": false,
    "address": {},
    "email": "test@gmail.com"
}

2. Create the PaymentIntent#

Below is an example using card as the payment method.
Request
{
    "amount": 1000,
    "currency": "USD",
    "customer":"cus_1706288169156083712",
    "setup_future_usage":"on_session",
    "merchant_order_id": "Order112344343",
    "return_url": "https://wooshpay.com"
}
Response
{
    "id": "pi_1706504504247058432",
    "object": "payment_intent",
    "created": 1695697354000,
    "livemode": false,
    "currency": "USD",
    "amount": 1000,
    "status": "requires_payment_method",
    "customer": "cus_1706288169156083712",
    "merchant_order_id": "Order112344343",
    "client_secret": "pi_1706504504247058432_secret_0qE9OXnjgZ3XjZJJXjq67ye5",
    "payment_method_types": [
        "card"
    ],
    "confirmation_method": "automatic",
    "return_url": "https://wooshpay.com",
    "capture_method": "automatic",
    "setup_future_usage": "on_session"
}
Retrieve the client secret
Included in the returned PaymentIntent is a client secret, which the client side uses to securely complete the payment process instead of passing the entire PaymentIntent object.

3. Collect payment details#

Pass the client secret from the previous step into options when you create the Element instance

4. Submit the payment details to Wooshpay#

You can complete the setup using Wooshpay.confirmSetup. Provide a return_url
in this function so that customer can be redirected after they compelet setup.

5. Retrieve the payment method attached to the customer#

To find a payment method to charge, list the payment methods associated with the customers using List a Customer's PaymentMethods.
Request
{
    "type":"card"
}

6. Charge the saved payment method later#

Using the Customer and PaymentMethod ID to create a payment intent.
When you already have the Customer and Paymentmethod IDs, create PaymentIntent with the amount and currency of the payment.
Before that, there are some parameters in PaymentIntent you need to know.
1.
confirm: If your set it to true, payment will be confirmed immediately when the paymentintent is created.
2.
Set payment_method to the ID of the PaymentMethod and Customer to the ID of the Customer.

Create a PaymentIntent#

Request
{
    "amount": 1000,
    "currency": "USD",
    "confirm": true,
    "off_session":false,
    "customer":"cus_1706288169156083712",
    "payment_method":"pm_1704478135803707392",
    "return_url": "https://wooshpay.com"
}
Response
{
    "id": "pi_1704478320244031488",
    "object": "payment_intent",
    "created": 1695214274000,
    "livemode": false,
    "currency": "USD",
    "amount": 1000,
    "status": "succeeded",
    "customer": "cus_1704388704790904832",
    "client_secret": "pi_1704478320244031488_secret_wqlE0XivPRU1d3zkAaJUir52",
    "payment_method_types": [
        "card"
    ],
    "confirmation_method": "automatic",
    "payment_method_options": {
        "card": {
            "request_three_d_secure": "auto",
            "setup_future_usage": "off_session"
        }
    },
    "return_url": "https://wooshpay.com",
    "payment_method": "pm_1704478135803707392",
    "amount_received": 1000,
    "capture_method": "automatic",
    "latest_charge": "ch_1704478320336306176"
}
Modified at 2025-08-13 09:54:01
Previous
Save payment details during payment with Direct API
Next
Save a payment method with Wooshpay Checkout
Built with