Get Transaction Status API

Fetching transaction status for GoPay and GoPay Tokenization (non Pre-Auth) transaction

This section will describe how a merchant can fetch transaction status for GoPay and GoPay Tokenization (non-Pre Auth) transactions.

Path/{version}/debit/status
HTTP MethodPOST
Versionv1.0
SNAP Service Code55

Request Header

Field Name Field Type Mandatory Field Description
Content-type String M Media type of the resource, i.e. application/json
X-TIMESTAMP String M Client’s current local time in ISO-8601 format
X-SIGNATURE String M Created using symmetric signature HMAC_SHA512 algorithm
Authorization String M Represents access_token of a request; string starts with keyword “Bearer ” followed by access_token. Can get this token from Access Token B2B API response.
X-PARTNER-ID String M Unique identifier for caller
X-EXTERNAL-ID String M

Alphanumeric string. We suggest merchant to use UUID format. The value should be unique.
In case of timeout, merchant can do:

  1. Use this value in get status API to get status transaction or

  2. Retry this request with the same X-EXTERNAL-ID and request body to avoid creating duplicate transaction

CHANNEL-ID String M Mandatory field from Bank Indonesia that can take any value with correct format 5 digits numeric string
Content-type:application/json
X-TIMESTAMP:2024-03-19T14:30:00+07:00
X-SIGNATURE: da1fa417c72d6b91c257e01e54fac824
Authorization: Bearer gp9HjjEj813Y9JGoqwOeOPWbnt4CupvIJbU1Mmu4a11MNDZ7Sg5u9a
X-PARTNER-ID: BMRI
X-EXTERNAL-ID:12345678901234567890
CHANNEL-ID:12345

Request Body

Field Name Field Type Mandatory Field Description
originalReferenceNo String(64) C Transaction identifier on service provider system. For e.g: GopayOrderId

Note: either originalExternalId or OriginalReferenceNo need to be passed. If both fields have value, we will use originalReferenceNo as the main identifier.

originalExternalId String (36) C If merchant got a timeout when calling charge API (POST /v1.0/debit/payment-host-to-host), merchant can pass the value of X-EXTERNAL-ID in the charge API request header as originalExternalId.

Note: Either originalExternalId or OriginalReferenceNo need to be passed in refund request.

serviceCode String (2) M Transaction type indicator (service code of the original transaction request). For e.g: 54
{
    "originalExternalId": "merchant-order-id",
    "originalReferenceNo": "Gopay OrderId",
    "serviceCode": "54"
}

Response Header

Field Name Field Type Mandatory Field Description
Content-type String M Media type of the resource, i.e. application/json
X-TIMESTAMP String M Client’s current local time in ISO-8601 format
Content-type: application/json
X-TIMESTAMP: 2024-03-19T14:30:00+07:00

Response Body



Field Name Field Type Mandatory Field Description
responseCode String (7) M Error code to specify the error returned.
responseMessage String (150) M Debug message to provide more information.
originalPartnerReferenceNo String (64) O Original transaction identifier on service consumer system. (Merchant’s orderId)
originalExternalId String (32) O Original external identifier
originalReferenceNo String (64) M Transaction identifier on service provider system. For e.g: GopayOrderId
serviceCode String (2) M Transaction type indicator (service code of the original transaction request). \ \ For e.g: 54 , 58 which are serviceCode of Charge and Refund API
latestTransactionStatus String (2) M Possible Values:
  • 00 (Success)
  • 03 (Pending)
  • 04 (Refunded)
  • 05 (Canceled)
  • 06 (Failed)
  • 07 (Not found)
  • 08 (Expiry)
  • 09 (Rejected)


We will only return the numeric value on the API response. The text (...) is only the status code description and won't be returned in the actual response.

