WooshPay OpenAPI
Product DocumentAPI ReferenceJS SDK ReferenceSaaS Platform Integration
Product DocumentAPI ReferenceJS SDK ReferenceSaaS Platform Integration
Back to WooshPay Website
  1. More payment scenarios
  • 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
    • Payouts
    • 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
    • QR Payments
      • QRIS
      • PromptPay
    • Real-time payments
      • PIX
      • PayNow
      • UPI
      • SPEI
  • More payment scenarios
    • Set up future payments
    • Save payment method during payment
  • SaaS platform integration
    • Shopify Plugin
    • Shopastro 星盘
    • WooCommerce
    • Shoplazza 店匠
    • Shopline Plugin
    • Sage Connection
  • Resources
    • Supported currencies
  1. More payment scenarios

Save payment method during payment

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 2024-04-11 12:28:08
Previous
Set up future payments
Next
Shopify Plugin
Built with