For the complete documentation index, see llms.txt. This page is also available as Markdown.

Create Payment Session

Request a windowed time of payment session

Method and URL

POST [BASE_URL]/v2/payments

Request

Payment UI

Pivot's Payment UI
{
  "clientReferenceId": "1751612565",
  "amount": {
    "value": 10000,
    "currency": "IDR"
  },
  "paymentType": "SINGLE",
  "mode": "REDIRECT",
  "bypassStatusPage": false,
  "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": false,
  "statementDescriptor": "Reforza Pivot",
  "expiryAt": "2025-12-30T23:59:00Z",
  "metadata": {
    "invoiceNo": "INV001"
  }
}

Card Payment Method

If you plan to embed our Payment Redirection page using an iframe, please submit your website domain to us for whitelisting

Pivot's Payment Redirection
{
  "clientReferenceId": "1751610085",
  "amount": {
    "value": 10000,
    "currency": "IDR"
  },
  "paymentType": "SINGLE",
  "paymentMethod": {
    "type": "CARD"
  },
  "paymentMethodOptions": {
    "card": {
      "captureMethod": "automatic", // "MANUAL" for Capture later
      "threeDsMethod": "CHALLENGE" // "NEVER" for Non 3DS
    }
  },
  "mode": "REDIRECT",
  "bypassStatusPage": false,
  "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": { // Mandatory for Foreign Card with AVS
      "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",
  "expirationMode": "STRICT",
  "expiryAt": "2025-12-30T23:59:00Z",
  "metadata": {
    "invoiceNo": "INV001"
  }
}
Merchant's customized Payment Page — Card Encryption

How to build reference: Card Customized Payment Page (Encryption)

{
  "clientReferenceId": "1751620870",
  "amount": {
    "value": 10000,
    "currency": "IDR"
  },
  "paymentType": "SINGLE",
  "paymentMethod": {
    "type": "CARD"
  },
  "paymentMethodOptions": {
    "card": {
      "captureMethod": "automatic", // "MANUAL" for Capture later
      "threeDsMethod": "CHALLENGE" // "NEVER" for Non 3DS, "EXTERNAL" for using own MPI 
    }
  },
  "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": { // Mandatory for Foreign Card with AVS
      "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": false,
  "statementDescriptor": "Reforza Pivot",
  "expirationMode": "STRICT",
  "expiryAt": "2025-12-30T23:59:00Z",
  "metadata": {
    "invoiceNo": "INV001"
  }
}
Save Card with Pivot's Payment Redirection (Card Tokenization)

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

How to build reference: Pay and Save Card (Tokenization)

Use Tokenized Card

Reuse your customers' saved Payment Information details so that they can check out faster

Stored Payment Method links to your customerId

Save Card with Merchant's customized Payment Page (Card Tokenization)

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

How to build reference: Pay and Save Card (Tokenization)

Use Tokenized Card

Reuse your customers' saved Payment Information details so that they can check out faster

Stored Payment Method links to your customerId

Subscription and Automated Billing (Recurring)

How to build reference: Subscription and Automated Billing (Recurring)

Create Recurring

Create your plans, pricing, intervals, and trial settings: Create Recurring

First Authorization

Initiate the first Authorization of your Customer's Card Information

Authorize your Customer's Card Information using the Card Encryption flow: Card Customized Payment Page (Encryption)

Subsequent Transaction (Merchant managed scheduler)

Once the card is authorized and stored as a token, your scheduler is ready to charge the customer's bill

Recurring Plan & Stored Payment Method links to your customerId

Update Payment Method for ongoing Recurring Plan

You need to re-authorize your new Customer's Card Information without disrupting the ongoing Billing cycle. Default authorization is ONE_DOLLAR

Utilize ongoing recurringId to update your customers' Payment Method

Virtual Account Payment Method

Pivot's Payment Redirection
Merchant's customized Payment Page
Virtual Account Static with Merchant's customized Payment Page

How to build reference: Build Static Payment

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

https://dashboard.pivot-payment.com/static-payment/virtual-account/range

QR Payment Method

Pivot's Payment Redirection
Merchant's customized Payment Page
QR Static with Merchant's customized Payment Page

How to build reference: Build Static Payment

E-Wallet Payment Method

channel = DANA limitation:

  1. Does not support embedding a page using an iframe

  2. Single Redirect URL handling for Success, Failure, and Expired cases. Pivot will use redirectUrl.successReturnUrl as a source

Pivot's Payment Redirection
Merchant's customized Payment Page

Detail Parameter Request

Parameter
Data Type
Character Limit
Requirement
Description

clientReferenceId

Alphanumeric

1-100

M

Unique Payment Reference from Merchant's Request

amount

Object

-

M

Amount Object Total Payment amount

paymentType

String

-

O

Default to SINGLE

Payment Type possible values are:

  • SINGLE

  • MULTIPLE

Definition:

  • SINGLE: Payment Session can only be charged once

  • MULTIPLE: Payment Session can be charged multiple times, and Payment Session Status is always Active

Applicable only for Payment Method Type QR and VIRTUAL_ACCOUNT

paymentMethod

Object

-

O

paymentMethodOptions

Object

-

C

saveForFutureUse

Boolean

-

O

Store Payment Information detail in Token format in Customer Object for CARD & EWALLET Payment method whenever the charge is SUCCESS

Default to false Possible values are:

  • true

  • false

showSavedPayment

Boolean

-

O

Show saved Payment Information for CARD & EWALLET Payment method in Payment Redirection

Default to false, applicable only for REDIRECT mode Possible values are:

  • true

  • false

mode

String

-

O

Default to REDIRECT

Payment Session mode. Possible values are:

  • REDIRECT will return redirectUrl

  • API

bypassStatusPage

Boolean

-

O

Bypass Pivot's Status Page after your customer completing the Payment, directly redirect to your URLs

Default to false, applicable only for REDIRECT mode Possible values are:

  • true

  • false

redirectUrl

Object

-

M

Redirect Object URL for redirection

customerId

String

0-255

O

Auto generated based on email as the unique identifier *Choose either to send customerId or customer Object

customer

Object

-

C

Customer Object Customer information *Choose either to send customerId or customer Object

orderInformation

Object

-

M

Order Object Order information

autoConfirm

Boolean

-

O

Default to true

If the confirmation method is set to false. Then clients need to hit the /confirm endpoint

statementDescriptor

String

0-20

O

Default = Merchant’s short name

Statement descriptors allow a maximum 20 characters for all the concatenated characters (including space).

It will be shown on invoice, receipt, and for payment methods that support custom descriptors, it will be shown on the customer's bank statement.

expirationMode

String

-

O

Default to LOOSE

Payment Type possible values are:

  • LOOSE

  • STRICT

Definition:

  • LOOSE: Expiry depends on processor rules

  • STRICT: Expiry depends on merchant rules

Applicable only for Payment Method Type CARD and EWALLET

expiryAt

String

-

O

Session expired time set by merchant with format YYYY-MM-DDTHH:MM:SSZ. The default expiration time is 15 mins. For Payment Type = MULTIPLE, don't necessarily send the Expiry At value

recurringId

String

-

C

Unique Recurring Reference Applicable for subscription and automated billing integration

initiateFirstAuthorization

Boolean

-

C

Perform first authorization for new and updated Card information detail

Applicable for subscription and automated billing integration

Possible values are:

  • true

  • false

metadata

Object

-

O

Free object for merchant to store any extra information about the payment session

Response

Payment UI

Pivot's Payment UI

Card Payment Method

Pivot's Payment Redirection
Merchant's customized Payment Page — Card Encryption
Save Card with Pivot's Payment Redirection (Card Tokenization)

Initiation

Use Tokenized Card

Save Card with Merchant's customized Payment Page (Card Tokenization)

Initiation

Use Tokenized Card

Subscription and Automated Billing (Recurring)

First Authorization

Subsequent Transaction (Merchant managed scheduler)

Virtual Account Payment Method

Pivot's Payment Redirection
Merchant's customized Payment Page
Virtual Account Static with Merchant's customized Payment Page

QR Payment Method

Pivot's Payment Redirection
Merchant's customized Payment Page
QR Static with Merchant's customized Payment Page

E-Wallet Payment Method

Pivot's Payment Redirection
Merchant's customized Payment Page

Detail Parameter Response

Parameter
Data Type
Requirement
Description

Payment Session

Object

M

Last updated