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-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 NameField TypeMandatoryField 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 NameField TypeMandatoryField 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 NameField TypeMandatoryField 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 CodeHTTP Status CodeResponse 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 NameField TypeMandatoryField 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 NameField TypeMandatoryField 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 NameField TypeMandatoryField 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 NameField TypeMandatoryField 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

    refundHistory

    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 CodeHTTP Status CodeResponse 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 NameField TypeMandatoryField 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 NameField TypeMandatoryField 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 NameField TypeMandatoryField 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 NameField TypeMandatoryField 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

    additionalInfo

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

    additionalInfo.refundHistory.partnerReferenceNo

    String

    M

    Reference Number from PJP AIS for the refund.

    additionalInfo.refundHistory.refundAmount

    Object

    M

    Refund amount

    additionalInfo.refundHistory.refundAmount.value

    String

    M

    Net amount of the refund.

    additionalInfo.refundHistory.refundAmount.currency

    String

    M

    Currency

    additionalInfo.refundHistory.refundDate

    String

    M

    Refund trial date (ISO 8601)

    additionalInfo.refundHistory.refundNo

    String

    M

    Refund No

    additionalInfo.refundHistory.reason

    String

    M

    Refund reason

    additionalInfo.refundHistory.refundStatus

    String

    M

    Refund status

    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",
                  "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

    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": {
        
      }
    }