transAmount Object O Transaction Amount
transAmount.value String M Transaction amount value
transAmount.currency String M Currency, e.g: IDR
paidTime String C Update time of the individual transaction. The value will be returned for successful payment. Using ISO-8601 timestamp format
refundHistory Array of refund Object C
refundHistory.refundNo String M Transaction Identifier on Service Provider System
refundHistory.partnerReferenceNo String M ReferenceNumber from merchant for the refund.
refundHistory.refundStatus String M Refund status. Possible values:
- 00 --> Refund success
- 06 --> Refund failed
refundHistory.refundAmount Object M
refundHistory.refundAmount.value String M Net amount of the refund.
refundHistory.refundAmount.currency String M Currency
refundHistory.refundDate String M Refund trial date (ISO 8601)
additionalInfo Object O Additional Information if a merchant needs to use.
additionalInfo.fraudStatus String O Fraud status. Possible values:
- accept --> Transaction is safe to proceed. It is not considered as a fraud.
- deny --> Transaction is considered as fraud. It is rejected by Midtrans.
additionalInfo.validUpTo String(25) O The time when the payment will be automatically expired. Using ISO 8601 format
additionalInfo.payOptionDetails Array of Object M Payment option used by user.

This parameter will be deprecated soon. We encourage merchant to not consume this parameter and instead consume the parameter `additionalInfo.userPaymentDetails` instead.
additionalInfo.payOptionDetails.payMethod String M Payment method used by user. E.g: gopay
additionalInfo.payOptionDetails.payOption String M Payment option used by user. Possible value:
- GOPAY_WALLET = GoPay


- PAY_LATER = GoPay Later


- GOPAY_SAVINGS = GoPay Tabungan by Jago

additionalInfo.metadata Object O Transaction metadata
additionalInfo.userPaymentDetails Array of object M Payment option used by user.
additionalInfo.userPaymentDetails.payMethod String M Payment method used by user. E.g: gopay
additionalInfo.userPaymentDetails.payOption String M Payment option used by user.


Possible value:
- GOPAY_WALLET = GoPay


- PAY_LATER = GoPay Later


- GOPAY_SAVINGS = GoPay Tabungan by Jago

{
   "responseCode":"2005500",
   "responseMessage":"Request has been processed successfully",
   "originalPartnerReferenceNo": "merchant-order-id",
   "originalReferenceNo":"2020102977770000000009",
   "originalExternalId": "original-external-id",
   "serviceCode":"54",
   "latestTransactionStatus":"00",
   "transAmount":{
      "value":"112345678.00",
      "currency":"IDR"
   },
   "paidTime":"2023-05-15T14:56:11+07:00",
   "refundHistory":[
  	{
     	     	"refundNo":"96194816941239812",
     	     	"partnerReferenceNo":"239850918204981205970",
          		"refundAmount":{
          	   	     	"value":"12345678.00",
         	    	     	"currency":"IDR"
     	     	},
      			"refundStatus": "00",
     	     	"refundDate":"2020-12-23T07:44:16+07:00",
          		"reason":"Customer Complain"
  	}
   ],
   "additionalInfo":{ 
      "fraudStatus":"accept"  ,
       "validUpTo":"2023-07-03T10:36:17+07:00",
       “payOptionDetails” : [{
          "payMethod":"gopay",
          "payOption": "GOPAY_WALLET"
        }], 
        “userPaymentDetails” : [{
          "payMethod":"gopay",
          "payOption": "GOPAY_WALLET"
        }],
   “metadata” : {}
   }
}

List of Response code

Response Code HTTP Status Code Response Message
2005500 200 Success
4005502 400 Invalid Mandatory Field
4015500 401 Unauthorized.
4015501 401 Invalid Token (B2B)
5005501 500 Internal Server Error
5045500 504 Timeout

Fetching transaction status for GoPay QRIS transaction

This section will describe how a merchant can fetch transaction status for GoPay QRIS transactions.

Path/{version}/qr/qr-mpm-query
HTTP MethodPOST
Versionv1.0
SNAP Service Code51

Request Header

Field Name Field Type Mandatory Field Description
Content-type String M Media type of the resource, i.e. application/json
X-TIMESTAMP String M Client’s current local time in ISO-8601 format
X-SIGNATURE String M Created using symmetric signature HMAC_SHA512 algorithm
Authorization String M Represents access_token of a request; string starts with keyword “Bearer ” followed by access_token. Can get this token from Access Token B2B response.
X-PARTNER-ID String M Unique identifier for caller
X-EXTERNAL-ID String M

Alphanumeric string. We suggest merchant to use UUID format. The value should be unique.
In case of timeout, merchant can do:

  1. Use this value in get status API to get status transaction or

  2. Retry this request with the same X-EXTERNAL-ID and request body to avoid creating duplicate transaction

