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)COPCurrency code(COP)
payTypeYintpls refer topayin-paytype-enumPayment Product Type
amountYdecimal(20,2)10000金额10000-5000000
reusableStatusYbooleanfalse(false=不允许 true=允许)Whether to allow repeated payments can only be false
mchOrderNoYstring(32)mchOrderNo1234Merchant order number (should be unique in the merchant system)
expireTimeYlong3600Expire time(Unit: Seconds) default 24 hours
notifyUrlYstring(250)http://abc.com/webhooks (callback) address
nonceStrYstring(32)1628328xxxxRandom string
remarkYstring(32)remarkOrder remarks
realNameYstring(32)JeckPayer Name
phoneYstring(32)+57xxxxxxxPayer phonenumber
emailYstring(32)xyz@gamil.comPayer phonenumber
idTypeYstring(32)pls refer toPayin Payer ID TypePayin Payer ID Type payType=153可不传
idCardYstring(32)付款人证件号 payType=153可不传
userTypeYstring(16)pls refer to用户类型用户类型 payType=157必传
bankIdYintpls refer topayin-bank-list-queryBank idpayType=157必传
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)付款账户 VA
payUrlstring(250)Payment Url

JSON 示例

json
{
  "msg": "SUCCESS",
  "code": 200,
  "data": {
    "merchantId": "100001",
    "mchOrderNo": "M1656908719283",
    "orderNo": "PAYIN8232154612109344768",
    "payCode": "646012000000015942",
    "payUrl": null,
    "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.

json
{
  "msg": "SUCCESS",
  "code": 200,
  "data": {
    "merchantId": "100001",
    "mchOrderNo": "M1656752128806",
    "orderNo": "PAYIN8231497473279467520",
    "payType": "1",
    "payCode": "646012000000015887",
    "payUrl": null,
    "amount": 100.0,
    "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
amountdecimal(20,0)Amount
feedecimal(20,4)fee
orderStatusstring(32)Order StatusPayin Order Status Enum
completionTimedateComplete 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",
  "orderNo": "PAYDESKxxxxxxxxxxx",
  "payUrl": "xxxxxxxxxxxx",
  "completionTime": "2022-08-08 08:08:08",
  "nonceStr": "xxxxxxxxxx"
}
ParameterTypeDescription
merchantIdintMerchantId
mchOrderNostring(32)Merchant order number (should be unique in the merchant system)
orderNostring(32)Platform order number
amountdecimal(20,2)Amount
feedecimal(20,4)fee (fee only after successful payment)
payUrlstring(32)Payment Url
orderStatusstring(32)Order Status
completionTimedateCompletion time yyyy-MM-dd HH:mm:ss
nonceStrstring(32)Random string

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.