Skip to content

Create Payin Order

HTTP Request

TIP

POST baseUrl + /api/payIn

Request Headers

HeaderNameRequiredValue
Content-TypeYapplication/json
MerchantIdYMerchantId
SignYSign

RequestBody

ParameterRequiredTypeExampleDescription
currencyYstring(32)PENCurrency code(THB)
payTypeYint200pls refer to Payin PayType Enum
amountYdecimal(20,2)[15.00,500000.00]Amount
reusableStatusYbooleanfalseCurrently it can only be false
mchOrderNoYstring(32)mch12345Merchant order number (should be unique in the merchant system)
expireTimeYlong3600Expiration time, default 3600 seconds
notifyUrlYstring(250)https://acb.com/webhooks (callback) address
nonceStrYstring(32)162838128Random string
remarkYstring(32)remarkOrder remarks
realNameYstring(32)JackPayer Name
phoneYstring(32)+57xxxxxxxPayer phonenumber
emailYstring(32)xyz@gamil.comPayer email
idTypeNstring(32)暂无Payin Payer ID Type
idCardNstring(32)Payer ID number
goodsSubjectNstring(32)appleProduct subject
goodsBodyNstring(32)appleProduct description

TIP

Note that callback/webhook addresses only support https or http protocol addresses. If the address is an ip address, be sure to use a public domain name.

ResponseBody

ParameterTypeDescription
merchantIdlongMerchantId
mchOrderNostring(32)Merchant order number
orderNostring(32)Platform order number
amountdecimal(20,2)Amount
orderFeedecimal(20,2)fee
payCodestring(32)Payment account VA
payUrlstring(250)Payment Url

JSON 示例

json
{
  "msg": "SUCCESS",
  "code": 200,
  "data": {
    "merchantId": "100001",
    "mchOrderNo": "M1656908719283",
    "orderNo": "PAYIN8232154612109344768",
    "payCode": "646012000000015942",
    "payUrl": null,
    "payDeskUrl": "https://xxx.com/pay/PAYIN8232154612109344768",
    "amount": 100
  }
}

Query Payin Order

HTTP Request

TIP

POST baseUrl + /api/payInQuery

Request Headers

HeaderNameRequiredValue
Content-TypeYapplication/json
MerchantIdYMerchantId
SignYSign

RequestBody

ParameterRequiredTypeExampleDescription
mchOrderNoNstring(32)P123456Merchant order number
orderNoNstring(32)PAYIN12345Platform order number
nonceStrYstring(32)1628381288000Random string

TIP

We recommend using orderNo (platform order number) first. At least one of the platform order number and merchant order number needs to be passed.

ResponseBody

json
{
  "msg": "SUCCESS",
  "code": 200,
  "data": {
    "merchantId": "100001",
    "mchOrderNo": "M1656752128806",
    "orderNo": "PAYIN8231497473279467520",
    "payType": "1",
    "payCode": "646012000000015887",
    "payUrl": null,
    "payDeskUrl": null,
    "amount": 100.0,
    "patchOrderNo": "PAYIN82xxxxxxxxx",
    "orderType": "PATCH",
    "fee": null,
    "orderStatus": "PAYING",
    "completionTime": null
  }
}
ParameterTypeDescription
merchantIdintMerchantId
mchOrderNostring(32)Merchant order number
orderNostring(32)Platform order number
channelOrderNostring(32)Channel order number
payTypestring(32)pls refer to Payin PayType Enum
payCodestring(32)支付码
payUrlstring(250)Payment QR Code
payDeskUrlstring(250)PayDesk Payment Url
amountdecimal(20,2)Amount
feedecimal(20,4)fee
orderStatusstring(32)Order StatusPayin Order Status Enum
completionTimedateComplete timeyyyy-MM-dd HH:mm:ss
patchOrderNostring(32)The platform orderNo associated with the replenishment order
patchMchOrderNostring(32)The platform mchOrderNoassociated with the replenishment order
orderTypestring(32)API=API接口 MCH=商户后台 DESK=收银台 PATCH=补单