CHANNEL-ID String M Mandatory field from Bank Indonesia that can take any value with correct format 5 digits numeric string
Content-type:application/json
X-TIMESTAMP:2024-03-19T14:30:00+07:00
X-SIGNATURE:da1fa417c72d6b91c257e01e54fac824
Authorization:Bearer gp9HjjEj813Y9JGoqwOeOPWbnt4CupvIJbU1Mmu4a11MNDZ7Sg5u9a
X-PARTNER-ID:BMRI
X-EXTERNAL-ID:12345678901234567890
CHANNEL-ID:12345

Request Body

Field Name Field Type Mandatory Field Description
originalReferenceNo String(64) C Transaction identifier on service provider system. For e.g: GopayOrderId

Note: either originalExternalId or originalPartnerReferenceNo or OriginalReferenceNo need to be filled.

If all fields have value, originalReferenceNo will be taken as the main identifier, followed by originalPartnerReferenceNo and then originalExternalId

originalPartnerReferenceNo String(36) C partnerReferenceNo of the original transaction.
originalExternalId String(36) C This should be filled with the X-EXTERNAL-ID from header of the original create QR payment API - /{version}/qr/qr-mpm-generate
merchantId String(64) O Merchant id, we suggest to send this
serviceCode String (2) M Transaction type indicator (service code of the original transaction request). For e.g: 47
{
   "originalReferenceNo":"2020102977770000000009",
   "originalPartnerReferenceNo":"12345678901234567890",
   "originalExternalId":"12345678901234567890",
   "merchantId":"00007100010926",
   "serviceCode":"47"
}

Response Header

Field Name Field Type Mandatory Field Description
Content-type String M Media type of the resource, i.e. application/json
X-TIMESTAMP String M Client’s current local time in ISO-8601 format
Content-type:application/json
X-TIMESTAMP:2024-03-19T14:30:00+07:00

Response Body

undHistory
Field Name Field Type Mandatory Field Description
responseCode String(7) M Response code
responseMessage String(150) M Response description
originalExternalId String(36) C X-EXTERNAL-ID from header of the original create QR payment API - /{version}/qr/qr-mpm-generate
originalPartnerReferenceNo String(36) C partnerReferenceNo of the original transaction.
originalReferenceNo String(64) C Transaction identifier in GoPay system. \ \ The value will be returned for successful payment.
serviceCode String(2) M Transaction type indicator (service code of the original transaction request). \ \ For e.g: 47 , 77, 78 which are serviceCode of Payment, Cancel and Refund APIs
latestTransactionStatus String (2) M Status of the transaction.

