Create a new payment request for a user to subscribe to a plan.
POST/v2/projects/{project_id}/payment-requests Path Parameters
The unique identifier of the project.
Request Body
The user ID to create the payment for.
The plan ID to subscribe to.
Specific merchant account to use. If omitted, uses default.
Optional coupon code to apply.
Additional metadata for the payment.
curl -X POST "https://api.botsubscription.com/v2/projects/YOUR_PROJECT_ID/payment-requests" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"user_id": "123456789012345678",
"plan_id": "11111111-1111-1111-1111-111111111111",
"coupon_code": "SUMMER2024"
}'
const project_id = 'YOUR_PROJECT_ID';
const response = await fetch(`https://api.botsubscription.com/v2/projects/${project_id}/payment-requests`, {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({
user_id: '123456789012345678',
plan_id: '11111111-1111-1111-1111-111111111111',
coupon_code: 'SUMMER2024'
})
});
const data = await response.json();
import requests
project_id = 'YOUR_PROJECT_ID'
response = requests.post(
f'https://api.botsubscription.com/v2/projects/{project_id}/payment-requests',
headers={
'Authorization': 'Bearer YOUR_TOKEN',
'Content-Type': 'application/json'
},
json={
'user_id': '123456789012345678',
'plan_id': '11111111-1111-1111-1111-111111111111',
'coupon_code': 'SUMMER2024'
}
)
data = response.json()
$project_id = 'YOUR_PROJECT_ID';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.botsubscription.com/v2/projects/{$project_id}/payment-requests");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_TOKEN',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'user_id' => '123456789012345678',
'plan_id' => '11111111-1111-1111-1111-111111111111',
'coupon_code' => 'SUMMER2024'
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
Payment request createdapplication/json
{
"ok": true,
"request_id": "11111111-1111-1111-1111-111111111111",
"method": "POST",
"path": "/v2/projects/YOUR_PROJECT_ID/payment-requests",
"code": 201,
"message": "Payment request created successfully",
"data": {
"payment_request_id": "11111111-1111-1111-1111-111111111111",
"merchant_account_id": "22222222-2222-2222-2222-222222222222",
"amount": "23.99",
"currency": "USD",
"status": "pending",
"request_type": "invoice",
"created_at": "2024-12-15T10:30:00.000Z",
"user_id": "123456789012345678",
"provider": "stripe",
"provider_payment_id": "pi_3NkQz2ABC123",
"settled_at": null,
"payment_request_data": {}
}
}
Invalid requestapplication/json
{
"ok": false,
"request_id": "11111111-1111-1111-1111-111111111111",
"method": "POST",
"path": "/v2/projects/YOUR_PROJECT_ID/payment-requests",
"code": 400,
"error": {
"error_code": "BAD_REQUEST",
"message": "Plan not found"
}
}
User already subscribedapplication/json
{
"ok": false,
"request_id": "11111111-1111-1111-1111-111111111111",
"method": "POST",
"path": "/v2/projects/YOUR_PROJECT_ID/payment-requests",
"code": 409,
"error": {
"error_code": "CONFLICT",
"message": "User already has an active subscription to this plan"
}
}
Last updated: