Skip to main content
POST
/
webhooks
/
paymentNotify
Express.js Handler
// Webhook endpoint to receive payment notifications
app.post('/webhooks/rebell', express.json(), (req, res) => {
  // 1. Verify the signature (see Authentication docs)
  if (!verifySignature(req)) {
    return res.status(401).json({ result: { resultStatus: 'F' } });
  }

  const { paymentId, paymentRequestId, paymentStatus, paymentAmount } = req.body;

  // 2. Process the payment result
  if (paymentStatus === 'SUCCESS') {
    // Update order status, trigger fulfillment, etc.
    updateOrderStatus(paymentRequestId, 'paid');
  } else if (paymentStatus === 'FAIL') {
    updateOrderStatus(paymentRequestId, 'failed');
  }

  // 3. Acknowledge receipt
  res.json({ result: { resultStatus: 'S' } });
});
{
  "result": {
    "resultStatus": "S",
    "resultCode": "<string>",
    "resultMessage": "<string>"
  }
}

Authorizations

Signature
string
header
required

RSA SHA256 signature header. Example: Signature: algorithm=SHA256withRSA, keyVersion=0, signature=BASE64...

Client-Id
string
header
required

Rebell-assigned Client Id.

Request-Time
string
header
required

RFC3339 timestamp (e.g., 2019-05-28T12:12:00+08:00).

Body

application/json
paymentId
string
required
paymentRequestId
string
required
paymentStatus
enum<string>
required
Available options:
SUCCESS,
PROCESSING,
FAIL
paymentAmount
object
required

Amount in minor units (e.g., cents).

paymentTime
string<date-time>
required
paymentCreatedTime
string

ISO 8601 creation time

Response

200 - application/json

Acknowledge receipt

result
object
required