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 NameField TypeMandatoryField Description
Content-typeStringMMedia type of the resource, i.e. application/json
X-TIMESTAMPStringMClient’s current local time in ISO-8601 format
X-SIGNATUREStringMCreated using symmetric signature HMAC_SHA512 algorithm
AuthorizationStringMRepresents 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-IDStringMUnique identifier for caller
X-EXTERNAL-IDStringMAlphanumeric 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-IDStringMMandatory 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 NameField TypeMandatoryField Description
originalReferenceNoString(64)CTransaction 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.

originalExternalIdString (36)CIf 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.

serviceCodeString (2)MTransaction 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 NameField TypeMandatoryField Description
Content-typeStringMMedia type of the resource, i.e. application/json
X-TIMESTAMPStringMClient’s current local time in ISO-8601 format
Content-type: application/json
X-TIMESTAMP: 2024-03-19T14:30:00+07:00

Response Body



Field NameField TypeMandatoryField Description
responseCodeString (7)MError code to specify the error returned.
responseMessageString (150)MDebug message to provide more information.
originalPartnerReferenceNoString (64)OOriginal transaction identifier on service consumer system. (Merchant’s orderId)
originalExternalIdString (32)OOriginal external identifier
originalReferenceNoString (64)MTransaction identifier on service provider system. For e.g: GopayOrderId
serviceCodeString (2)MTransaction type indicator (service code of the original transaction request).

For e.g: 54 , 58 which are serviceCode of Charge and Refund API
latestTransactionStatusString (2)MPossible 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.
transAmountObjectOTransaction Amount
transAmount.valueStringMTransaction amount value
transAmount.currencyStringMCurrency, e.g: IDR
paidTimeStringCUpdate time of the individual transaction. The value will be returned for successful payment. Using ISO-8601 timestamp format
refundHistoryArray of refund ObjectC
refundHistory.refundNoStringMTransaction Identifier on Service Provider System
refundHistory.partnerReferenceNoStringMReferenceNumber from merchant for the refund.
refundHistory.refundStatusStringMRefund status. Possible values:
- 00 --> Refund success
- 06 --> Refund failed
refundHistory.refundAmountObjectM
refundHistory.refundAmount.valueStringMNet amount of the refund.
refundHistory.refundAmount.currencyStringMCurrency
refundHistory.refundDateStringMRefund trial date (ISO 8601)
additionalInfoObjectOAdditional Information if a merchant needs to use.
additionalInfo.fraudStatusStringOFraud 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.validUpToString(25)OThe time when the payment will be automatically expired. Using ISO 8601 format
additionalInfo.payOptionDetailsArray of ObjectMPayment 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.payMethodStringMPayment method used by user. E.g: gopay
additionalInfo.payOptionDetails.payOptionStringMPayment option used by user. Possible value:
- GOPAY_WALLET = GoPay
- PAY_LATER = GoPay Later
- GOPAY_SAVINGS = GoPay Tabungan by Jago
additionalInfo.metadataObjectOTransaction metadata
additionalInfo.userPaymentDetailsArray of objectMPayment option used by user.
additionalInfo.userPaymentDetails.payMethodStringMPayment method used by user. E.g: gopay
additionalInfo.userPaymentDetails.payOptionStringMPayment 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 CodeHTTP Status CodeResponse Message
2005500200Success
4005502400Invalid Mandatory Field
4015500401Unauthorized.
4015501401Invalid Token (B2B)
5005501500Internal Server Error
5045500504Timeout

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 NameField TypeMandatoryField Description
Content-typeStringMMedia type of the resource, i.e. application/json
X-TIMESTAMPStringMClient’s current local time in ISO-8601 format
X-SIGNATUREStringMCreated using symmetric signature HMAC_SHA512 algorithm
AuthorizationStringMRepresents 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-IDStringMUnique identifier for caller
X-EXTERNAL-IDStringMAlphanumeric 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-IDStringMMandatory 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 NameField TypeMandatoryField Description
originalReferenceNoString(64)CTransaction 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
originalPartnerReferenceNoString(36)CpartnerReferenceNo of the original transaction.
originalExternalIdString(36)CThis should be filled with the X-EXTERNAL-ID from header of the original create QR payment API - /{version}/qr/qr-mpm-generate
merchantIdString(64)OMerchant id, we suggest to send this
serviceCodeString (2)MTransaction 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 NameField TypeMandatoryField Description
Content-typeStringMMedia type of the resource, i.e. application/json
X-TIMESTAMPStringMClient’s current local time in ISO-8601 format
Content-type:application/json
X-TIMESTAMP:2024-03-19T14:30:00+07:00

Response Body


Field NameField TypeMandatoryField Description
responseCodeString(7)MResponse code
responseMessageString(150)MResponse description
originalExternalIdString(36)CX-EXTERNAL-ID from header of the original create QR payment API - /{version}/qr/qr-mpm-generate
originalPartnerReferenceNoString(36)CpartnerReferenceNo of the original transaction.
originalReferenceNoString(64)CTransaction identifier in GoPay system.