关于orderTypePATCH时的补充说明

If the user does not pay according to the order amount or pays repeatedly, a replenishment order will appear. At this time, the orderType of the replenishment order is PATCH:

  • orderNo is the newly generated platform order number for this order.
  • patchOrderNo is the platform order number of the associated original order,
  • patchMchOrderNo is the merchant order number of the associated original order.
  • mchOrderNo is the merchant order number (with serial number identification) of the associated original order. Note that a serial number identifier will be added at the end of the mchOrderNo returned by the callback to distinguish multiple partial repayment orders.

For example, your merchant order number is MCH20230088. When the first partial payment occurs, we will add the serial number 00001 to the end of the merchant order number mchOrderNo of the original order. , the mchOrderNo of the callback you receive is MCH2023008800001, and so on.

When an order replenishment occurs, our robot will also notify the corresponding merchant group, and the notification will contain all the information you need.

When the orderType of the order is API:

  • patchOrderNo is the same as orderNo
  • patchMchOrderNo is the same as mchOrderNo

The above parameters have no additional meaning at this time.

TIP

fee and completionTime only have a value if the order is successfully paid.

Async Webhook Notification

HTTP Request

TIP

POST : notifyUrlnotifyUrlis provided by the merchant

Request Headers

HeaderNameRequiredValue
Content-TypeYapplication/json
MerchantIdYMerchantId
SignYSign

Webhook RequestBody

json
{
  "orderStatus": "SUCCESS",
  "amount": 10000.0,
  "fee": 0,
  "mchOrderNo": "2a6421c4-3758-4d1a-b47e-f7d0e7133f9e",
  "merchantId": "100001",
  "payDeskUrl": null,
  "orderNo": "PAYDESKxxxxxxxxxxx",
  "payUrl": "xxxxxxxxxxxx",
  "patchOrderNo": "PAYIN82xxxxxxxxx",
  "orderType": "PATCH",
  "completionTime": "2022-08-08 08:08:08",
  "nonceStr": "xxxxxxxxxx"
}
ParameterTypeDescription
merchantIdintMerchantId
mchOrderNostring(32)Merchant order number
orderNostring(32)Platform order number
amountdecimal(20,2)Amount
feedecimal(20,4)fee
payUrlstring(32)Payment Url
payDeskUrlstring(250)PayDesk Payment Url
orderStatusstring(32)订单状态,pls refer toPayin Order Status Enum
completionTimedateComplete time
nonceStrstring(32)Random string
patchOrderNostring(32)The platform orderNo associated with the replenishment order
patchMchOrderNostring(32)The platform mchOrderNoassociated with the replenishment order
orderTypestring(32)API=API接口 MCH=商户后台 DESK=收银台 PATCH=补单

TIP

fee and completionTime only have a value if the order is successfully paid.

关于orderTypePATCH时的补充说明

If the user does not pay according to the order amount or pays repeatedly, a replenishment order will appear. At this time, the orderType of the replenishment order is PATCH:

  • orderNo is the newly generated platform order number for this order.
  • patchOrderNo is the platform order number of the associated original order,
  • patchMchOrderNo is the merchant order number of the associated original order.
  • mchOrderNo is the merchant order number (with serial number identification) of the associated original order. Note that a serial number identifier will be added at the end of the mchOrderNo returned by the callback to distinguish multiple partial repayment orders.

For example, your merchant order number is MCH20230088. When the first partial payment occurs, we will add the serial number 00001 to the end of the merchant order number mchOrderNo of the original order. , the mchOrderNo of the callback you receive is MCH2023008800001, and so on.

When an order replenishment occurs, our robot will also notify the corresponding merchant group, and the notification will contain all the information you need.

When the orderType of the order is API:

  • patchOrderNo is the same as orderNo
  • patchMchOrderNo is the same as mchOrderNo

The above parameters have no additional meaning at this time.

TIP

Please respond with SUCCESS if the process is successful. For other responses, we will consider the callback to have failed. After the callback fails, it will be retried in 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 minutes, and the callback will be retried 10 times in total.

Released under the MIT License.