> 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-method-options-object.md).

# 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>
