# Payment Object

```
{
  "id": "string",
  "clientReferenceId": "string",
  "amount": {
    "value": "decimal",
    "currency": "string"
  },
  "status": "string",
  "paymentMethod": "string",
  "createdAt": "datetime",
  "expiredAt": "datetime",
  "expiryAt": "datetime",
  "paymentLink": "string",
  "paymentMethodOptions": {
    "virtualAccount": {
      "issuer": "string",
      "virtualAccountName": "string",
      "virtualAccountNumber": "string",
      "virtualAccountTrxType": "string"
    },
    "qris": {
      "referenceNo": "string",
      "partnerReferenceNo": "string",
      "merchantName": "string",
      "qrContent": "string",
      "qrUrl": "string",
      "qrType": "string",
      "transactionDate": "datetime"
    },
    "card": {
      "bankMerchantId": "string",
      "cardData": {
        "cardBrand": "string",
        "cardType": "string",
        "countryCode": "string",
        "fingerprint": "string"
      }
    }
  },
  "customer": {
    "customerId": "string",
    "name": "string",
    "email": "string",
    "phone": "string",
    "metadata": "object"
  },
  "paymentItems": [
    {
      "itemId": "string",
      "name": "string",
      "description": "string",
      "qty": "int",
      "amount": {
        "value": "decimal",
        "currency": "string"
      }
    }
  ]
}
```

**Detail Payment Object**

