curl -X POST https://api.rebellapp.com/v1/payments/linkPayCreate \
-H "Content-Type: application/json" \
-H "Client-Id: YOUR_CLIENT_ID" \
-H "Request-Time: 2024-01-10T12:00:00Z" \
-H "Signature: algorithm=SHA256withRSA, keyVersion=1, signature=BASE64_SIGNATURE" \
-d '{
"productCode": "51051000101000100054",
"paymentRequestId": "checkout-20240321-987",
"paymentAmount": {
"currency": "EUR",
"value": 499
},
"order": {
"orderDescription": "Monthly subscription - Premium plan"
},
"settlementStrategy": {
"settlementCurrency": "EUR"
}
}'const response = await fetch('https://api.rebellapp.com/v1/payments/linkPayCreate', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Client-Id': 'YOUR_CLIENT_ID',
'Request-Time': new Date().toISOString(),
'Signature': 'algorithm=SHA256withRSA, keyVersion=1, signature=BASE64_SIGNATURE'
},
body: JSON.stringify({
productCode: '51051000101000100054',
paymentRequestId: `checkout-${orderId}-${Date.now()}`,
paymentAmount: { currency: 'EUR', value: 499 },
order: { orderDescription: 'Monthly subscription - Premium plan' },
settlementStrategy: { settlementCurrency: 'EUR' }
})
});
const data = await response.json();
// Redirect user to Rebell app
window.location.href = data.appLinks.ios.shortUrl; // or androidimport requests
response = requests.post(
'https://api.rebellapp.com/v1/payments/linkPayCreate',
headers={
'Content-Type': 'application/json',
'Client-Id': 'YOUR_CLIENT_ID',
'Request-Time': '2024-01-10T12:00:00Z',
'Signature': 'algorithm=SHA256withRSA, keyVersion=1, signature=BASE64_SIGNATURE'
},
json={
'productCode': '51051000101000100054',
'paymentRequestId': f'checkout-{order_id}-{int(time.time())}',
'paymentAmount': {'currency': 'EUR', 'value': 499},
'order': {'orderDescription': 'Monthly subscription - Premium plan'},
'settlementStrategy': {'settlementCurrency': 'EUR'}
}
)
data = response.json()
# Return redirect URLs to frontend
redirect_url = data['redirectUrl']
app_links = data['appLinks']<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.rebellapp.com/v1/payments/linkPayCreate",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'productCode' => '51051000101000100054',
'paymentRequestId' => 'checkout-20240321-987',
'paymentAmount' => [
'currency' => 'EUR',
'value' => 499
],
'order' => [
'orderDescription' => 'Monthly subscription - Premium plan',
'merchant' => [
'store' => [
'externalStoreId' => 'STORE-77'
]
]
],
'settlementStrategy' => [
'settlementCurrency' => 'EUR'
]
]),
CURLOPT_HTTPHEADER => [
"Client-Id: <api-key>",
"Content-Type: application/json",
"Request-Time: <api-key>",
"Signature: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.rebellapp.com/v1/payments/linkPayCreate"
payload := strings.NewReader("{\n \"productCode\": \"51051000101000100054\",\n \"paymentRequestId\": \"checkout-20240321-987\",\n \"paymentAmount\": {\n \"currency\": \"EUR\",\n \"value\": 499\n },\n \"order\": {\n \"orderDescription\": \"Monthly subscription - Premium plan\",\n \"merchant\": {\n \"store\": {\n \"externalStoreId\": \"STORE-77\"\n }\n }\n },\n \"settlementStrategy\": {\n \"settlementCurrency\": \"EUR\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Signature", "<api-key>")
req.Header.Add("Client-Id", "<api-key>")
req.Header.Add("Request-Time", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.rebellapp.com/v1/payments/linkPayCreate")
.header("Signature", "<api-key>")
.header("Client-Id", "<api-key>")
.header("Request-Time", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"productCode\": \"51051000101000100054\",\n \"paymentRequestId\": \"checkout-20240321-987\",\n \"paymentAmount\": {\n \"currency\": \"EUR\",\n \"value\": 499\n },\n \"order\": {\n \"orderDescription\": \"Monthly subscription - Premium plan\",\n \"merchant\": {\n \"store\": {\n \"externalStoreId\": \"STORE-77\"\n }\n }\n },\n \"settlementStrategy\": {\n \"settlementCurrency\": \"EUR\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rebellapp.com/v1/payments/linkPayCreate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Signature"] = '<api-key>'
request["Client-Id"] = '<api-key>'
request["Request-Time"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"productCode\": \"51051000101000100054\",\n \"paymentRequestId\": \"checkout-20240321-987\",\n \"paymentAmount\": {\n \"currency\": \"EUR\",\n \"value\": 499\n },\n \"order\": {\n \"orderDescription\": \"Monthly subscription - Premium plan\",\n \"merchant\": {\n \"store\": {\n \"externalStoreId\": \"STORE-77\"\n }\n }\n },\n \"settlementStrategy\": {\n \"settlementCurrency\": \"EUR\"\n }\n}"
response = http.request(request)
puts response.read_body{
"result": {
"resultCode": "<string>",
"resultMessage": "<string>"
},
"merchantTransId": "<string>",
"redirectUrl": "<string>",
"appLinks": {
"android": {
"applicationId": "<string>",
"bundleId": "<string>",
"targetPath": "<string>",
"shortUrl": "<string>"
},
"ios": {
"applicationId": "<string>",
"bundleId": "<string>",
"targetPath": "<string>",
"shortUrl": "<string>"
}
},
"acquirementId": "<string>"
}{
"result": {
"resultCode": "<string>",
"resultMessage": "<string>"
}
}Link Pay Create
Create a redirect link for app-to-app or browser-to-app payment flow.
curl -X POST https://api.rebellapp.com/v1/payments/linkPayCreate \
-H "Content-Type: application/json" \
-H "Client-Id: YOUR_CLIENT_ID" \
-H "Request-Time: 2024-01-10T12:00:00Z" \
-H "Signature: algorithm=SHA256withRSA, keyVersion=1, signature=BASE64_SIGNATURE" \
-d '{
"productCode": "51051000101000100054",
"paymentRequestId": "checkout-20240321-987",
"paymentAmount": {
"currency": "EUR",
"value": 499
},
"order": {
"orderDescription": "Monthly subscription - Premium plan"
},
"settlementStrategy": {
"settlementCurrency": "EUR"
}
}'const response = await fetch('https://api.rebellapp.com/v1/payments/linkPayCreate', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Client-Id': 'YOUR_CLIENT_ID',
'Request-Time': new Date().toISOString(),
'Signature': 'algorithm=SHA256withRSA, keyVersion=1, signature=BASE64_SIGNATURE'
},
body: JSON.stringify({
productCode: '51051000101000100054',
paymentRequestId: `checkout-${orderId}-${Date.now()}`,
paymentAmount: { currency: 'EUR', value: 499 },
order: { orderDescription: 'Monthly subscription - Premium plan' },
settlementStrategy: { settlementCurrency: 'EUR' }
})
});
const data = await response.json();
// Redirect user to Rebell app
window.location.href = data.appLinks.ios.shortUrl; // or androidimport requests
response = requests.post(
'https://api.rebellapp.com/v1/payments/linkPayCreate',
headers={
'Content-Type': 'application/json',
'Client-Id': 'YOUR_CLIENT_ID',
'Request-Time': '2024-01-10T12:00:00Z',
'Signature': 'algorithm=SHA256withRSA, keyVersion=1, signature=BASE64_SIGNATURE'
},
json={
'productCode': '51051000101000100054',
'paymentRequestId': f'checkout-{order_id}-{int(time.time())}',
'paymentAmount': {'currency': 'EUR', 'value': 499},
'order': {'orderDescription': 'Monthly subscription - Premium plan'},
'settlementStrategy': {'settlementCurrency': 'EUR'}
}
)
data = response.json()
# Return redirect URLs to frontend
redirect_url = data['redirectUrl']
app_links = data['appLinks']<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.rebellapp.com/v1/payments/linkPayCreate",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'productCode' => '51051000101000100054',
'paymentRequestId' => 'checkout-20240321-987',
'paymentAmount' => [
'currency' => 'EUR',
'value' => 499
],
'order' => [
'orderDescription' => 'Monthly subscription - Premium plan',
'merchant' => [
'store' => [
'externalStoreId' => 'STORE-77'
]
]
],
'settlementStrategy' => [
'settlementCurrency' => 'EUR'
]
]),
CURLOPT_HTTPHEADER => [
"Client-Id: <api-key>",
"Content-Type: application/json",
"Request-Time: <api-key>",
"Signature: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.rebellapp.com/v1/payments/linkPayCreate"
payload := strings.NewReader("{\n \"productCode\": \"51051000101000100054\",\n \"paymentRequestId\": \"checkout-20240321-987\",\n \"paymentAmount\": {\n \"currency\": \"EUR\",\n \"value\": 499\n },\n \"order\": {\n \"orderDescription\": \"Monthly subscription - Premium plan\",\n \"merchant\": {\n \"store\": {\n \"externalStoreId\": \"STORE-77\"\n }\n }\n },\n \"settlementStrategy\": {\n \"settlementCurrency\": \"EUR\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Signature", "<api-key>")
req.Header.Add("Client-Id", "<api-key>")
req.Header.Add("Request-Time", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.rebellapp.com/v1/payments/linkPayCreate")
.header("Signature", "<api-key>")
.header("Client-Id", "<api-key>")
.header("Request-Time", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"productCode\": \"51051000101000100054\",\n \"paymentRequestId\": \"checkout-20240321-987\",\n \"paymentAmount\": {\n \"currency\": \"EUR\",\n \"value\": 499\n },\n \"order\": {\n \"orderDescription\": \"Monthly subscription - Premium plan\",\n \"merchant\": {\n \"store\": {\n \"externalStoreId\": \"STORE-77\"\n }\n }\n },\n \"settlementStrategy\": {\n \"settlementCurrency\": \"EUR\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rebellapp.com/v1/payments/linkPayCreate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Signature"] = '<api-key>'
request["Client-Id"] = '<api-key>'
request["Request-Time"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"productCode\": \"51051000101000100054\",\n \"paymentRequestId\": \"checkout-20240321-987\",\n \"paymentAmount\": {\n \"currency\": \"EUR\",\n \"value\": 499\n },\n \"order\": {\n \"orderDescription\": \"Monthly subscription - Premium plan\",\n \"merchant\": {\n \"store\": {\n \"externalStoreId\": \"STORE-77\"\n }\n }\n },\n \"settlementStrategy\": {\n \"settlementCurrency\": \"EUR\"\n }\n}"
response = http.request(request)
puts response.read_body{
"result": {
"resultCode": "<string>",
"resultMessage": "<string>"
},
"merchantTransId": "<string>",
"redirectUrl": "<string>",
"appLinks": {
"android": {
"applicationId": "<string>",
"bundleId": "<string>",
"targetPath": "<string>",
"shortUrl": "<string>"
},
"ios": {
"applicationId": "<string>",
"bundleId": "<string>",
"targetPath": "<string>",
"shortUrl": "<string>"
}
},
"acquirementId": "<string>"
}{
"result": {
"resultCode": "<string>",
"resultMessage": "<string>"
}
}Authorizations
RSA SHA256 signature header. Example: Signature: algorithm=SHA256withRSA, keyVersion=0, signature=BASE64...
Rebell-assigned Client Id.
RFC3339 timestamp (e.g., 2019-05-28T12:12:00+08:00).
Body
Payment product type assigned by Rebell
Merchant-generated unique ID (idempotency key). Must be unique per transaction.
Amount in minor units (e.g., cents).
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Payment result notification URL.
Redirect URL after payment completion.
Show child attributes
Show child attributes
Response
OK
Show child attributes
Show child attributes
Echo of the merchant-provided transaction ID from the request
Deep link to open Rebell SuperApp directly
Platform-specific app link metadata
Show child attributes
Show child attributes
Unique platform payment order ID, used for inquiry or reconciliation