Build Saved Payment Flow (Tokenization)
Enable customers to save their payment methods securely for future use. This flow exchanges sensitive card or account details for a payment token, which can be reused for faster checkouts, recurring payments, or subscriptions without re-entering information
Applicable only for Card and E-wallet
Redirection Mode
Initiation
Enable "Save Payment Information Detail" option for your customers, when the Charge is SUCCESS We will save your Customer's Payment Information Detail in Token format under your Customer Object

Create Payment Session
A windowed time for the end customer to complete the payment, starting when the client initiates the payment request through your app. The payment session duration is customizable, with a default duration of 15 minutes.
API Reference: Create Payment Session
POST [BASE_URL]/v2/payments
{
"clientReferenceId": "1751610085",
"amount": {
"value": 10000,
"currency": "IDR"
},
"paymentType": "SINGLE",
"paymentMethod": {
"type": "CARD"
},
"paymentMethodOptions": {
"card": {
"captureMethod": "automatic",
"threeDsMethod": "CHALLENGE"
}
},
"saveForFuture": true,
"showSavePayment": null,
"mode": "REDIRECT",
"redirectUrl": {
"successReturnUrl": "https://merchant.com/success",
"failureReturnUrl": "https://merchant.com/failure",
"expirationReturnUrl": "https://merchant.com/expiration"
},
"customer": {
"givenName": "Reforza Jordan",
"sureName": "Geotama",
"email": "reforza@pivot-payment.com",
"phoneNumber": {
"countryCode": "+62",
"number": "89699990001"
},
"refundPreference": {
"method": "AUTO",
"transferDestination": {
"channelCode": "014",
"channelInformation": {
"accountNumber": "17677665415",
"accountName": "Reforza Jordan Geotama"
}
}
}
},
"orderInformation": {
"productDetails": [
{
"type": "PHYSICAL",
"category": "FASHION",
"subCategory": "FASHION WANITA",
"name": "Dress Kasual Warna Putih",
"description": "Ukuran M",
"quantity": 1,
"price": {
"value": 100000,
"currency": "IDR"
}
}
],
"billingInfo": {
"givenName": "Reforza Jordan",
"sureName": "Geotama",
"email": "reforza@pivot-payment.com",
"phoneNumber": {
"countryCode": "+62",
"number": "89699990001"
},
"addressLine1": "Biomedical Building Lantai 3",
"addressLine2": "Digital hub, BSD City",
"city": "Tangerang Regency",
"provinceState": "Banten",
"country": "ID",
"postalCode": "15331"
},
"shippingInfo": {
"givenName": "Reforza Jordan",
"sureName": "Geotama",
"email": "reforza@pivot-payment.com",
"phoneNumber": {
"countryCode": "+62",
"number": "89699990001"
},
"addressLine1": "Biomedical Building Lantai 3",
"addressLine2": "Digital hub, BSD City",
"city": "Tangerang Regency",
"provinceState": "Banten",
"country": "ID",
"postalCode": "15331",
"method": "REGULAR",
"shippingFee": {
"value": 100000,
"currency": "IDR"
}
}
},
"autoConfirm": true,
"statementDescriptor": "Reforza Pivot",
"expiryAt": "2025-12-30T23:59:00Z",
"metadata": {
"invoiceNo": "INV001"
}
}Enable Save Payment Information Detail
To enable Customer to save their payment information detail, choose true
{
"saveForFuture": true
}Define Payment Method
Set autoConfirm to true and fill paymentMethod and paymentMethodOptions Object to finalize the payment method from the previous step.
Reference:
{
"paymentMethod": {
"type": "CARD"
},
"paymentMethodOptions": {
"card": {
"captureMethod": "automatic",
"threeDsMethod": "CHALLENGE"
}
},
"autoConfirm": true
}Send us your Success, Failure, and Expired Payment Session URL
Handle Success, Failure, and Expired cases on your Payment Session
Object reference: Redirect Object
{
"redirectUrl": {
"successReturnUrl": "https://merchant.com/success",
"failureReturnUrl": "https://merchant.com/failure",
"expirationReturnUrl": "https://merchant.com/expiration"
}
}Fill Customer and Order information
Include customer and order details by filling the customer and orderInformation objects. Personalize the payment experience, enhance fraud detection and reconciliation, and ensure smoother processing of refund requests.
Object Reference:
{
"customer": {
"givenName": "Reforza Jordan",
"sureName": "Geotama",
"email": "reforza@pivot-payment.com",
"phoneNumber": {
"countryCode": "+62",
"number": "89699990001"
},
"refundPreference": {
"method": "AUTO",
"transferDestination": {
"channelCode": "014",
"channelInformation": {
"accountNumber": "17677665415",
"accountName": "Reforza Jordan Geotama"
}
}
}
},
"orderInformation": {
"productDetails": [
{
"type": "PHYSICAL",
"category": "FASHION",
"subCategory": "FASHION WANITA",
"name": "Dress Kasual Warna Putih",
"description": "Ukuran M",
"quantity": 1,
"price": {
"value": 100000,
"currency": "IDR"
}
}
],
"billingInfo": {
"givenName": "Reforza Jordan",
"sureName": "Geotama",
"email": "reforza@pivot-payment.com",
"phoneNumber": {
"countryCode": "+62",
"number": "89699990001"
},
"addressLine1": "Biomedical Building Lantai 3",
"addressLine2": "Digital hub, BSD City",
"city": "Tangerang Regency",
"provinceState": "Banten",
"country": "ID",
"postalCode": "15331"
},
"shippingInfo": {
"givenName": "Reforza Jordan",
"sureName": "Geotama",
"email": "reforza@pivot-payment.com",
"phoneNumber": {
"countryCode": "+62",
"number": "89699990001"
},
"addressLine1": "Biomedical Building Lantai 3",
"addressLine2": "Digital hub, BSD City",
"city": "Tangerang Regency",
"provinceState": "Banten",
"country": "ID",
"postalCode": "15331",
"method": "REGULAR",
"shippingFee": {
"value": 100000,
"currency": "IDR"
}
}
}
}Redirect to Payment Page
After creating the Payment Session, redirect your customer to the URL for the Payment page returned in the response.
{
"paymentUrl": "https://payment.pivot-payment.com/detail?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1dWlkIjoiN2Y2NWM3NTctMzU1Zi00NjQ1LWFjMTQtMDI4YjM0YWI1MWIxIiwiaXNzIjoiYmFja2VuZC1wb3J0YWwiLCJleHAiOjE3NDM0NjU1NDV9.55-QdvI0xVtivNLJzREPDGzUbqFNEj7ouFUCvrzAIbw"
}Manage your Customer ID
Once the Payment Session has been generated, save and manage your customerId to be used for future use.
Stored Payment Method links to your customerId
{
"customerId": "01975d90-bb55-76f6-b423-691c7868e85d"
}Use Saved Payment
Reuse your customers' saved Payment Information details so that they can check out faster

