Build Static Payment
Generate a fixed Virtual Account number or QR Code that can be reused for multiple transactions. The payment can be set to a fixed amount or left open for the customer to enter
Applicable only for QRIS and Virtual Account, and the mode is API

Create Payment Static
A windowed time for the end customer to complete the payment, starting when the client initiates the payment request through your app. For Static Payment, the payment session is always ACTIVE and can be charged multiple times.
API Reference: Create Payment Session
POST [BASE_URL]/v2/payments
{
"clientReferenceId": "1751610085",
"amount": {
"value": 10000, // Mandatory if VA is Closed Static
"currency": "IDR"
},
"paymentType": "MULTIPLE",
"paymentMethod": {
"type": "VIRTUAL_ACCOUNT"
},
"paymentMethodOptions": {
"virtualAccount": {
"channel": "PERMATA",
"virtualAccountName": "Reforza Pivot",
"virtualAccountNumber": "00000001"
}
},
"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": true,
"statementDescriptor": "Reforza Pivot",
"metadata": {
"invoiceNo": "INV001"
}
}Choose a Payment Type
To create Payment Static, choose Payment Type “MULTIPLE”
{
"paymentType": "MULTIPLE"
}Send your Amount object (*conditional)
Only for the Closed Static Virtual Account, you must send the Amount object
{
"amount": {
"value": 10000,
"currency": "IDR"
}
}Define Payment Method
Set autoConfirm to true and fill paymentMethod and paymentMethodOptions Object to finalize the payment method from the previous step.
Make sure virtualAccountNumber within our default Static Range or your Configuration range:
https://dashboard.pivot-payment.com/static-payment/virtual-account/range
Reference:
{
"paymentMethod": {
"type": "VIRTUAL_ACCOUNT"
},
"paymentMethodOptions": {
"virtualAccount": {
"channel": "PERMATA",
"virtualAccountName": "Reforza Pivot",
"virtualAccountNumber": "99996662"
}
},
"autoConfirm": true
}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 Payment Information details
After creating the Payment Session, display the payment information details on your customized Payment page, which is returned in the response.
Object Reference: Payment Method Object
{
"paymentMethod": {
"type": "VIRTUAL_ACCOUNT",
"virtualAccount": {
"channel": "PERMATA",
"virtualAccountNumber": "7699013199996662",
"virtualAccountName": "Reforza Pivot",
"expiryAt": "0001-01-01T00:00:00Z"
}
}
}Last updated