# Payment Order Status

# Specification

  • The following table is a specification of this API:
Name Description
API Name API Direct Debit Payment Status
Function This API is used to Debit Payment QRIS status from merchant to PayCools as the acquirer
Service Code 55
Method POST
URL /v2.0/debit/status
Accept application/json
Content Type application/json
Related Service
Expected Timeout 8 second

# Request

  • The following part will be describe about parameter of request in this API:

# Request Parameter

  • The following table is a list of request parameter in this API:
  • The following table is a header of request parameter:
No Name Type Length Required Condition Remarks
1 Content-Type String Variable, 127 max Mandatory - Content type, value always application/json
2 Authorization String Variable, 2048 max Mandatory Represents access_token of a request, starts with keyword “Bearer” and followed by access_token
3 X-TIMESTAMP String Fixed, 25 max Mandatory - Transaction date time, in format YYYY-MM-DDTHH:mm:ss+07:00. Time must be in GMT+7 (Jakarta time)
4 X-SIGNATURE String Variable Mandatory - created using asymmetric signature SHA256withRSA algorithm of X-CLIENT-KEY + “|” + X-TIMESTAMP
for example:3a34d6a9debb4246931f3941c471dd3b|2023-09-25T17:57:35+07:00
5 X-PARTNER-ID String Variable, 36 max Mandatory - Unique identifier for partner was generated by PayCools, or known as appId

# Body

  • The following table is a body of request parameter:
No Name Type Length Required Condition Remarks
1 originalPartnerReferenceNo String Variable, 50 max Mandatory - Unique transaction identifier in client system.
2 merchantId String Variable, 64 max Mandatory - Unique identifier for partner was generated by PayCools, or known as appId
3 serviceCode String Variable, 64 max Optional - Service code of original transaction, which could be 54 (create direct debit payment)

# REQUEST SAMPLE

POST /v2.0/debit/status HTTP/1.1
Content-type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJhcHBJZCI6ImNiY2U0OTBlODJmODQxZjJiMzE2MmE4ZGQyN2U5ZmQxIiwiY2FjaGVLZXkiOiJUT0tFTl9BUElfY2JjZTQ5MGU4MmY4NDFmMmIzMTYyYThkZDI3ZTlmZDFfMjEwMDJiMGYtMDJkNS00ZDI2LTg4MmEtMGRmNWI5MzVlNWVhIiwiY3JlYXRlVGltZSI6MTY5NjY1MDAyMTg3OX0.mkiFEVNvWTJDVLTvY9oE2u4w76wnlra1mwzC79SG-Zo
X-TIMESTAMP: 2023-09-25T17:57:35+07:00
X-SIGNATURE:
Dupbr1ILxsfBrXFmeDdIjwCmgv6AF+JQeIpD1Gq8HDjow7avCXdZAPOEbxVe7/x0atxy86aUfC11zXA1gvXXwxrTXFr6V0x8GZCyTndqnDyRlBeEZLL3BLmDRkrSsomd/mv1eG/th4TQndSPrBBfbN3bj0yIB99y2BnU5fBy7B0ZhYiQVs3uREspIsBB99F/4Zv8GbPWvik2usdOUo0gfPAQoZ3MJAcBQ/0vMRT5KdLm903C2HNyl1Cpb6OFRgaU2LAWybEQIC2QJ9mFb08NPR0PEu75WpVHNrFYn8gfiI8nRso0vBJhtMZrRINDQf9scV53cFdjpWobQHvnFDHCqQ==
X-PARTNER-ID: cbce490e82f441f2b3162a2dd27e8fd1

{
    "originalPartnerReferenceNo":"test402787228481568",
    "merchantId":"cbce490e82f841f2b3162a8dd27e9fd1",
    "serviceCode":"54"
}

# Response

  • The following part will be describe about parameter of response in this API:

# Response Parameter

  • The following table is a list of response parameter in this API:

# Header

  • The following table is a header of response parameter:
No Name Type Length Required Condition Remarks
1 Content-Type String Variable, 127 max Mandatory - Content type, value always application/json
2 X-TIMESTAMP String Fixed, 25 max Mandatory - Transaction date time, in format YYYY-MM-DDTHH:mm:ss+07:00. Time must be in GMT+7 (Jakarta time)

# Body

  • The following table is a body of response parameter:
No Name Type Length Required Condition Remarks
1 responseCode String Fixed, 7 max Mandatory - Refer to response code list
2 responseMessage String Variable, 150 max Mandatory - Refer to response code list
3 originalReferenceNo String Variable Mandatory Y:= Successfully processed Transaction identifier in PayCools system
The value will be returned for successful payment
4 originalPartnerReferenceNo String Variable Mandatory - Unique identifier of the transaction client would like to query
5 serviceCode String Variable Mandatory - Service code of original transaction, which could be 54 (Direct Debit Payment).
6 latestTransactionStatus String Variable Mandatory - Transaction status code
Successfully = 00
Pending = 03
Failed = 06
7 paidTime String Variable Mandatory Y:= Successfully processed Update time of the individual transaction
The value will be returned for successful payment
format yyyy-MM-ddTHH:mm:ss.SSSTZD
8 aggregateAmount MONEY Variable Conditional Y:= Successfully processed Aggregate Amount
9 aggregateFeeAmount MONEY Variable Conditional Y:= Successfully processed Aggregate Fee Amount
10 totalAggregateAmount MONEY Variable Conditional Y:= Successfully processed Total Aggregate Amount
11 additionalInfo AdditionalInfoResp Variable Conditional Y:= Successfully processed Additional information

# Response

Content-Type: application/json
X-TIMESTAMP: 2023-04-11T21:10:11+07:00
{
    "responseCode": "2005500",
    "responseMessage": "Successful",
    "originalReferenceNo": "C1711314284761452544",
    "originalPartnerReferenceNo": "test402787228481568",
    "serviceCode": "54",
    "latestTransactionStatus": "00",
    "paidTime": "2023-10-08T18:58:39+07:00",
    "aggregateAmount": {
        "value": "30000.00",
        "currency": "IDR"
    },
    "aggregateFeeAmount": {
        "value": "2000.00",
        "currency": "IDR"
    },
    "totalAggregateAmount": {
        "value": "32000.00",
        "currency": "IDR"
    },
    "additionalInfo": {
        "channelCode": "OVO_URL",
        "notifyUrl": "www.test.com",
        "customerName": "test123",
        "email": null,
        "customerMobile": "09123456789",
        "remark": null,
        "feeSplitType": 1,
        "items": [
            {
                "regionNo": "12356",
                "branchNo": "123456",
                "courierNo": "123456",
                "courierName": null,
                "courierMobile": null,
                "subOrderId": "123456",
                "amount": {
                    "value": "30000.00",
                    "currency": "IDR"
                },
                "feeAmount": {
                    "value": "2000.00",
                    "currency": "IDR"
                },
                "totalAmount": {
                    "value": "32000.00",
                    "currency": "IDR"
                }
            }
        ]
    }
}

# Response Code and Message

  • The following table is the list response code and message of Balance Inquiry API:
No Response Code Response Message Remarks Partner Action Related Service
1 2005500 Successful Success to be processed Mark Direct Debit Payment Status process as Success and check the latestTransactionStatus, with these conditions:
00 = Order has been successfully in final state and paid. Mark Payment as Success
03 = Waiting for payment. Mark Payment as Pending
Direct Debit Payment - SNAP
3 4005500 Bad Request General request failed error Mark Direct Debit Payment Status process as Failed and mark Payment as Pending. Retry request with proper parameter Direct Debit Payment - SNAP
4 4005501 Invalid Field Format Invalid format for certain field Mark Direct Debit Payment Status process as Failed and mark Payment as Pending. Retry request with proper parameter Direct Debit Payment - SNAP
5 4005502 Invalid Mandatory Field Missing or invalid format on mandatory field Mark Direct Debit Payment Status process as Failed and mark Payment as Pending. Retry request with proper parameter Direct Debit Payment - SNAP
6 4015500 Unauthorized. [reason] General unauthorized error Mark Direct Debit Payment Status process as Failed and mark Payment as Pending. Retry request with proper parameter Direct Debit Payment - SNAP
7 4015501 Invalid Token (B2B) Authorization token are invalid, perhaps due to token expiry for B2B Mark Direct Debit Payment Status process as Failed and mark Payment as Pending. Retry request with proper parameter Direct Debit Payment - SNAP
11 4045501 Transaction Not Found Transaction not found Mark Direct Debit Payment Status process as Failed and mark Payment as Pending. Retry request with proper parameter Direct Debit Payment - SNAP
13 4295500 Too Many Requests Maximum transaction limit exceeded Mark Direct Debit Payment Status process as Failed and mark Payment as Pending. Retry request with proper parameter Direct Debit Payment - SNAP
14 5005500 General Error General error non retry-able Mark Direct Debit Payment Status process as Failed and mark Payment as Pending. Retry request with proper parameter Direct Debit Payment - SNAP
15 5005501 Internal Server Error Unknown internal server failure, please retry the process again Mark Direct Debit Payment Status process as Failed and mark Payment as Pending. Retry request with proper parameter Direct Debit Payment - SNAP
16 Total Timeout Total timeout, the client side does not get any responses from the server side (can be due to network issue, server slowing down, and so on) Do a retry maximum 3 attempts, if the result is still the same then action is aborted. Show appropriate error message to users Direct Debit Payment - SNAP
17 Unexpected response (empty field/field does not exist/undefined response code) The server does not produce expected responses (can be due to hardware failure, bugs, and so on) If empty field/field does not exist, mark Direct Debit Payment Status process as Pending and mark Payment as Pending Direct Debit Payment - SNAP