Saving Payment Information with the Hosted Page

Our Hosted Page is not limited to just creating payments. You can also use it to store payment information, either for a subscription, or for freely withdrawing money.

How to do it

There are 3 steps. 1. Make session, 2. Wait for webhook, then 3. Make payments.

For step 3, you can create subscriptions instead of payments if you'd like!

Step 1. Make session

Example request

curl -X POST \
  -u sk_12345: \
  -d "mode=customer" \
  -d "return_url=" \
  -d "amount=1000" \ # This amount is not actually charged! Only displayed.
  -d "currency=JPY" \
  -d "line_items[][description]=Monthly Subscription" # description is recommended.

Response (abridged - a real session will have more fields)

  "id": "boc2hxvmyl497eekihyrwmmgm",
  "resource": "session",
  "mode": "customer",
  "session_url": "",
  "customer_id": "0k27xq9ld84yxu7swl3jmyr7k"

Similar to regular payment-mode sessions, please direct your customer to the session_url when you're ready to collect payment information.

Additionally, please save the customer_id in your database for later use.

Step 2. Wait for webhook

Listen for the customer.updated event.

Once you receive this webhook, it means you are ready to create payments!

Step 3. Make payments

The customer_id you saved in Step 1 can be used with the Create Payments API to pull money.

curl -X POST \
  -u sk_12345: \
  -d "amount=1000" \
  -d "currency=JPY" \
  -d "customer=0k27xq9ld84yxu7swl3jmyr7k" \

As previously mentioned, you can use that customer_id to create subscriptions as well.