# Payment Method Options Object

```json
{
  "id": "ea35b4d0-79fc-461b-84a0-a4e8e64eecd9",
  "card": {
    "captureMethod": "automatic", // "MANUAL" for Capture later
    "threeDsMethod": "CHALLENGE", // "NEVER" for Non 3DS, "EXTERNAL" for using own MPI
    "processingConfig": {
      "bankMerchantId": null,
      "merchantIdTag": null
    },
    "threeDsInfo": { // Applicable for `threeDsMethod` = EXTERNAL
      "transactionId": "019b9cd3-72ea-7e13-a6e6-1bffcd279195",
      "threeDsVersion": "2.2.0",
      "eci": "05",
      "transactionStatus": "Y",
      "authenticationScheme": "VISA",
      "acsTransactionId": "223e4567-e89b-12d3-a456-426614174999",
      "acsReference": "ACS_REF_001",
      "authenticationTime": "2026-04-20T23:59:59Z",
      "mcc": "7399"
    },
    "cardOnFile": { // Recurring Payment for Network Token Authorization
      "initiator": "CUSTOMER",
      "type": "SCHEDULED",
      "previousNetworkTransactionId": "12345678901"
    },
    "installment": null
  },
  "virtualAccount": {
    "channel": "BRI",
    "virtualAccountName": "Reforza Pivot",
    "virtualAccountNumber": "999996",
    "expiryAt": "2025-03-30T23:59:05Z"
  },
  "ewallet": {
    "channel": "DANA",
    "expiryAt": "2025-03-30T23:59:05Z"
  },
  "qr": {
    "expiryAt": "2025-03-30T23:59:05Z"
  }
}
```

**Detail Payment Method Options Object**

