# Payment Simulation

## Simulate via API

### Method and URL

<mark style="color:green;">`POST`</mark> <https://api-stg.pivot-payment.com/v2/payments/simulations>

{% hint style="info" %}
Applicable only for "QRIS",  "Virtual Account", and "E-Wallet" Payment Methods in the Testing environment
{% endhint %}

### Request

**Request Body**

```json
{
  "paymentSessionId": "c09ec1fd-e19e-4a84-ba1e-0b4a8f6283ee",
  "chargeStatus": "SUCCESS",
  "amount": {
    "value": 10000,
    "currency": "IDR"
  }
}
```

**Detail Parameter Request**

<table><thead><tr><th>Parameter</th><th width="132.98046875">Data Type</th><th width="119.09375">Requirement</th><th>Description</th></tr></thead><tbody><tr><td>paymentSessionId</td><td>String</td><td>M</td><td>Payment session ID</td></tr><tr><td>chargeStatus</td><td>String</td><td>M</td><td><p>Possible values: </p><ol><li>SUCCESS</li><li>EXPIRED</li></ol></td></tr><tr><td>amount</td><td>Object</td><td>C</td><td><p><a data-mention href="/pages/Foeq3eyfnM9O2anL1Vby">/pages/Foeq3eyfnM9O2anL1Vby</a></p><p>Mandatory if Payment Type is <mark style="color:orange;"><code>MULTIPLE</code></mark></p></td></tr></tbody></table>

### Response

**Response Body**

```json
{
  "code": "00",
  "message": "Success",
  "data": {
    "updated": "true"
  }
}
```

**Detail Parameter Response**

<table><thead><tr><th width="210.4765625">Parameter</th><th width="119.98046875">Data Type</th><th width="137.9453125">Requirement</th><th>Description</th></tr></thead><tbody><tr><td>updated</td><td>Boolean</td><td>M</td><td></td></tr></tbody></table>

## Simulate via Dashboard

### Cards

<table><thead><tr><th width="246.3125">Scenario</th><th>Need Mock 3DS</th><th width="191.65625">Visa</th><th width="190.26953125">Mastercard</th><th width="190.578125">JCB</th></tr></thead><tbody><tr><td>Charge Success - 3DS (Frictionless)</td><td>No</td><td>4440000112200001</td><td>5550000112230001</td><td>3550000112280001</td></tr><tr><td>Charge Success - 3DS &#x26; Non 3DS (Challege &#x26; Never)</td><td>Yes</td><td>4440000112290002</td><td>5550000112220002</td><td>3550000112270002</td></tr><tr><td>DECLINED_BY_CHANNEL -  The transaction was declined by the channel</td><td>Yes</td><td>4440000334480001</td><td>5550000334410001</td><td>3550000334460001</td></tr><tr><td>DECLINED_BY_CHANNEL - The transaction was declined by the issuer due to the card has already expired</td><td>Yes</td><td>4440000334470002</td><td>5550000334400002</td><td>3550000334450002</td></tr><tr><td>DECLINED_BY_CHANNEL - The transaction was declined by the issuer due to the submitted CVV is invalid</td><td>Yes</td><td>4440000334460003</td><td>5550000334490003</td><td>3550000334440003</td></tr><tr><td>INVALID_ACCOUNT - The transaction was declined by the issuer due to the card being marked as invalid</td><td>Yes</td><td>4440000334450004</td><td>5550000334480004</td><td>3550000334430004</td></tr><tr><td>AUTHENTICATION_FAILED - The 3DS attempt was rejected by the issuer</td><td>Yes</td><td>4440000334440005</td><td>5550000334470005</td><td>3550000334420005</td></tr><tr><td>SUSPECTED_FRAUD - The transaction was declined by the issuer due to the card being marked as stolen or potential fraud</td><td>Yes</td><td>4440000334430006</td><td>5550000334460006</td><td>3550000334410006</td></tr><tr><td>SUSPECTED_FRAUD - The transaction was declined by channel due to the account being blocked or suspected as fraud</td><td>Yes</td><td>4440000334420007</td><td>5550000334450007</td><td>3550000334400007</td></tr><tr><td>BLOCKED_BY_FDS - The transaction was declined by FDS due to the transactions being categorized as high risk</td><td>Yes</td><td>4440000334410008</td><td>5550000334440008</td><td>3550000334490008</td></tr><tr><td>REQUIRE_REVIEW - The transaction was deferred by FDS due to the transactions being categorized as suspicious</td><td>Yes</td><td>4440000334400009</td><td>5550000334430009</td><td>3550000334480009</td></tr><tr><td>INSUFFICIENT_FUND - The transaction was declined by the issuer due to credit limit or balance is not sufficient</td><td>Yes</td><td>4440000334470010</td><td>5550000334400010</td><td>3550000334450010</td></tr><tr><td>CHANNEL_UNAVAILABLE - The transaction failed due to the issuer being unavailable or having a system malfunction</td><td>Yes</td><td>4440000334460011</td><td>5550000334490011</td><td>3550000334440011</td></tr><tr><td>CANCELLED_BY_USER - The 3DS attempt was cancelled by the cardholder</td><td>Yes</td><td>4440000334450012</td><td>5550000334480012</td><td>3550000334430012</td></tr><tr><td>Foreign Card - Requires Billing Address</td><td>Yes</td><td>4448100334430014</td><td>5558100334460014</td><td>3558100334410014</td></tr></tbody></table>

### E-Wallet

| Phone Number | OTP    | Payment Status | Charge Status |
| ------------ | ------ | -------------- | ------------- |
| 08111111001  | 000000 | PAID           | SUCCESS       |
| 08111111002  | 000000 | PROCESSING     | PROCESSING    |
| 08111111003  | 000000 | CANCELLED      | FAILED        |
| 08111111004  | 000000 | EXPIRED        | EXPIRED       |

### QRIS & Virtual Account

Link Simulation:

<https://dashboard-stg.pivot-payment.com/simulation/payment/{base64> encode from Payment Session ID}

## AVS Simulation

{% hint style="info" %}
Any AVS <mark style="color:orange;">`gatewayCode`</mark> result will not void the transaction. If the Issuing bank has been approved
{% endhint %}

<table><thead><tr><th width="343.1650390625">Address Line</th><th>AVS gatewayCode Result</th></tr></thead><tbody><tr><td>Alpha Street</td><td>SERVICE_NOT_AVAILABLE_RET</td></tr><tr><td>Bravo Street</td><td>NOT_AVAILABLE</td></tr><tr><td>Charlie Street</td><td>DEFERRED_TRANSACTION_RECE</td></tr><tr><td>Delta Street</td><td>NO_MATCH</td></tr><tr><td>Echo Street</td><td>ZIP_MATCH</td></tr><tr><td>Foxtrot Street</td><td>ADDRESS_MATCH</td></tr><tr><td>Golf Street</td><td>ADDRESS_ZIP_MATCH</td></tr><tr><td>Hotel Street</td><td>NAME_MATCH</td></tr><tr><td>India Street</td><td>NAME_ZIP_MATCH</td></tr><tr><td>Juliett Street</td><td>NAME_ADDRESS_MATCH</td></tr><tr><td>Kilo Street</td><td>SERVICE_NOT_SUPPORTED</td></tr><tr><td>Lima Street</td><td>NOT_REQUESTED</td></tr><tr><td>Mike Street</td><td>NOT_VERIFIED</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/payment-simulation.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.