Possible Values:

  • 00 (Success)
  • 03 (Pending)
  • 04 (Refunded)
  • 05 (Canceled)
  • 06 (Failed)
  • 07 (Not found)
  • 08 (Expiry)
  • 09 (Rejected)


    We will only return the numeric value on the API response. The text (...) is only the status code description and won't be returned in the actual response.

  • transactionStatusDesc String(50) O Transaction status description
    paidTime DateTime String O Transaction time
    amount Object O Amount object
    amount.value String(16,2) M Transaction amount
    amount.currency String(3) M Transaction currency
    terminalId String(16) O Merchant terminal id
    additionalInfo Object O Additional information
    refundHistory.refundStatus String M Refund status. Possible values:
    - 00 --> Refund success
    - 06 --> Refund failed
    Array of Object C Refund history associated with the transaction
    additionalInfo.refundHistory.reason String M Reason for the refund.
    additionalInfo.refundHistory.refundNo String M Refund transaction identifier on service provider system
    additionalInfo.refundHistory.partnerReferenceNo String M Unique identifier of refund transaction generated by the client.
    additionalInfo.refundHistory.refundDate String M Refund time. ISO 8601
    additionalInfo.refundHistory.refundAmount Object M Refund amount object
    additionalInfo.refundHistory.refundAmount.value String M Net amount of the refund.
    additionalInfo.refundHistory.refundAmount.currency String M Currency of the refund

    📘

    Expected Response

    As you can pass any value from : originalReferenceNo, or originalPartnerReferenceNo, or originalExternalID

    Here's the expected response for each scenario of acceptable values :

    1. originalReferenceNo, Midtrans will return originalReferenceNo
    2. originalPartnerReferenceNo, Midtrans will return originalPartnerReferenceNo + originalReferenceNo
    3. originalExternalID, Midtrans will return originalExternalID + originalReferenceNo

    In short, Midtrans will always return originalReferenceNo, for any successful trx.

    {
      "responseCode": "2005100",
      "responseMessage": "Request has been processed successfully",
      "originalReferenceNo": "2020102977770000000009",
      "originalPartnerReferenceNo":"12345678901234567890",
      "originalExternalId": "12345678901234567890",
      "serviceCode": "47",
      "latestTransactionStatus": "00",
      "transactionStatusDesc": "success",
      "paidTime": "2020-10-20T17:56:57",
      "amount": {
        "value": "12345678.00",
        "currency": "IDR"
      },
      "terminalId": "213141251124",
      "additionalInfo": {
        "refundHistory": [
            	{
                	"reason": "some-reason",
                	"refundNo": "A120240815023459htV0bgKH7TID",
                	"partnerReferenceNo": "1723689297",
                	"refundDate": "2024-08-15T09:34:59+07:00",
                  "refundStatus": "00",
                	"refundAmount": {
                    	"currency": "IDR",
                    	"value": "10.00"
                	}
            	}
        	]
      }
    }
    

    List of response code

    Response Code HTTP Status Code Response Message
    2005100 200 Success
    4005102 400 Invalid Mandatory Field
    4015100 401 Unauthorized.
    5005101 500 Internal Server Error
    5045100 504 Timeout


    Fetching transaction status for GoPay Tokenization (Pre Auth) transaction

    This section will describe how a merchant can fetch transaction status for GoPay Tokenization (Pre Auth) transactions.

    Path/{version}/auth/query
    HTTP MethodPOST
    Versionv1.0
    SNAP Service Code64

    Request Header

    Field Name Field Type Mandatory Field Description
    Content-type String M Media type of the resource, i.e. application/json
    X-TIMESTAMP String M Client’s current local time in ISO-8601 format
    X-SIGNATURE String M Created using symmetric signature HMAC_SHA512 algorithm
    Authorization String M Represents access_token of a request; string starts with keyword “Bearer ” followed by access_token. Can get this token from Access Token B2B API response.
    X-PARTNER-ID String M Unique identifier for caller (client_id)
    X-EXTERNAL-ID String M

    Alphanumeric string. We suggest merchant to use UUID format. The value should be unique.
    In case of timeout, merchant can do:

    1. Use this value in get status API to get status transaction or

    2. Retry this request with the same X-EXTERNAL-ID and request body to avoid creating duplicate transaction

    CHANNEL-ID String M Mandatory field from Bank Indonesia that can take any value with correct format 5 digits numeric string
    Content-type:application/json
    X-TIMESTAMP:2024-03-19T14:30:00+07:00
    X-SIGNATURE: da1fa417c72d6b91c257e01e54fac824
    Authorization: Bearer gp9HjjEj813Y9JGoqwOeOPWbnt4CupvIJbU1Mmu4a11MNDZ7Sg5u9a
    X-PARTNER-ID: BMRI
    X-EXTERNAL-ID:12345678901234567890
    CHANNEL-ID:12345
    

    Request Body

    Field Name Field Type Mandatory Field Description
    originalReferenceNo String(64) C Transaction identifier on service provider system. For e.g: GopayOrderId

    Note: either originalExternalId or OriginalReferenceNo need to be filled

    If both fields have value, will use originalReferenceNo as the main identifier.

    originalPartnerReferenceNo String (64) M Merchant order-id
    additionalInfo
    additionalInfo.originalExternalId String (36) C If merchant got a timeout from the auth endpoint, merchant can use this field using the X-EXTERNAL-ID value in the direct debit request header.

    Note: either originalExternalId or OriginalReferenceNo need to be filled

    {
        "originalReferenceNo": "Gopay OrderId",
        "originalPartnerReferenceNo": "Merchant OrderId",
        "additionalInfo": {
               "originalExternalId": "external-id"
     }
    }
    

    Response Header

    Field Name Field Type Mandatory Field Description
    Content-type String M Media type of the resource, i.e. application/json
    X-TIMESTAMP String M Client’s current local time in ISO-8601 format
    Content-type: application/json
    X-TIMESTAMP: 2024-03-19T14:30:00+07:00
    

    Response Body

    Possible Values:
    Field Name Field Type Mandatory Field Description
    responseCode String (7) M Error code to specify the error returned.
    responseMessage String (150) M Debug message to provide more information.
    originalReferenceNo String (256) O Transaction identifier on service provider system. For e.g: GopayOrderId
    originalPartnerReferenceNo String (32) O Transaction identifier on service consumer system
    paidTime String(25) C Transaction paid time. (Will appear only if transaction in success state)
    latestTransactionStatus String (2) C

    00 (Success)

    01 (Initiated)

    04 (Refunded)

    05 (Canceled)

    06 (Failed)

    07 (Not found)

    08 (Expiry)

    09 (Rejected)


    We will only return the numeric value on the API response. The text (...) is only the status code description and won't be returned in the actual response.

    amount O
    amount.value String (16,2) O Transaction amount that will be paid using this payment method If it's IDR then value includes 2 decimal digits.

    e.g. IDR 10.000,- will be placed with 10000.00

    amount.currency String O Currency. For e.g: IDR
    additionalData
    additionalInfo.fraudStatus String O Fraud status. Possible values:
    - accept --> Transaction is safe to proceed. It is not considered as a fraud.
    - deny --> Transaction is considered as fraud. It is rejected by Midtrans.
    additionalInfo.validUpTo String(25) O The time when the payment will be automatically expired. Using ISO 8601 format
    additionalInfo Object M Additional information
    additionalInfo.payOptionDetails.payOption String (64) M Payment option which shows the provider of this payment

    e.g. E-Money, Gopay Coins , CICIL_MAB , PayLater

    additionalInfo.payOptionDetails.payMethod String (64) M Payment Method. e.g. CREDIT_CARD , GOPAY
    additionalData.refundHistory.partnerRefundNo String M ReferenceNumber from PJP AIS for the refund.
    additionalData.refundHistory.refundAmount Object M Refund amount
    additionalData.refundHistory.refundAmount.value String M Net amount of the refund.
    additionalData.refundHistory.refundAmount.currency String M Currency
    additionalData.refundHistory.refundDate String M Refund trial date (ISO 8601)
    additionalInfo.metadata Object O Transaction metadata
    {
       "responseCode":"2006400",
       "responseMessage":"Request has been processed successfully",
       "originalPartnerReferenceNo": "merchant-order-id",
       "originalReferenceNo":"2020102977770000000009",
       "latestTransactionStatus":"00",
       "paidTime":"2023-05-15T14:56:11+07:00",
       "additionalInfo":{ 
              "fraudStatus":"accept"  ,
              "validUpTo":"2023-07-03T10:36:17+07:00",
              "refundHistory":[
      	      {
         	     	"refundNo":"96194816941239812",
         	     	"partnerReferenceNo":"239850918204981205970",
              		"refundAmount":{
              	   	     	"value":"12345678.00",
             	    	     	"currency":"IDR"
         	     	},
         	     	"refundDate":"2020-12-23T07:44:16+07:00",
              		"reason":"Customer Complain"
      	}
             ],
             “payOptionDetails” : [{
                    "payMethod":"Gopay",
                      "payOption": "Coins"
            }], 
       },
       “metadata” : {}
    }
    
    {
       "responseCode":"4006401",
       "responseMessage":"There is some issue with the transaction request"
    }
    

    List of response code

    Response Code HTTP Status Code Response Message
    2006400 200 Success
    4006402 400 Invalid Mandatory Field {Field Name}
    4016400 401 Unauthorized. Auth token required
    4016401 401 Invalid Token (B2B)
    5006401 500 Internal Server Error
    5046400 504 Timeout

    Fetching transaction status for bank transfer (virtual account) transaction

    This section describe how a merchant can fetch transaction status of bank trasnfer

    Path/{version}/transfer-va/status
    HTTP MethodPOST
    Versionv1.0
    SNAP service code26

    Request Header

    Field Name Field Type Mandatory Field Description
    Content-Type String M Represent media type of request e.g “application/json”
    X-TIMESTAMP String M Client's current local time in “yyyy-MM-

    ddTHH:mm:ssZ” format

    Authorization String M Bearer token obtained from Access Token API in the format Bearer <AccessToken>
    X-SIGNATURE String M StringToSign: <ClientKey>|<X-TIMESTAMP:yyyy-mm-dd HH:mm:ssZ>

    Signature Generation: SHA256withRSA(PrivateKey, StringToSign)

    Encoded Signature: BASE64(Signature)

    X-PARTNER-ID String M Unique ID for a partner.
    CHANNEL-ID String M Mandatory field from Bank Indonesia that can take any value with correct format 5 digits numeric string

    X-EXTERNAL-ID String M Transaction ID in Partner system. Numeric String. Same value with trxId.
    X-TIMESTAMP 2022-03-04T08:02:09+07:00
    X-SIGNATURE yqmBXZ3yV6NPG1LtwXMm3quXzJMRX5Ms+r9ebc5xWIZGSKbZL3Oy871GHb7WQUucLa5nxN/HcnZYoNHc+KkWTQ==
    X-PARTNER-ID 668052e34f194aa8be79e15a21e4fc2f
    X-EXTERNAL-ID 91919644194391346361915387229113
    CHANNEL-ID 12345
    Authorization Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIxMmUzODE4Mi00YjIxLTQ0YWMtOTVkNi1mMjFhMjEwZmIxZTAiLCJjbGllbnRJZCI6IjY2ODA1MmUzNGYxOTRhYThiZTc5ZTE1YTIxZTRmYzJmIiwibmJmIjoxNjYzODQwNTU5LCJleHAiOjE2NjM4NDE0NTksImlhdCI6MTY2Mzg0MDU1OX0.fEr0vIbB2kY8alZ-SROl3ftAFbfRd0uU-lGq9XuFi8M
    Content-Type application/json
    

    Request Body

    Field Name Field Type Mandatory Field Description
    partnerServiceId String(8) M Derivative of X- PARTNER- ID, similar to company code, 8 digit left padding space. The first 8 digits from virtualAccountNo.
    customerNo String(20) M Unique number (up to 20 digits). The sixth digit until end from virtualAccountNo.
    virtualAccountNo String(28) M partnerServiceId + customerNo (up to 20 digits). From response charge.
    inquiryRequestId String(128) M Unique identifier from Inquiry
    paymentRequestId String(128) O Unique identifier from Payment
    additionalInfo Object O
    additionalInfo.merchantId String M Merchant ID
    {
       "partnerServiceId":" 12345",
       "customerNo":123456789012345678,
       "virtualAccountNo":" 12345123456789012345678",
       "inquiryRequestId":"202202111031031234500001136962",
       "paymentRequestId":"202202111031031234500001136962",
       "additionalInfo":{
          "merchant_id": "G12345463"
       }
    }
    

    Response Header

    Field NameField TypeMandatoryField Description
    Content-TypeStringMMedia type of the resource, i.e application/json
    X-TIMESTAMPStringMClient's current local time in ISO-8601
    Content-type:application/json
    X-TIMESTAMP:2024-03-19T14:30:00+07:00
    

    Response Body

    Field Name Field Type Mandatory Field Description
    responseCode String(7) M Response code
    responseMessage String(150) M Response description
    virtualAccountData Object M
    virtualAccountData.paymentFlagReason Object O
    virtualAccountData.paymentFlagReason.english String(200) O Reason for Payment Status in English
    virtualAccountData.paymentFlagReason.indonesia String(200) O Reason for Payment Status in English
    virtualAccountData.partnerServiceId String(8) M Derivative of X- PARTNER- ID, similar to company code, 8 digit left padding space.
    virtualAccountData.customerNo String(20) M Unique number (up to 20 digits).
    virtualAccountData.virtualAccountNo String(28) M partnerServiceId (8 digit left padding 0) + customerNo (up to 20 digits).
    virtualAccountData.inquiryRequestId String(128) M Unique identifier from Inquiry
    virtualAccountData.paymentRequestId String(128) C Unique identifier for this Payment from PJP. Mandatory if Payment happened.
    virtualAccountData.paidAmount Object O
    virtualAccountData.paidAmount.Value String(ISO 4217)(16,2) M Paid Amount with 2 decimal
    virtualAccountData.paidAmount.Currency String(3) M Currency

    Currency of amount based on ISO 4217

    virtualAccountData.paidBills String(6) O Hexadecimal format of binary of flag of paid bills. If have 24 bills, and paid bills number 1, 4, 6, and 8, will be written in binary 1001010100 0000000000 0000 and converted in Hexa 95000
    virtualAccountData.totalAmount Object O
    virtualAccountData.totalAmount.value String(ISO 4217)(16,2) M Total Amount with 2 decimal
    virtualAccountData.paidAmount.currency String(3) M Currency

    Currency of amount based on ISO 4217

    virtualAccountData.trxDateTime Date(25) O
    virtualAccountData.transactionDate Date(25) O Payment datetime when the payment happened
    virtualAccountData.referenceNo String(15) O Payment auth code generated by PJP
    virtualAccountData.paymentType String(1) O Type of payment
    virtualAccountData.flagAdvise String(1) O Status is this a retry notification
    virtualAccountData.paymentFlagStatus String(2) O Status for Payment Flag:

    00 (Success)

    01 (Initiated)

    02 (Paying)

    03 (Pending)

    04 (Refunded)

    05 (Canceled)

    06 (Failed)

    07 (Not found)

    08 (Expiry)

    09 (Rejected)


    We will only return the numeric value on the API response. The text (...) is only the status code description and won't be returned in the actual response.

    virtualAccountData.billDetails Array of Objects O
    virtualAccountData.billDetails.billCode String(2) O Bill code for Customer choose
    virtualAccountData.billDetails.billNo String(18) O Bill number from Partner
    virtualAccountData.billDetails.billname String(20) O Bill Name
    virtualAccountData.billDetails.billShortName String(10) O Bill Name to shown to
    virtualAccountData.billDetails.billDescription.english String(18) O Bill Description in English
    virtualAccountData.billDetails.billDescription.indonesia String(18) O Bill Description in Bahasa
    virtualAccountData.billDetails.billSubCompany String(5) O Partner’s product code
    virtualAccountData.billDetails.billAmount.Value String(ISO 4217)(16,2) M Transaction Amount.

    Nominal inputted by Customer with 2 decimal

    virtualAccountData.billDetails.billAmount Objects O
    virtualAccountData.billDetails.billAmount.Currency String(3) M
    virtualAccountData.billDetails.billReferenceNo Number(15) O Bill auth code generated by PJP
    virtualAccountData.billDetails.status String(2) O Payment status for specific Bill
    virtualAccountData.reason.english String(64) O Reason for Payment Status for specific Bill in English
    virtualAccountData.reason.indonesia String(64) O Reason for Payment Status for specific Bill in Bahasa
    virtualAccountData.freeTexts Array of Objects O
    virtualAccountData.freeTexts.english String(32) O Will be shown in Channel
    virtualAccountData.freeTexts.indonesia String(32) O
    virtualAccountData.additionalInfo Object O
    {
       "responseCode": "2002600",
      "responseMessage": "Success",
      "virtualAccountData": {
        "paymentFlagStatus": "00",
        "paymentFlagReason": {
          "indonesia": "BERHASIL",
          "english": "SUCCESS"
        },
        "partnerServiceId": " 12345",
        "customerNo": "123456789012345678",
        "virtualAccountNo": " 12345123456789012345678",
        "inquiryRequestId": "202202111031031234500001136962",
        "paymentRequestId": "202202111031031234500001136962",
        "paidAmount": {
          "value": "100000.00",
          "currency": "IDR"
        },
        "paidBills": "",
        "totalAmount": {
          "value": "100000.00",
          "currency": "IDR"
        },
        "trxDateTime": "2022-02-12T17:29:57+07:00",
        "transactionDate": "2022-02-11T10:16:04+07:00",
        "referenceNo": "00113696201",
        "paymentType": "",
        "flagAdvise": "",
        "billDetails": [
          {
            "billCode": "",
            "billNo": "123456789012345678",
            "billName": "",
            "billShortName": "",
            "billDescription": {
              "english": "Maintenance",
              "indonesia": "Pemeliharaan"
            },
            "billSubCompany": "00000",
            "billAmount": {
              "value": "100000.00",
              "currency": "IDR"
            },
            "additionalInfo": {
              "value": ""
            },
            "billReferenceNo": "00113696201",
            "status": "00",
            "reason": {
              "english": "Success",
              "indonesia": "Sukses"
            }
          }
        ],
        "freeTexts": [
          {
            "english": "Free text",
            "indonesia": "Tulisan bebas"
          }
        ]
      },
      "additionalInfo": {
        
      }
    }