> For the complete documentation index, see [llms.txt](https://pivot-payment.gitbook.io/pivot-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://pivot-payment.gitbook.io/pivot-docs/api-references/api-lists/payments/object/payment-session-object.md).

# Payment Session Object

```json
{
  "id": "bca0b57a-391e-4f6f-bfef-8cd37492ee5b",
  "clientReferenceId": "1750758552",
  "amount": {
    "value": 10001,
    "currency": "IDR"
  },
  "autoConfirm": true,
  "mode": "REDIRECT",
  "bypassStatusPage": false,
  "redirectUrl": {
    "successReturnUrl": "https://merchant.com/success",
    "failureReturnUrl": "https://merchant.com/failed",
    "expirationReturnUrl": "https://merchant.com/expired"
  },
  "paymentType": "SINGLE",
  "paymentMethod": {
    "type": "CARD"
  },
  "statementDescriptor": "Reforza Pivot",
  "expirationMode": "STRICT",
  "recurringId": "019d9570-eca8-706c-9bf8-e7c2dff99e39",
  "initiateFirstAuthorization": true,
  "saveForFutureUse": false,
  "showSavedPayment": false,
  "status": "PAID",
  "investigationStatus": null,
  "createdAt": "2025-03-30T05:48:17.0549468Z",
  "updatedAt": "2025-03-30T05:48:17.103243713Z",
  "expiryAt": "2025-03-31T23:59:05Z",
  "encryptionKey": "Eykc6QYeUuG5aKcPMrUsaZq0bWWCGLJY",
  "paymentUrl": "https://payment.pivot-payment.com/detail?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1dWlkIjoiN2Y2NWM3NTctMzU1Zi00NjQ1LWFjMTQtMDI4YjM0YWI1MWIxIiwiaXNzIjoiYmFja2VuZC1wb3J0YWwiLCJleHAiOjE3NDM0NjU1NDV9.55-QdvI0xVtivNLJzREPDGzUbqFNEj7ouFUCvrzAIbw",
  "chargeDetails": [
    {
      "id": "cf2842f4-e263-4643-8bc9-af682a5060cd",
      "paymentSessionId": "bca0b57a-391e-4f6f-bfef-8cd37492ee5b",
      "paymentSessionClientReferenceId": "1750758552",
      "amount": {
        "value": 10001,
        "currency": "IDR"
      },
      "statementDescriptor": "Reforza Pivot",
      "status": "SUCCESS",
      "authorizedAmount": {
        "value": 10001,
        "currency": "IDR"
      },
      "capturedAmount": {
        "value": 10001,
        "currency": "IDR"
      },
      "isCaptured": true,
      "createdAt": "2025-06-24T09:49:12.861006Z",
      "updatedAt": "2025-06-24T09:56:40.020691Z",
      "paidAt": "2025-06-24T09:56:39Z",
      "fdsRiskAssessment": {
        "score": "0",
        "level": "very low",
        "recommendation": "Approve",
        "status": "PASSED",
        "evaluatedAt": "2025-06-24T09:56:39.411921983Z"
      },
      "card": {
        "first6": "999999",
        "first8": "99999966",
        "last4": "0001",
        "expMonth": "01",
        "expYear": "39",
        "fingerprint": "03765362-4f67-41c6-a6c7-4a7520dcbc36",
        "binInformations": {
          "type": "DEBIT",
          "issuingBank": "BRI",
          "brand": "VISA",
          "country": "ID"
        },
        "authenticationResult": {
          "threeDsVersion": "2.2.0",
          "threeDsResult": "AUTHENTICATION_SUCCESSFUL",
          "threeDsMethod": "",
          "eciCode": "02"
        },
        "authorizationResult": {
          "networkTransactionId": "",
          "acquirerReferenceNumber": "123456789",
          "retrievalReferenceNumber": "TRXCC7c364322b98717507589132",
          "stan": "104539",
          "avsResult": "",
          "cvvResult": "",
          "authorizedAmount": {
            "value": 10001,
            "currency": "IDR"
          },
          "issuerAuthorizationCode": "00",
          "merchantAdviceCode": "01"
        },
        "approvalCode": "869016",
        "isNetworkToken": false
      },
      "captureHistories": [
        {
          "captureId": "019c0862-dc89-73d6-b8f1-d790847b09ee",
          "currency": "IDR",
          "capturedAmount": 10001,
          "status": "SUCCESS",
          "createdAt": "2026-01-29T06:13:42Z"
        }
      ]
    }
  ],
  "customerId": "999966660001",
  "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"
        }
      }
    },
    "storedPaymentMethods": [
      {
        "token": "020027de-134e-45ed-8f0d-7ae0506a7133",
        "paymentMethod": "CARD",
        "paymentChannel": "VISA",
        "createdAt": "2025-09-02T06:02:59.141590124Z",
        "status": "ACTIVE",
        "card": {
          "fingerprint": "0198edcf-87a0-73fd-b937-7ec4b0ddb9c6",
          "network": "VISA",
          "first6": "444000",
          "first8": "44400001",
          "last4": "0002",
          "expMonth": "01",
          "expYear": "39",
          "cardHolderFirstName": "Reforza Jordan",
          "cardHolderLastName": "Geotama"
        }
      },
      {
        "token": "bicbiweu63c",
        "paymentMethod": "ewallet",
        "paymentChannel": "dana",
        "createdAt": "2024-03-15T09:37:00Z",
        "status": "ACTIVE"
      }
    ]
  },
  "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"
      }
    }
  },
  "cancelledAt": null,
  "cancellationReason": null,
  "metadata": {
    "invoiceNo": "INV001"
  }
}
```

**Detail Payment Session Object**

<table><thead><tr><th width="232.91015625">Parameter</th><th width="111.90234375">Data Type</th><th width="123.6318359375">Character Limit</th><th width="119.61328125">Requirement</th><th width="240.0888671875">Description</th></tr></thead><tbody><tr><td>id</td><td>String</td><td>-</td><td>Auto Generated</td><td>Unique ID of a payment session, generated by Pivot</td></tr><tr><td>clientReferenceId</td><td>Alphanumeric</td><td>1-100</td><td>M</td><td>Unique Payment Reference from Merchant's Request</td></tr><tr><td>amount</td><td>Object</td><td>-</td><td>M</td><td><a data-mention href="/pages/Foeq3eyfnM9O2anL1Vby">/pages/Foeq3eyfnM9O2anL1Vby</a><br>Total Payment amount</td></tr><tr><td>autoConfirm</td><td>Boolean</td><td>-</td><td>O</td><td><p>Default to true</p><p><br>If the confirmation method is set to false. Then clients need to hit the /confirm endpoint</p></td></tr><tr><td>mode</td><td>String</td><td>-</td><td>O</td><td><p>Default to REDIRECT</p><p></p><p>Payment Session mode. Possible values are: </p><ul><li>REDIRECT will return redirectUrl</li><li>API</li></ul></td></tr><tr><td>bypassStatusPage</td><td>Boolean</td><td>-</td><td>O</td><td><p>Bypass Pivot's Status Page after your customer completing the Payment, directly redirect to your URLs</p><p></p><p>Default to false, applicable only for <mark style="color:orange;"><code>REDIRECT</code></mark> mode<br><br>Possible values are:</p><ul><li>true</li><li>false</li></ul></td></tr><tr><td>redirectUrl</td><td>Object</td><td>-</td><td>M</td><td><a data-mention href="/pages/S8SLvqfKIqgU91J1gRyS">/pages/S8SLvqfKIqgU91J1gRyS</a><br><br>URL for redirection</td></tr><tr><td>paymentType</td><td>String</td><td>-</td><td>O</td><td><p>Default to SINGLE</p><p></p><p>Payment Type possible values are:</p><ul><li>SINGLE</li><li>MULTIPLE</li></ul><p></p><p>Definition:</p><ul><li><mark style="color:orange;"><code>SINGLE</code></mark>: Payment Session can only be charged once</li><li><mark style="color:orange;"><code>MULTIPLE</code></mark>: Payment Session can be charged multiple times, and Payment Session Status is always <mark style="color:orange;"><code>Active</code></mark></li></ul><p><br>Applicable only for Payment Method Type <mark style="color:orange;"><code>QR</code></mark> and <mark style="color:orange;"><code>VIRTUAL_ACCOUNT</code></mark></p></td></tr><tr><td>paymentMethod</td><td>Object</td><td>-</td><td>O</td><td><a data-mention href="/pages/yLhv0LHOksPwPOX2zgF3">/pages/yLhv0LHOksPwPOX2zgF3</a></td></tr><tr><td>statementDescriptor</td><td>String</td><td>0-20</td><td>O</td><td><p>Default = Merchant’s short name</p><p></p><p>Statement descriptors allow a maximum 20 characters for all the concatenated characters (including space). </p><p></p><p>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.</p></td></tr><tr><td>expirationMode</td><td>String</td><td>-</td><td>O</td><td><p>Default to LOOSE</p><p></p><p>Payment Type possible values are:</p><ul><li>LOOSE</li><li>STRICT</li></ul><p></p><p>Definition:</p><ul><li><mark style="color:orange;"><code>LOOSE</code></mark>: Expiry depends on processor rules</li><li><mark style="color:orange;"><code>STRICT</code></mark>: Expiry depends on merchant rules</li></ul><p><br>Applicable only for Payment Method Type <mark style="color:orange;"><code>CARD</code></mark> and <mark style="color:orange;"><code>EWALLET</code></mark></p></td></tr><tr><td>recurringId</td><td>String</td><td>-</td><td>C</td><td>Unique Recurring Reference<br><br>Applicable for subscription and automated billing integration</td></tr><tr><td>initiateFirstAuthorization</td><td>Boolean </td><td>-</td><td>C</td><td><p>Perform first authorization for new and updated Card information detail<br></p><p>Applicable for subscription and automated billing integration<br></p><p>Possible values are:</p><ul><li>true</li><li>false</li></ul></td></tr><tr><td>saveForFutureUse</td><td>Boolean</td><td>-</td><td>O</td><td><p>Store Payment Information detail in Token format in <a data-mention href="/pages/lkA57A4pSG5HfyjfuzJr">/pages/lkA57A4pSG5HfyjfuzJr</a> for <mark style="color:orange;"><code>CARD</code></mark> &#x26; <mark style="color:orange;"><code>EWALLET</code></mark>  Payment method whenever the charge is <mark style="color:orange;"><code>SUCCESS</code></mark></p><p></p><p>Default to false<br><br>Possible values are:</p><ul><li>true</li><li>false</li></ul></td></tr><tr><td>showSavedPayment</td><td>Boolean</td><td>-</td><td>O</td><td><p>Show saved Payment Information for <mark style="color:orange;"><code>CARD</code></mark> &#x26; <mark style="color:orange;"><code>EWALLET</code></mark>  Payment method in Payment Redirection</p><p></p><p>Default to false, applicable only for <mark style="color:orange;"><code>REDIRECT</code></mark> mode<br><br>Possible values are:</p><ul><li>true</li><li>false</li></ul></td></tr><tr><td>status</td><td>String</td><td>-</td><td>Auto Generated</td><td><a data-mention href="/pages/W7VTq1fdG0erpZwAANlU">/pages/W7VTq1fdG0erpZwAANlU</a></td></tr><tr><td>investigationStatus</td><td>String</td><td>-</td><td>C</td><td><p>Applicable for the merchant who is eligible for Settlement Guarantee Program</p><p></p><p>Investigation Status:</p><ul><li><mark style="color:orange;"><code>INVESTIGATION_IN_PROCESS</code></mark> : Validating to our Bank Partner</li><li><mark style="color:orange;"><code>INVESTIGATION_SUCCESS</code></mark> : Final Payment Status in our Bank Partner is <mark style="color:orange;"><code>SUCCESS</code></mark> </li><li><mark style="color:orange;"><code>INVESTIGATION_FAILED</code></mark> : Final Payment Status in our Bank Partner <mark style="color:orange;"><code>FAILED</code></mark></li></ul></td></tr><tr><td>createdAt</td><td>String</td><td>-</td><td>Auto Generated</td><td>Session created time with format YYYY-MM-DDTHH:MM:SSZ</td></tr><tr><td>updatedAt</td><td>String</td><td>-</td><td>Auto Generated</td><td>Session latest updated time with format YYYY-MM-DDTHH:MM:SSZ</td></tr><tr><td>expiryAt</td><td>String</td><td>-</td><td>O</td><td>Session expired time set by merchant with format YYYY-MM-DDTHH:MM:SSZ. The default expiration time is 15 mins.<br><br>For Payment Type = <mark style="color:orange;"><code>MULTIPLE</code></mark>, don't necessarily send the Expiry At value</td></tr><tr><td>encryptionKey</td><td>String</td><td>-</td><td>C</td><td><p>Only if :</p><ul><li><mark style="color:orange;"><code>paymentMethod.type</code></mark> = CARD</li><li><mark style="color:orange;"><code>mode</code></mark> = API</li><li><mark style="color:orange;"><code>autoConfirm</code></mark> = false</li></ul><p>To be used as Encryption of Customer's Card Information in Merchant FE</p></td></tr><tr><td>paymentUrl</td><td>String</td><td>-</td><td>C</td><td><p>Only If mode = REDIRECT<br></p><p>Pivot will generate a Payment URL for merchant to redirect their user to the page<br></p></td></tr><tr><td>chargeDetails</td><td>Array of object</td><td>-</td><td>Auto Generated</td><td><p><a data-mention href="/pages/aOBQzB2jzHoffHidS87v">/pages/aOBQzB2jzHoffHidS87v</a></p><p></p><p>Charged payments related to the payment session</p></td></tr><tr><td>customerId</td><td>String</td><td>0-255</td><td>O</td><td>Auto generated based on email as the unique identifier</td></tr><tr><td>customer</td><td>Object</td><td>-</td><td>M</td><td><a data-mention href="/pages/lkA57A4pSG5HfyjfuzJr">/pages/lkA57A4pSG5HfyjfuzJr</a><br><br>Customer Information</td></tr><tr><td>orderInformation</td><td>Object</td><td>-</td><td>M</td><td><a data-mention href="/pages/VPbA2N3A4KfXIcUYnAtT">/pages/VPbA2N3A4KfXIcUYnAtT</a><br><br>Order Information</td></tr><tr><td>cancelledAt</td><td>String</td><td>-</td><td>Auto Generated</td><td>Session cancellation time with format YYYY-MM-DDTHH:MM:SSZ</td></tr><tr><td>cancellationReason</td><td>String</td><td>-</td><td>O</td><td><p>Reason of cancellation, either provided by merchants or by Pivot System. Possible values</p><ul><li>REQUESTED_BY_CUSTOMER - cancellation by end-customer</li><li>DUPLICATED - cancellation because of duplicated payment session</li><li>VOID_SESSION - cancellation by Merchant</li><li>CHARGE_FAILED - Session cancelled because user payment is rejected</li><li>FRAUDULENT - Session cancelled due to transaction marked as fraud</li></ul></td></tr><tr><td>metadata</td><td>Object</td><td>-</td><td>O</td><td>Free object for merchant to store any extra information about the payment session</td></tr></tbody></table>