Create Payment Session
A windowed time for the end customer to complete the payment, starting when the client initiates the payment request through your app. The payment session duration is customizable, with a default duration of 15 minutes.
API Reference: Create Payment Session
POST [BASE_URL]/v2/payments
{
"clientReferenceId": "1751610085",
"amount": {
"value": 10000,
"currency": "IDR"
},
"paymentType": "SINGLE",
"paymentMethod": {
"type": "CARD"
},
"paymentMethodOptions": {
"card": {
"captureMethod": "automatic",
"threeDsMethod": "CHALLENGE"
}
},
"saveForFuture": true,
"showSavePayment": true,
"mode": "REDIRECT",
"redirectUrl": {
"successReturnUrl": "https://merchant.com/success",
"failureReturnUrl": "https://merchant.com/failure",
"expirationReturnUrl": "https://merchant.com/expiration"
},
"customer": {
"givenName": "Reforza Jordan",
"sureName": "Geotama",
"email": "reforza@pivot-payment.com",
"phoneNumber": {
"countryCode": "+62",
"number": "89699990001"
},
"refundPreference": {
"method": "AUTO",
"transferDestination": {
"channelCode": "014",
"channelInformation": {
"accountNumber": "17677665415",
"accountName": "Reforza Jordan Geotama"
}
}
}
},
"orderInformation": {
"productDetails": [
{
"type": "PHYSICAL",
"category": "FASHION",
"subCategory": "FASHION WANITA",
"name": "Dress Kasual Warna Putih",
"description": "Ukuran M",
"quantity": 1,
"price": {
"value": 100000,
"currency": "IDR"
}
}
],
"billingInfo": {
"givenName": "Reforza Jordan",
"sureName": "Geotama",
"email": "reforza@pivot-payment.com",
"phoneNumber": {
"countryCode": "+62",
"number": "89699990001"
},
"addressLine1": "Biomedical Building Lantai 3",
"addressLine2": "Digital hub, BSD City",
"city": "Tangerang Regency",
"provinceState": "Banten",
"country": "ID",
"postalCode": "15331"
},
"shippingInfo": {
"givenName": "Reforza Jordan",
"sureName": "Geotama",
"email": "reforza@pivot-payment.com",
"phoneNumber": {
"countryCode": "+62",
"number": "89699990001"
},
"addressLine1": "Biomedical Building Lantai 3",
"addressLine2": "Digital hub, BSD City",
"city": "Tangerang Regency",
"provinceState": "Banten",
"country": "ID",
"postalCode": "15331",
"method": "REGULAR",
"shippingFee": {
"value": 100000,
"currency": "IDR"
}
}
},
"autoConfirm": true,
"statementDescriptor": "Reforza Pivot",
"expiryAt": "2025-12-30T23:59:00Z",
"metadata": {
"invoiceNo": "INV001"
}
}Show saved Payment Information
To show the saved Payment Information to your Customer, choose true
{
"showSavePayment": true
}Define Payment Method
Set autoConfirm to true and fill paymentMethod and paymentMethodOptions Object to finalize the payment method from the previous step.
Reference:
{
"paymentMethod": {
"type": "CARD"
},
"paymentMethodOptions": {
"card": {
"captureMethod": "automatic",
"threeDsMethod": "CHALLENGE"
}
},
"autoConfirm": true
}Send us your Success, Failure, and Expired Payment Session URL
Handle Success, Failure, and Expired cases on your Payment Session
Object reference: Redirect Object
{
"redirectUrl": {
"successReturnUrl": "https://merchant.com/success",
"failureReturnUrl": "https://merchant.com/failure",
"expirationReturnUrl": "https://merchant.com/expiration"
}
}Fill Customer ID and Order information
Include customer and order details by filling the saved customerId and orderInformation objects. Personalize the payment experience, enhance fraud detection and reconciliation, and ensure smoother processing of refund requests.
Object Reference:
{
"customerId": "01975d90-bb55-76f6-b423-691c7868e85d",
"orderInformation": {
"productDetails": [
{
"type": "PHYSICAL",
"category": "FASHION",
"subCategory": "FASHION WANITA",
"name": "Dress Kasual Warna Putih",
"description": "Ukuran M",
"quantity": 1,
"price": {
"value": 100000,
"currency": "IDR"
}
}
],
"billingInfo": {
"givenName": "Reforza Jordan",
"sureName": "Geotama",
"email": "reforza@pivot-payment.com",
"phoneNumber": {
"countryCode": "+62",
"number": "89699990001"
},
"addressLine1": "Biomedical Building Lantai 3",
"addressLine2": "Digital hub, BSD City",
"city": "Tangerang Regency",
"provinceState": "Banten",
"country": "ID",
"postalCode": "15331"
},
"shippingInfo": {
"givenName": "Reforza Jordan",
"sureName": "Geotama",
"email": "reforza@pivot-payment.com",
"phoneNumber": {
"countryCode": "+62",
"number": "89699990001"
},
"addressLine1": "Biomedical Building Lantai 3",
"addressLine2": "Digital hub, BSD City",
"city": "Tangerang Regency",
"provinceState": "Banten",
"country": "ID",
"postalCode": "15331",
"method": "REGULAR",
"shippingFee": {
"value": 100000,
"currency": "IDR"
}
}
}
}Redirect to Payment Page
After creating the Payment Session, redirect your customer to the URL for the Payment page returned in the response.
{
"paymentUrl": "https://payment.pivot-payment.com/detail?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1dWlkIjoiN2Y2NWM3NTctMzU1Zi00NjQ1LWFjMTQtMDI4YjM0YWI1MWIxIiwiaXNzIjoiYmFja2VuZC1wb3J0YWwiLCJleHAiOjE3NDM0NjU1NDV9.55-QdvI0xVtivNLJzREPDGzUbqFNEj7ouFUCvrzAIbw"
}Simulate Payment
Visit the Payment Page
Choose your saved Payment Information detail, and input CVV/CVC to proceed with the Payment

