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

circle-info

Applicable only for QRIS and Virtual Account, and the mode is API

chevron-rightCreate Payment Statichashtag

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",
    "surname": "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",
      "surname": "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",
      "surname": "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"
  }
}
chevron-rightChoose a modehashtag

To customize your own Payment Page choose mode “API”

chevron-rightChoose a Payment Typehashtag

To create Payment Static, choose Payment Type “MULTIPLE”

chevron-rightSend your Amount object (*conditional)hashtag

Only for the Closed Static Virtual Account, you must send the Amount object

chevron-rightDefine Payment Method hashtag

Set autoConfirm to true and fill paymentMethod and paymentMethodOptions Object to finalize the payment method from the previous step.

circle-info

Make sure virtualAccountNumber within our default Static Range or your Configuration range:

https://dashboard.pivot-payment.com/static-payment/virtual-account/rangearrow-up-right

Reference:

chevron-rightFill Customer and Order informationhashtag

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:

chevron-rightGet Payment Information detailshashtag

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

chevron-rightSimulate Paymenthashtag

Last updated