The value will be returned for successful payment.
serviceCodeString(2)MTransaction type indicator (service code of the original transaction request).

For e.g: 47 , 77, 78 which are serviceCode of Payment, Cancel and Refund APIs
latestTransactionStatusString (2)MStatus 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.
    transactionStatusDescString(50)OTransaction status description
    paidTimeDateTime StringOTransaction time
    amountObjectOAmount object
    amount.valueString(16,2)MTransaction amount
    amount.currencyString(3)MTransaction currency
    terminalIdString(16)OMerchant terminal id
    additionalInfoObjectOAdditional information
    refundHistory.refundStatusStringMRefund status. Possible values:
    - 00 --> Refund success
    - 06 --> Refund failed
    refundHistoryArray of ObjectCRefund history associated with the transaction
    additionalInfo.refundHistory.reasonStringMReason for the refund.
    additionalInfo.refundHistory.refundNoStringMRefund transaction identifier on service provider system
    additionalInfo.refundHistory.partnerReferenceNoStringMUnique identifier of refund transaction generated by the client.
    additionalInfo.refundHistory.refundDateStringMRefund time. ISO 8601
    additionalInfo.refundHistory.refundAmountObjectMRefund amount object
    additionalInfo.refundHistory.refundAmount.valueStringMNet amount of the refund.
    additionalInfo.refundHistory.refundAmount.currencyStringMCurrency 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 CodeHTTP Status CodeResponse Message
    2005100200Success
    4005102400Invalid Mandatory Field
    4015100401Unauthorized.
    5005101500Internal Server Error
    5045100504Timeout


    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 NameField TypeMandatoryField Description
    Content-typeStringMMedia type of the resource, i.e. application/json
    X-TIMESTAMPStringMClient’s current local time in ISO-8601 format
    X-SIGNATUREStringMCreated using symmetric signature HMAC_SHA512 algorithm
    AuthorizationStringMRepresents 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-IDStringMUnique identifier for caller (client_id)
    X-EXTERNAL-IDStringMAlphanumeric 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-IDStringMMandatory 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 NameField TypeMandatoryField Description
    originalReferenceNoString(64)CTransaction 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.
    originalPartnerReferenceNoString (64)MMerchant order-id
    additionalInfo
    additionalInfo.originalExternalIdString (36)CIf 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 NameField TypeMandatoryField Description
    Content-typeStringMMedia type of the resource, i.e. application/json
    X-TIMESTAMPStringMClient’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 NameField TypeMandatoryField Description
    responseCodeString (7)MError code to specify the error returned.
    responseMessageString (150)MDebug message to provide more information.
    originalReferenceNoString (256)OTransaction identifier on service provider system. For e.g: GopayOrderId
    originalPartnerReferenceNoString (32)OTransaction identifier on service consumer system
    paidTimeString(25)CTransaction paid time. (Will appear only if transaction in success state)
    latestTransactionStatusString (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.
    amountO
    amount.valueString (16,2)OTransaction 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.currencyStringOCurrency. For e.g: IDR
    additionalInfo
    additionalInfo.fraudStatusStringOFraud 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.validUpToString(25)OThe time when the payment will be automatically expired. Using ISO 8601 format
    additionalInfo.payOptionDetails.payOptionString (64)MPayment option which shows the provider of this payment

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

    additionalInfo.payOptionDetails.payMethodString (64)MPayment Method. e.g. CREDIT_CARD , GOPAY
    additionalInfo.refundHistory.partnerReferenceNoStringMReference Number from PJP AIS for the refund.
    additionalInfo.refundHistory.refundAmountObjectMRefund amount
    additionalInfo.refundHistory.refundAmount.valueStringMNet amount of the refund.
    additionalInfo.refundHistory.refundAmount.currencyStringMCurrency
    additionalInfo.refundHistory.refundDateStringMRefund trial date (ISO 8601)
    additionalInfo.refundHistory.refundNoStringMRefund No
    additionalInfo.refundHistory.reasonStringMRefund reason
    additionalInfo.refundHistory.refundStatusStringMRefund status
    additionalInfo.metadataObjectOTransaction 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",
                  "refundStatus":"00"
      	}
             ],
             “payOptionDetails” : [{
                    "payMethod":"Gopay",
                      "payOption": "Coins"
            }], 
       },
       “metadata” : {}
    }
    {
       "responseCode":"4006401",
       "responseMessage":"There is some issue with the transaction request"
    }

    List of response code

    Response CodeHTTP Status CodeResponse Message
    2006400200Success
    4006402400Invalid Mandatory Field {Field Name}
    4016400401Unauthorized. Auth token required
    4016401401Invalid Token (B2B)
    5006401500Internal Server Error
    5046400504Timeout

    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 NameField TypeMandatoryField Description
    Content-TypeStringMRepresent media type of request e.g “application/json”
    X-TIMESTAMPStringMClient's current local time in “yyyy-MM-

    ddTHH:mm:ssZ” format

    AuthorizationStringMBearer token obtained from Access Token API in the format Bearer <AccessToken>
    X-SIGNATUREStringMStringToSign: <ClientKey>|<X-TIMESTAMP:yyyy-mm-dd HH:mm:ssZ>

    Signature Generation: SHA256withRSA(PrivateKey, StringToSign)

    Encoded Signature: BASE64(Signature)
    X-PARTNER-IDStringMUnique ID for a partner.
    CHANNEL-IDStringMMandatory field from Bank Indonesia that can take any value with correct format 5 digits numeric string
    X-EXTERNAL-IDStringMTransaction 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 NameField TypeMandatoryField Description
    partnerServiceIdString(8)MDerivative of X- PARTNER- ID, similar to company code, 8 digit left padding space. The first 8 digits from virtualAccountNo.
    customerNoString(20)MUnique number (up to 20 digits). The sixth digit until end from virtualAccountNo.
    virtualAccountNoString(28)MpartnerServiceId + customerNo (up to 20 digits). From response charge.
    inquiryRequestIdString(128)MUnique identifier from Inquiry
    paymentRequestIdString(128)OUnique identifier from Payment
    additionalInfoObjectO
    additionalInfo.merchantIdStringMMerchant 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 NameField TypeMandatoryField Description
    responseCodeString(7)MResponse code
    responseMessageString(150)MResponse description
    virtualAccountDataObjectM
    virtualAccountData.paymentFlagReasonObjectO
    virtualAccountData.paymentFlagReason.englishString(200)OReason for Payment Status in English
    virtualAccountData.paymentFlagReason.indonesiaString(200)OReason for Payment Status in English
    virtualAccountData.partnerServiceIdString(8)MDerivative of X- PARTNER- ID, similar to company code, 8 digit left padding space.
    virtualAccountData.customerNoString(20)MUnique number (up to 20 digits).
    virtualAccountData.virtualAccountNoString(28)MpartnerServiceId (8 digit left padding 0) + customerNo (up to 20 digits).
    virtualAccountData.inquiryRequestIdString(128)MUnique identifier from Inquiry
    virtualAccountData.paymentRequestIdString(128)CUnique identifier for this Payment from PJP. Mandatory if Payment happened.
    virtualAccountData.paidAmountObjectO
    virtualAccountData.paidAmount.ValueString(ISO 4217)(16,2)MPaid Amount with 2 decimal
    virtualAccountData.paidAmount.CurrencyString(3)MCurrency

    Currency of amount based on ISO 4217

    virtualAccountData.paidBillsString(6)OHexadecimal 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.totalAmountObjectO
    virtualAccountData.totalAmount.valueString(ISO 4217)(16,2)MTotal Amount with 2 decimal
    virtualAccountData.paidAmount.currencyString(3)MCurrency

    Currency of amount based on ISO 4217

    virtualAccountData.trxDateTimeDate(25)O
    virtualAccountData.transactionDateDate(25)OPayment datetime when the payment happened
    virtualAccountData.referenceNoString(15)OPayment auth code generated by PJP
    virtualAccountData.paymentTypeString(1)OType of payment
    virtualAccountData.flagAdviseString(1)OStatus is this a retry notification
    virtualAccountData.paymentFlagStatusString(2)OStatus 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.billDetailsArray of ObjectsO
    virtualAccountData.billDetails.billCodeString(2)OBill code for Customer choose
    virtualAccountData.billDetails.billNoString(18)OBill number from Partner
    virtualAccountData.billDetails.billnameString(20)OBill Name
    virtualAccountData.billDetails.billShortNameString(10)OBill Name to shown to
    virtualAccountData.billDetails.billDescription.englishString(18)OBill Description in English
    virtualAccountData.billDetails.billDescription.indonesiaString(18)OBill Description in Bahasa
    virtualAccountData.billDetails.billSubCompanyString(5)OPartner’s product code
    virtualAccountData.billDetails.billAmount.ValueString(ISO 4217)(16,2)MTransaction Amount.

    Nominal inputted by Customer with 2 decimal

    virtualAccountData.billDetails.billAmountObjectsO
    virtualAccountData.billDetails.billAmount.CurrencyString(3)M
    virtualAccountData.billDetails.billReferenceNoNumber(15)OBill auth code generated by PJP
    virtualAccountData.billDetails.statusString(2)OPayment status for specific Bill
    virtualAccountData.reason.englishString(64)OReason for Payment Status for specific Bill in English
    virtualAccountData.reason.indonesiaString(64)OReason for Payment Status for specific Bill in Bahasa
    virtualAccountData.freeTextsArray of ObjectsO
    virtualAccountData.freeTexts.englishString(32)OWill be shown in Channel
    virtualAccountData.freeTexts.indonesiaString(32)O
    virtualAccountData.additionalInfoObjectO
    {
       "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": {
        
      }
    }