API Mode
Initiation
Enable "Save Payment Information Detail" option for your customers, when the Charge is SUCCESS We will save your Customer's Payment Information Detail in Token format under your Customer Object

Create Payment Session
A windowed time for the end customer to complete the payment, starting when the client initiates the payment request through your app. The payment session duration is customizable, with a default duration of 15 minutes.
API Reference: Create Payment Session
POST [BASE_URL]/v2/payments
{
"clientReferenceId": "1751620870",
"amount": {
"value": 10000,
"currency": "IDR"
},
"paymentType": "SINGLE",
"paymentMethod": {
"type": "CARD"
},
"saveForFutureUse": true,
"mode": "API",
"redirectUrl": {
"successReturnUrl": "https://merchant.com/success",
"failureReturnUrl": "https://merchant.com/failure",
"expirationReturnUrl": "https://merchant.com/expiration"
},
"customer": {
"givenName": "Reforza Jordan",
"sureName": "Geotama",
"email": "reforza@pivot-payment.com",
"phoneNumber": {
"countryCode": "+62",
"number": "89699990001"
},
"refundPreference": {
"method": "AUTO",
"transferDestination": {
"channelCode": "014",
"channelInformation": {
"accountNumber": "17677665415",
"accountName": "Reforza Jordan Geotama"
}
}
}
},
"orderInformation": {
"productDetails": [
{
"type": "PHYSICAL",
"category": "FASHION",
"subCategory": "FASHION WANITA",
"name": "Dress Kasual Warna Putih",
"description": "Ukuran M",
"quantity": 1,
"price": {
"value": 100000,
"currency": "IDR"
}
}
],
"billingInfo": {
"givenName": "Reforza Jordan",
"sureName": "Geotama",
"email": "reforza@pivot-payment.com",
"phoneNumber": {
"countryCode": "+62",
"number": "89699990001"
},
"addressLine1": "Biomedical Building Lantai 3",
"addressLine2": "Digital hub, BSD City",
"city": "Tangerang Regency",
"provinceState": "Banten",
"country": "ID",
"postalCode": "15331"
},
"shippingInfo": {
"givenName": "Reforza Jordan",
"sureName": "Geotama",
"email": "reforza@pivot-payment.com",
"phoneNumber": {
"countryCode": "+62",
"number": "89699990001"
},
"addressLine1": "Biomedical Building Lantai 3",
"addressLine2": "Digital hub, BSD City",
"city": "Tangerang Regency",
"provinceState": "Banten",
"country": "ID",
"postalCode": "15331",
"method": "REGULAR",
"shippingFee": {
"value": 100000,
"currency": "IDR"
}
}
},
"autoConfirm": false,
"statementDescriptor": "Reforza Pivot",
"expiryAt": "2025-12-30T23:59:00Z",
"metadata": {
"invoiceNo": "INV001"
}
}Enable Save Payment Information Detail
To enable Customer to save their payment information detail, choose true
Can be sent later in Confirm Payment Session
{
"saveForFuture": true
}Define Payment Method
Set autoConfirm to false and fill paymentMethod.type = "CARD" to generate the Card RSA Encryption Key
Object Reference:
{
"paymentMethod": {
"type": "CARD"
},
"autoConfirm": false
}Send us your Success, Failure, and Expired Payment Session URL
Handle Success, Failure, and Expired cases on your Payment Session
Object reference: Redirect Object
{
"redirectUrl": {
"successReturnUrl": "https://merchant.com/success",
"failureReturnUrl": "https://merchant.com/failure",
"expirationReturnUrl": "https://merchant.com/expiration"
}
}Fill Customer and Order information
Include customer and order details by filling the customer and orderInformation objects. Personalize the payment experience, enhance fraud detection and reconciliation, and ensure smoother processing of refund requests.
Object Reference:
{
"customer": {
"givenName": "Reforza Jordan",
"sureName": "Geotama",
"email": "reforza@pivot-payment.com",
"phoneNumber": {
"countryCode": "+62",
"number": "89699990001"
},
"refundPreference": {
"method": "AUTO",
"transferDestination": {
"channelCode": "014",
"channelInformation": {
"accountNumber": "17677665415",
"accountName": "Reforza Jordan Geotama"
}
}
}
},
"orderInformation": {
"productDetails": [
{
"type": "PHYSICAL",
"category": "FASHION",
"subCategory": "FASHION WANITA",
"name": "Dress Kasual Warna Putih",
"description": "Ukuran M",
"quantity": 1,
"price": {
"value": 100000,
"currency": "IDR"
}
}
],
"billingInfo": {
"givenName": "Reforza Jordan",
"sureName": "Geotama",
"email": "reforza@pivot-payment.com",
"phoneNumber": {
"countryCode": "+62",
"number": "89699990001"
},
"addressLine1": "Biomedical Building Lantai 3",
"addressLine2": "Digital hub, BSD City",
"city": "Tangerang Regency",
"provinceState": "Banten",
"country": "ID",
"postalCode": "15331"
},
"shippingInfo": {
"givenName": "Reforza Jordan",
"sureName": "Geotama",
"email": "reforza@pivot-payment.com",
"phoneNumber": {
"countryCode": "+62",
"number": "89699990001"
},
"addressLine1": "Biomedical Building Lantai 3",
"addressLine2": "Digital hub, BSD City",
"city": "Tangerang Regency",
"provinceState": "Banten",
"country": "ID",
"postalCode": "15331",
"method": "REGULAR",
"shippingFee": {
"value": 100000,
"currency": "IDR"
}
}
}
}Get RSA Encryption Key details
After creating the Payment Session, pass the RSA Encryption Key to the Merchant Front-end, which is returned in the response.
Object Reference: Payment Session Object
{
"encryptionKey": "Eykc6QYeUuG5aKcPMrUsaZq0bWWCGLJY"
}Encrypt Card Information in Merchant Front-end
Encrypt Card Information details using the RSA Encryption Key from the Merchant Back-end, then pass the Encrypted Card to the Merchant Back-end
Encryption Code Reference: Card Encryption
Card Simulation Reference: Payment Simulation
Confirm Payment Session
Finalize the Payment Method by filling paymentMethod.card.encryptedCard and paymentMethodOptions objects
API Reference: Confirm Payment Session
POST [BASE_URL]/v2/payments/{id}/confirm
{
"paymentMethod": {
"type": "CARD",
"card": {
"encryptedCard": "vFbUU18gh35lmeVnhb7fgG91tBNb890MTv+0yKBEIARbaiYFySPTvFZZGa7f5V9ONqAJg6KKmtsQn2Qmt7R7V8KdscSgB29zr8MypMvofd3RjNihKk8QvbWOe1qaVjoIzEvkO30oMm3go1nPRFtVcojpw+NAyF1Uip1ED7fZGDfo5haaa2jdSGRg3kei12LcOHZ5jfh94GsPrQ4MCsWfKn1o8Y5b/aPAmfRsfQ2BnGudFAfoxG4hCdCcUTtpNBTt27dPIVeCdyfoOaRRjjgM3JO1dCerhAOgCw2DOvBsHw+Z2VJHJmURPvVTOiuZhSa8E6SRQ1GW7Cf4CRlPLmLa54UU6hbyNePq7W7TGMV11j8Slzan6JF0Wayow0gJp+aTjSER4ZwrmyqRTxKKA2l4t6vi66Yc2B/bzsJtslYa5tJoxmatavuCZma29kUtqU9Dtlu2UNkGoW7XweBtwxkOWpFLfnufTLYNpd7SuaRqOvW0Yc6CjbXZMbradd3ZqFJ+mtSOuU3BAFV5xSjxv90mYWqnZBOpZIVM3WZQanJ//fEReXg7YasvAxQIGYBJybob3uy4mEcODVy6Ty9E9c0UdF5WN7XV0K+5bTLzGEPlMSlTqgL4HSccXp4dpVdWFL4XpVwQBgdjtpmRpklfyaco4YFlGutFSgVYvEitAKYkCtpG9m6RYw4="
}
},
"paymentMethodOptions": {
"card": {
"captureMethod": "automatic",
"threeDsMethod": "CHALLENGE",
"processingConfig": {
"bankMerchantId": null,
"merchantIdTag": null
}
}
}
}Redirect to 3DS Page
After confirming the Payment Session, redirect your customer to the 3DS Page URL for authenticating the transaction returned in the response.
{
"paymentUrl": "https://creditcard-webview-stg.harsya.com/payment/creditcard/threeds?client_transaction_id=1751620870&acquirer_transaction_id=TRXCC36ac8979a69a17516228851&session_id=FYb9MAxPBhiwsMGEwbtV5SmkF6t2DnWK"
}Manage your Customer ID
Once the Payment Session has been generated, save and manage your customerId to be used for future use
Stored Payment Method links to your customerId
{
"customerId": "01975d90-bb55-76f6-b423-691c7868e85d"
}Use Saved Payment
Reuse your customers' saved Payment Information details so that they can check out faster

