API Responses


The magical thing in this library is its unique responses no matter whatever gateway is. Once you understand API responses it will be easy for you to use this response for further transactions i.e. refund, void or rebill.

First of all as we read in the beginning all responses are JSON.

All responses are divided into two json keys.

  1. lr (Library response)
  2. gr (gateway response)

So here is how a simple response will look like.

        lr : { //library response },
        gr: { //gateway response}

J2pay response makes it simple for developer to check the gateways response, Original gateway response contains too much data that developers usually don’t need. To make it simple for the developers J2pay divides the gateway response into two keys lr and gr.

lr response which means library response that only contains the values that library thinks important for you and could be useful for further actions like refund/void/rebill.

However you can also see the gateway full response in gr key.

Library Response

In this section we will take a deep look into library response (lr).

Library response is further divided into two responses success and error. Both of these are listed below.

First take a look at error message which is very simple and contains only two keys. See below.

        "lr": {
            "success": false,
            "message": "gateway error message",
        "gr": { //long gateway response }

Error response will be same for all four transaction.

Success Response matters for four different transaction purchase, refund, void or rebill. However no major difference. Also keep in mind success response for all gateways remain same.

Note: You can take a look on all sample responses here.

Let’s take a look at purchase success response.

        "lr": {
            "success": true,
            "message": "SUCCESS",
            "transactionId": "3902990127",
            "amount": 45,
            "cardExpiryYear": "2017",
            "cardFirst6": "601160",
            "cardExpiryMonth": "12",
            "maskedCard": "601160******6611",
            "rebillParams": {
                "customerVaultId": "174302554"
            "voidParams": {
                "transactionId": "3902990127"
            "currencyCode": "USD",
            "cardLast4": "6611",
            "refundParams": {
                "transactionId": "3902990127"
        "gr": { // long gateway response }

Purchase response is very simple as you can see it contains success key which also let you know if transaction was successful plus the message that gateway returns. These two keys will always present no matter if response was success or failed.

As you can see success response also contains transactionId. Rest of the key do not require explanation except these three.

  1. voidParams
  2. refundParams
  3. rebillParams

After purchase transaction successfully executed some more actions could be performed on this transaction i.e. you could refund or void or rebill (also called recurring).

And for all these three actions all gateways required different parameters, some required transactionId while some required there tokenized variables with different variable names. That is the headache for developer if he is working with multiple gateways. But J2pay has already taken care of these problems by these three keys in purchase response described above.

So for example if you would like to perform a refund against the previously charged transaction. You can pass the refundParams as it is in the refund transaction request or you could directly save that in database to refund later. Same for void and rebill. The sample responses for all transaction are listed in sample responses section.


To view all the response variables click here.
To view all sample responses click here.