<table><thead><tr><th>Requirement</th><th width="114">Data Type</th><th width="134">Requirement</th><th>Description</th></tr></thead><tbody><tr><td>id</td><td>String</td><td>M</td><td>Unique Transaction ID generated by Harsya</td></tr><tr><td>clientReferenceId</td><td>String</td><td>M</td><td>Merchant provided reference number for the payment</td></tr><tr><td>amount</td><td>Object</td><td>M</td><td>Total payment amount</td></tr><tr><td><ul><li>value</li></ul></td><td>Decimal</td><td>M</td><td>Payment amount with two decimal places. E.g., 10000.00</td></tr><tr><td><ul><li>currency</li></ul></td><td>String</td><td>M</td><td>Currency code in ISO 4217 format (e.g., USD, IDR)</td></tr><tr><td>status</td><td>String</td><td>M</td><td>Status of Payment transaction:<br>1. WAITING FOR PAYMENT<br>2. SUCCESS<br>3. FAILED<br>4. EXPIRED</td></tr><tr><td>paymentMethod</td><td>String</td><td>M</td><td><p>Payment method that selected by merchants, possible value are:</p><ol><li>VIRTUAL_ACCOUNT</li><li>QRIS</li><li>CREDIT_CARD</li></ol><p></p></td></tr><tr><td>createdAt</td><td>Datetime</td><td>M</td><td>Timestamp when Payment request is made in ISO 8601 format (e.g., 2023-12-31T23:59:59Z)</td></tr><tr><td>expiredAt</td><td>Datetime</td><td>M</td><td>Expiration time for the payment in ISO 8601 format (e.g., 2023-12-31T23:59:59Z)</td></tr><tr><td>expiryAt</td><td>Datetime</td><td>M</td><td>Expiration time for the payment in ISO 8601 format (e.g., 2023-12-31T23:59:59Z)</td></tr><tr><td>paymentLink</td><td>String</td><td>M</td><td>Payment UI link that is used for the payment page by the customer</td></tr><tr><td>paymentMethodOption</td><td>Object</td><td>M</td><td>Options for the payment method. Includes sub-fields for specific payment configurations</td></tr><tr><td><ul><li>virtualAccount</li></ul></td><td>Object</td><td>C</td><td>Virtual account-specific options response. Mandatory if paymentMethod = VIRTUAL_ACCOUNT</td></tr><tr><td>>> issuer</td><td>String</td><td>M</td><td>Issuer of the virtual account, list of issuer:<br>1. PERMATA<br>2. BRI<br>3. CIMB<br>4. BNC</td></tr><tr><td>>> virtualAccountName</td><td>String</td><td>M</td><td>Name to display in the Bank’s user interface</td></tr><tr><td>>> virtualAccountNumber</td><td>String</td><td>M</td><td>Complete 16 digits of Virtual Account Number</td></tr><tr><td>>> virtualAccountTrxType</td><td>String</td><td>M</td><td><p></p><p>Virtual Account Type:</p><ol><li>CLOSED_DYNAMIC</li></ol></td></tr><tr><td><ul><li>qris</li></ul></td><td>Object</td><td>C</td><td>qris-specific options response. Mandatory if paymentMethod = QRIS</td></tr><tr><td>>> referenceNo</td><td>String</td><td>M</td><td>Bank generated transaction reference number </td></tr><tr><td>>> partnerReferenceNo</td><td>String</td><td>M</td><td>Harsya generated transaction reference number </td></tr><tr><td>>> merchantName</td><td>String</td><td>M</td><td>Merchant descriptor name displayed on the transaction</td></tr><tr><td>>> qrContent</td><td>String</td><td>M</td><td>QR String, If qrContent is null then qrUrl must have value</td></tr><tr><td>>> qrUrl</td><td>String</td><td>M</td><td>QR URL for downloading QR Image</td></tr><tr><td>>> qrType</td><td>String</td><td>M</td><td><p>QRIS Type:</p><p>DYNAMIC</p></td></tr><tr><td>>> transactionDate</td><td>Datetime</td><td>M</td><td>Date when QRIS has been paid by Customer</td></tr><tr><td><ul><li>card</li></ul></td><td>Object</td><td>C</td><td>card-specific options response. Mandatory if paymentMethod = CREDIT_CARD</td></tr><tr><td>>> bankMerchantId</td><td>String</td><td>M</td><td><p>*only for facilitator merchants</p><p><br></p><p>If Merchant registered their own Bank Merchant ID on Harsya, Merchant can select which MID to use</p><p><br></p><p>Otherwise, this field will be ignored</p></td></tr><tr><td>>> cardData</td><td>Object</td><td>M</td><td></td></tr><tr><td>>>> cardBrand</td><td>String</td><td>M</td><td><p></p><p>Card network, possible values</p><ul><li>VISA</li><li>MASTERCARD</li><li>JCB</li><li>AMEX</li></ul></td></tr><tr><td>>>> cardType</td><td>String</td><td>M</td><td><p></p><p>Card type, possible values</p><ul><li>DEBIT</li><li>CREDIT</li><li>PREPAID</li></ul></td></tr><tr><td>>>> countryCode</td><td>String</td><td>M</td><td><p></p><p>Country of the issued cards, ISO 3166 aplha-2, example</p><ul><li>ID</li><li>SG</li><li>MY</li><li>TH</li></ul></td></tr><tr><td>>>> fingeprint</td><td>String</td><td>M</td><td>Card unique identifier</td></tr><tr><td>customer</td><td>Object</td><td>M</td><td>Customer information</td></tr><tr><td><ul><li>customerId</li></ul></td><td>String</td><td>M</td><td>Unique ID of the customer</td></tr><tr><td><ul><li>name</li></ul></td><td>String</td><td>M</td><td>Full name of the customer</td></tr><tr><td><ul><li>email</li></ul></td><td>String</td><td>M</td><td>Email address of the customer</td></tr><tr><td><ul><li>phone</li></ul></td><td>String</td><td>M</td><td>Phone number of the customer</td></tr><tr><td><ul><li>metadata</li></ul></td><td>Object</td><td>O</td><td></td></tr><tr><td>paymentItems</td><td>Array </td><td>O</td><td>List of items included in the payment</td></tr><tr><td><ul><li>itemId</li></ul></td><td>String</td><td>M</td><td>Unique identifier of the item</td></tr><tr><td><ul><li>name</li></ul></td><td>String</td><td>M</td><td>Name of the item</td></tr><tr><td><ul><li>description</li></ul></td><td>String</td><td>O </td><td>Description of the item</td></tr><tr><td><ul><li>qty</li></ul></td><td>Integer</td><td>M</td><td>Quantity of the item</td></tr><tr><td><ul><li>amount</li></ul></td><td>Object</td><td>M</td><td>Total payment amount</td></tr><tr><td>>> value</td><td>Decimal </td><td>M</td><td>Payment amount with two decimal places. E.g., 10000.00</td></tr><tr><td>>> currency</td><td>String</td><td>M</td><td>Currency code in ISO 4217 format (e.g., USD, IDR)</td></tr></tbody></table>