Get Stored Payment Information Detail
Get the Stored Payment Information details to be shown in the Merchant Front-end whenever your Customer uses saved Payment
API Reference: Retrieve Customer
GET [BASE_URL]/v1/customers/{customerId}
{
"code": "00",
"message": "Success",
"data": {
"givenName": "Reforza Jordan",
"sureName": "Geotama",
"email": "reforza@pivot-payment.com",
"phoneNumber": {
"countryCode": "+62",
"number": "089699990003"
},
"refundPreference": {
"method": "AUTO",
"transferDestination": {
"channelCode": "014",
"channelInformation": {
"accountNumber": "17677665415",
"accountName": "Reforza Jordan Geotama"
}
}
},
"storedPaymentMethods": [
{
"token": "020027de-134e-45ed-8f0d-7ae0506a7133",
"paymentMethod": "CARD",
"paymentChannel": "VISA",
"status": "ACTIVE",
"createdAt": "2025-09-02T06:02:59.141590124Z",
"card": {
"fingerprint": "0198edcf-87a0-73fd-b937-7ec4b0ddb9c6",
"network": "VISA",
"first6": "444000",
"first8": "44400001",
"last4": "0002",
"expMonth": "01",
"expYear": "39",
"cardHolderFirstName": "Reforza Jordan",
"cardHolderLastName": "Geotama"
}
}
]
}
}Create Payment Session
A windowed time for the end customer to complete the payment, starting when the client initiates the payment request through your app. The payment session duration is customizable, with a default duration of 15 minutes.
API Reference: Create Payment Session
POST [BASE_URL]/v2/payments
{
"clientReferenceId": "1751620870",
"amount": {
"value": 10000,
"currency": "IDR"
},
"paymentType": "SINGLE",
"paymentMethod": {
"type": "CARD",
"card": {
"token": "020027de-134e-45ed-8f0d-7ae0506a7133",
"cvc": "123"
}
},
"paymentMethodOptions": {
"card": {
"captureMethod": "automatic",
"threeDsMethod": "CHALLENGE"
}
},
"saveForFutureUse": true,
"mode": "API",
"redirectUrl": {
"successReturnUrl": "https://merchant.com/success",
"failureReturnUrl": "https://merchant.com/failure",
"expirationReturnUrl": "https://merchant.com/expiration"
},
"customerId": "01975d90-bb55-76f6-b423-691c7868e85d",
"orderInformation": {
"productDetails": [
{
"type": "PHYSICAL",
"category": "FASHION",
"subCategory": "FASHION WANITA",
"name": "Dress Kasual Warna Putih",
"description": "Ukuran M",
"quantity": 1,
"price": {
"value": 100000,
"currency": "IDR"
}
}
],
"billingInfo": {
"givenName": "Reforza Jordan",
"sureName": "Geotama",
"email": "reforza@pivot-payment.com",
"phoneNumber": {
"countryCode": "+62",
"number": "89699990001"
},
"addressLine1": "Biomedical Building Lantai 3",
"addressLine2": "Digital hub, BSD City",
"city": "Tangerang Regency",
"provinceState": "Banten",
"country": "ID",
"postalCode": "15331"
},
"shippingInfo": {
"givenName": "Reforza Jordan",
"sureName": "Geotama",
"email": "reforza@pivot-payment.com",
"phoneNumber": {
"countryCode": "+62",
"number": "89699990001"
},
"addressLine1": "Biomedical Building Lantai 3",
"addressLine2": "Digital hub, BSD City",
"city": "Tangerang Regency",
"provinceState": "Banten",
"country": "ID",
"postalCode": "15331",
"method": "REGULAR",
"shippingFee": {
"value": 100000,
"currency": "IDR"
}
}
},
"autoConfirm": true,
"statementDescriptor": "Reforza Pivot",
"expiryAt": "2025-12-30T23:59:00Z",
"metadata": {
"invoiceNo": "INV001"
}
}Define Payment Method
Set autoConfirm to true, fill Saved Payment Information from Get Stored Payment Information Detail and CVC from Merchant Front-end in paymentMethod and paymentMethodOptions Object to finalize the payment method from the previous step.
Reference:
{
"paymentMethod": {
"type": "CARD",
"card": {
"token": "020027de-134e-45ed-8f0d-7ae0506a7133",
"cvc": "123"
}
},
"paymentMethodOptions": {
"card": {
"captureMethod": "automatic",
"threeDsMethod": "CHALLENGE"
}
},
"autoConfirm": true
}Send us your Success, Failure, and Expired Payment Session URL
Handle Success, Failure, and Expired cases on your Payment Session
Object reference: Redirect Object
{
"redirectUrl": {
"successReturnUrl": "https://merchant.com/success",
"failureReturnUrl": "https://merchant.com/failure",
"expirationReturnUrl": "https://merchant.com/expiration"
}
}Fill Customer ID and Order information
Include customer and order details by filling the saved customerId and orderInformation objects. Personalize the payment experience, enhance fraud detection and reconciliation, and ensure smoother processing of refund requests.
Object Reference:
{
"customerId": "01975d90-bb55-76f6-b423-691c7868e85d",
"orderInformation": {
"productDetails": [
{
"type": "PHYSICAL",
"category": "FASHION",
"subCategory": "FASHION WANITA",
"name": "Dress Kasual Warna Putih",
"description": "Ukuran M",
"quantity": 1,
"price": {
"value": 100000,
"currency": "IDR"
}
}
],
"billingInfo": {
"givenName": "Reforza Jordan",
"sureName": "Geotama",
"email": "reforza@pivot-payment.com",
"phoneNumber": {
"countryCode": "+62",
"number": "89699990001"
},
"addressLine1": "Biomedical Building Lantai 3",
"addressLine2": "Digital hub, BSD City",
"city": "Tangerang Regency",
"provinceState": "Banten",
"country": "ID",
"postalCode": "15331"
},
"shippingInfo": {
"givenName": "Reforza Jordan",
"sureName": "Geotama",
"email": "reforza@pivot-payment.com",
"phoneNumber": {
"countryCode": "+62",
"number": "89699990001"
},
"addressLine1": "Biomedical Building Lantai 3",
"addressLine2": "Digital hub, BSD City",
"city": "Tangerang Regency",
"provinceState": "Banten",
"country": "ID",
"postalCode": "15331",
"method": "REGULAR",
"shippingFee": {
"value": 100000,
"currency": "IDR"
}
}
}
}Redirect to 3DS Page
After creating the Payment Session, redirect your customer to the 3DS Page URL for authenticating the transaction returned in the response.
{
"paymentUrl": "https://creditcard-webview-stg.harsya.com/payment/creditcard/threeds?client_transaction_id=1751620870&acquirer_transaction_id=TRXCC36ac8979a69a17516228851&session_id=FYb9MAxPBhiwsMGEwbtV5SmkF6t2DnWK"
}Last updated