<table><thead><tr><th width="233.41796875">Parameter</th><th width="118.26171875">Data Type</th><th>Character Limit</th><th width="132.1171875">Requirement</th><th width="243.04296875">Description</th></tr></thead><tbody><tr><td>id</td><td>String</td><td>-</td><td>O</td><td>Identifier for stored preset payment method options</td></tr><tr><td>card</td><td>Object</td><td>-</td><td>O</td><td>Cards Payment Options, Mandatory if payment method types selected is CARDS</td></tr><tr><td><ul><li>captureMethod</li></ul></td><td>String</td><td>-</td><td>O</td><td><p>If merchant wanted to manually capture, possible values:</p><ul><li>automatic</li><li>manual</li></ul></td></tr><tr><td><ul><li>threeDsMethod</li></ul></td><td>String</td><td>-</td><td>O</td><td><p>We will try to provide options for three_ds later, possible values: </p><ul><li>AUTOMATIC (DEFAULT)</li><li>NEVER</li><li>CHALLENGE</li><li>EXTERNAL</li></ul></td></tr><tr><td><ul><li>processingConfig</li></ul></td><td>Object</td><td>-</td><td>O</td><td>Only for Facilitator model, to pass the bank MID they want to route this transaction to</td></tr><tr><td><blockquote><ul><li> bankMerchantId</li></ul></blockquote></td><td>String</td><td>0-50</td><td>C</td><td></td></tr><tr><td><blockquote><ul><li> merchantIdTag</li></ul></blockquote></td><td>String</td><td>0-50</td><td>C</td><td></td></tr><tr><td><ul><li>threeDsInfo</li></ul></td><td>Object</td><td>-</td><td>C</td><td>Applicable for <mark style="color:orange;"><code>threeDsMethod</code></mark> = EXTERNAL</td></tr><tr><td><blockquote><ul><li>transactionId</li></ul></blockquote></td><td>String</td><td>1-50</td><td>M</td><td>Unique Transaction ID from authentication result</td></tr><tr><td><blockquote><ul><li>threeDsVersion</li></ul></blockquote></td><td>String</td><td>1-20</td><td>M</td><td>Indicates the 3DS version</td></tr><tr><td><blockquote><ul><li>eci</li></ul></blockquote></td><td>String</td><td></td><td>M</td><td><p></p><p>Possible values are: </p><ul><li>01</li><li>02</li><li>05</li><li>06</li><li>07</li></ul></td></tr><tr><td><blockquote><ul><li>transactionStatus</li></ul></blockquote></td><td>String</td><td></td><td>M</td><td><p>Possible values are: </p><ul><li>Y —  Authentication / Account verification successful</li><li>N — Not authenticated / Account not verified; Transaction denied</li><li>U —  Authentication / Account verification could not be performed; technical or other problem</li><li>A —  Attempts processing performed; Not authenticated / verified, but a proof of attempt<br>authentication / verification is provided</li><li>R —  Authentication / Account verification Rejected. Issuer is rejecting authentication / verification<br>and request that authorization not be attempted</li></ul><p><br></p></td></tr><tr><td><blockquote><ul><li>authenticationScheme</li></ul></blockquote></td><td>String</td><td></td><td>M</td><td><p></p><p>Card Principal possible values are: </p><ul><li>VISA</li><li>MASTERCARD</li><li>JCB</li><li>AMEX</li><li>UNIONPAY</li></ul></td></tr><tr><td><blockquote><ul><li>acsTransactionId</li></ul></blockquote></td><td>String</td><td>0-36</td><td>O</td><td></td></tr><tr><td><blockquote><ul><li>acsReference</li></ul></blockquote></td><td>String</td><td>0-32</td><td>O</td><td></td></tr><tr><td><blockquote><ul><li>authenticationTime</li></ul></blockquote></td><td>String</td><td></td><td>O</td><td>Authentication Time with format YYYY-MM-DDTHH:MM:SSZ.</td></tr><tr><td><blockquote><ul><li>mcc</li></ul></blockquote></td><td>String</td><td></td><td>O</td><td>Merchant Category Code</td></tr><tr><td><ul><li>cardOnFile</li></ul></td><td>Object</td><td>-</td><td>C</td><td>Recurring Payment for Network Token Authorization</td></tr><tr><td><blockquote><ul><li>initiator</li></ul></blockquote></td><td>String</td><td></td><td>M</td><td><p>Initiator possible values are: </p><ul><li>CUSTOMER — Cardholder is present / active (CIT); first subscription signup</li><li>MERCHANT — System-triggered, no cardholder involvement (MIT); monthly recurring charge</li></ul></td></tr><tr><td><blockquote><ul><li>type</li></ul></blockquote></td><td>String</td><td></td><td>M</td><td><p></p><p>Type possible values are: </p><ul><li>SCHEDULED — fixed amount at fixed intervals (Monthly subscription)</li><li>UNSCHEDULE — variable amount or non-fixed intervals (e.g., auto top-up)</li><li>INSTALLMENT — fixed number of charges splitting a single purchase</li></ul></td></tr><tr><td><blockquote><ul><li>previousNetworkTransactionId</li></ul></blockquote></td><td>String</td><td></td><td>C</td><td><p>Mandatory if initiator = <mark style="color:orange;"><code>MERCHANT</code></mark> </p><p></p><p>Network transaction ID from the original CIT, chained into all subsequent MITs.</p></td></tr><tr><td><ul><li>installment</li></ul></td><td>Object</td><td>-</td><td>O</td><td><a data-mention href="/pages/ulOZlQDuE00onDtqfW6u">/pages/ulOZlQDuE00onDtqfW6u</a></td></tr><tr><td>virtualAccount</td><td>Object</td><td>-</td><td>O</td><td></td></tr><tr><td><ul><li>channel</li></ul></td><td>String</td><td>1-100</td><td>O</td><td><p>Virtual Account Bank Name, possible values are </p><ul><li>DANAMON</li><li>BNI</li><li>MANDIRI</li><li>BSI</li><li>BCA</li><li>BNC</li><li>CIMB</li><li>BRI</li><li>MANDIRI</li><li>etc</li></ul></td></tr><tr><td><ul><li>virtualAccountName</li></ul></td><td>String</td><td>0-100</td><td>O</td><td><p>All Virtual Account Name will use merchant short name</p><p><br></p><p>For some banks that can perform custom name, this field will be used</p></td></tr><tr><td><ul><li>virtualAccountNumber</li></ul></td><td>String</td><td>0-100</td><td>O</td><td><p>The corresponding virtual account number that can be used by Customers to send payments to</p><p></p><p>If merchants want to have their custom number they can pass this field within Static configuration range number in Dashboard<br><br>Default Static Range: <a data-mention href="/spaces/bRczl3VT35wkmuP4KTzZ/pages/YOadciNEUaHvDWxnJvSY">/spaces/bRczl3VT35wkmuP4KTzZ/pages/YOadciNEUaHvDWxnJvSY</a></p></td></tr><tr><td><ul><li>expiryAt</li></ul></td><td>String</td><td>-</td><td>C</td><td><p>VA expiration time</p><p></p><p>format YYYY-MM-DDTHH:MM:SSZ<br><br>For Payment Type = <mark style="color:orange;"><code>MULTIPLE</code></mark>, don't necessarily send the Expiry At value</p></td></tr><tr><td>ewallet</td><td>Object</td><td>-</td><td>O</td><td></td></tr><tr><td><ul><li>channel</li></ul></td><td>String</td><td>-</td><td>O</td><td><p>Ewallet channel, possible values are </p><ul><li>DANA</li><li>SHOPEEPAY</li><li>OVO</li></ul></td></tr><tr><td><ul><li>expiryAt</li></ul></td><td>String</td><td>-</td><td>M</td><td><p>Payment expiration time</p><p></p><p>format YYYY-MM-DDTHH:MM:SSZ</p></td></tr><tr><td>qr</td><td>Object</td><td>-</td><td>O</td><td></td></tr><tr><td><ul><li>expiryAt</li></ul></td><td>String</td><td>-</td><td>C</td><td><p>Payment expiration time</p><p></p><p>format YYYY-MM-DDTHH:MM:SSZ<br><br>For Payment Type = <mark style="color:orange;"><code>MULTIPLE</code></mark>, don't necessarily send the Expiry At value</p></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-method-options-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.
