5.14 TossPay

Toss Pay is a mobile financial service app based in South Korea. Launched in 2015 by Viva Republica, a South Korean fintech startup, and initially focused on P2P money transfers, Toss Pay now provides over 40 financial services such as money transfers, loans, stock trading, credit score viewing, and investments. Toss Pay has received multiple rounds of investment from a host of domestic and international institutions, which has cemented its status as the leading fintech unicorn in the South Korean Market.

Toss Pay wallet allows users to link locally-issued bank cards, and almost any local bank account in South Korea. Toss Pay has reached 22 million registered users and 14 million monthly active users, making it the third largest digital wallet.

ScenarioCategoryPayment methodPayment productIntegration typeAuthenticationRedirect TypeCode TypePre-authPartial RefundCancellation supported
ONLINEEwalletTOSSPAYCASHIER_PAYMENTAPI-In-appOrder code-YESYES
OFFLINEEwalletTOSSPAYORDER_CODEAPI, POS--Order code-YESYES
OFFLINEEwalletTOSSPAYPAYMENT_CODEAPI, POS--Payment code-YESYES
OFFLINEEwalletTOSSPAYENTRY_CODEEMVCO_QR--Static code-YESYES

Payment ProductDescription
CASHIER_PAYMENTPayment product. Use this product to get the cashier page address. After getting the cashier page address, you can redirect the user to the cashier page to make a payment or display the online order code for the user to scan.
ORDER_CODEMerchant-Presented Mode Payment product. One code value can only be used for one transaction. For example, the order code displayed on the merchant's terminal screen or printed on the cashier's receipt. After the user scans the code, the user usually does not need to enter the transaction amount to initiate the payment.
PAYMENT_CODEUser-Presented Mode Payment product. The merchant uses a code scanning device to scan the payment code and complete the deduction.
ENTRY_CODEMerchant-Presented Mode Payment product. With the Entry Code Payment product, users can scan the entry code generated by the merchant and enter the payment amount to complete the payment. Merchants do not need to apply an updated QR code or purchase any equipment for collecting payment if merchants join the UPAS network.

Experience and integration process

CapabilitiesAPIsDescription
Initiate a paymentPAY
Refund a paymentREFUND
Cancel a paymentCANCELOnly a full cancellation is allowed. The cancellation period: Before 23:59:59 within the payment date.
Inquiry transaction resultDETAIL
Notify transaction resultNOTIFICATION

Initiate a payment

Field Description Required

paymentMethod

Must be "TOSSPAY"

M

product

For CASHIER_PAYMENT, it must be "CASHIER_PAYMENT";
For ORDER_CODE, it must be "ORDER_CODE";
For PAYMENT_CODE, it must be "PAYMENT_CODE";
ENTRY_CODE is only used in "EMVCO_QR";

M

expireAt

The format is "yyyy-mm-dd hh:mm:ss", and it must be less than 72 hours after the payment request is sent.
It's required when the product is "CASHIER_PAYMENT" or "ORDER_CODE"

C

payCodeValue

It's required when the product is "PAYMENT_CODE"

C

goods.description

It's required when paymentMethod is KAKAOPAY

M

riskData.Device.os

It's required when the product is in "CASHIER_PAYMENT", "ORDER_CODE", "PAYMENT_CODE"

M

Handle the payment result To complete the payment:

  • CASHIER_PAYMENT
  1. present the QR code image(payAction, "type": "QRCODE", "redirectUrl") to the shopper for scanning.
  2. Or redirect shopper(payAction, "type": "REDIRECT", "Url") to open an app when the target app is installed.
  3. Use the data.status from the PAY response to present the payment result to your shopper. You can also wait the NOTIFICATION or submit a DETAIL request for the payment result.
  • ORDER_CODE
  1. Present the QR code image(payAction, "type": "QRCODE", "redirectUrl") to the shopper for scanning.
  2. After the shopper completes the payment, wait the NOTIFICATION or submit a DETAIL request for the payment result.
  • PAYMENT_CODE
  1. Use the data.status from the PAY response to present the payment result to your shopper. You can also wait the NOTIFICATION or submit a DETAIL request for the payment result.
  • ENTRY_CODE
  1. After the shopper completes the payment, wait the NOTIFICATION for the payment result.