# 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": {
          "acquirerReferenceNumber": "123456789",
          "retrievalReferenceNumber": "TRXCC7c364322b98717507589132",
          "stan": "104539",
          "avsResult": "",
          "cvvResult": "",
          "authorizedAmount": {
            "value": 10001,
            "currency": "IDR"
          },
          "issuerAuthorizationCode": "00"
        },
        "authorizationCode": null,
        "networkTransactionId": null,
        "merchantAdviceCode": null
      },
      "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>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://pivot-payment.gitbook.io/pivot-docs/api-references/api-lists/payments/object/payment-session-object.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
