curl --request GET \
--url https://api.example.com/subscriptions \
--header 'ApiKey: <apikey>' \
--header 'Environment: <environment>' \
--header 'MerchantId: <merchantid>'import requests
url = "https://api.example.com/subscriptions"
headers = {
"ApiKey": "<apikey>",
"MerchantId": "<merchantid>",
"Environment": "<environment>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {ApiKey: '<apikey>', MerchantId: '<merchantid>', Environment: '<environment>'}
};
fetch('https://api.example.com/subscriptions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/subscriptions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"ApiKey: <apikey>",
"Environment: <environment>",
"MerchantId: <merchantid>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/subscriptions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("ApiKey", "<apikey>")
req.Header.Add("MerchantId", "<merchantid>")
req.Header.Add("Environment", "<environment>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/subscriptions")
.header("ApiKey", "<apikey>")
.header("MerchantId", "<merchantid>")
.header("Environment", "<environment>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/subscriptions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["ApiKey"] = '<apikey>'
request["MerchantId"] = '<merchantid>'
request["Environment"] = '<environment>'
response = http.request(request)
puts response.read_body[
{
"id": 123,
"cybersourceSubscriptionId": {},
"status": "created",
"billingMode": "rbs_scheduled",
"frequency": "weekly",
"amount": {},
"currency": "<string>",
"startDate": {},
"customerId": "<string>",
"createdAt": "2023-11-07T05:31:56Z"
}
]{
"status": 401,
"error": {
"type": "authorization_error",
"code": "wrong_credentials",
"message": "L'ID marchand et/ou la clé d'API sont incorrects."
}
}{
"type": "internal_error",
"code": [
"internal_error",
"wrong_credentials",
"not_granted",
"live_mode_not_granted"
],
"message": "An error occurred on our system. Please try again later."
}Retrieve a Subscription collection
curl --request GET \
--url https://api.example.com/subscriptions \
--header 'ApiKey: <apikey>' \
--header 'Environment: <environment>' \
--header 'MerchantId: <merchantid>'import requests
url = "https://api.example.com/subscriptions"
headers = {
"ApiKey": "<apikey>",
"MerchantId": "<merchantid>",
"Environment": "<environment>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {ApiKey: '<apikey>', MerchantId: '<merchantid>', Environment: '<environment>'}
};
fetch('https://api.example.com/subscriptions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/subscriptions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"ApiKey: <apikey>",
"Environment: <environment>",
"MerchantId: <merchantid>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/subscriptions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("ApiKey", "<apikey>")
req.Header.Add("MerchantId", "<merchantid>")
req.Header.Add("Environment", "<environment>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/subscriptions")
.header("ApiKey", "<apikey>")
.header("MerchantId", "<merchantid>")
.header("Environment", "<environment>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/subscriptions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["ApiKey"] = '<apikey>'
request["MerchantId"] = '<merchantid>'
request["Environment"] = '<environment>'
response = http.request(request)
puts response.read_body[
{
"id": 123,
"cybersourceSubscriptionId": {},
"status": "created",
"billingMode": "rbs_scheduled",
"frequency": "weekly",
"amount": {},
"currency": "<string>",
"startDate": {},
"customerId": "<string>",
"createdAt": "2023-11-07T05:31:56Z"
}
]{
"status": 401,
"error": {
"type": "authorization_error",
"code": "wrong_credentials",
"message": "L'ID marchand et/ou la clé d'API sont incorrects."
}
}{
"type": "internal_error",
"code": [
"internal_error",
"wrong_credentials",
"not_granted",
"live_mode_not_granted"
],
"message": "An error occurred on our system. Please try again later."
}Headers
Your api key. To create a key, please get into our dashboard. If you don't have access to it, please reach the Support team.
Your merchant ID. This information is available in our dashboard. If you don't have access to it, please reach the Support team.
Allow you to choose between the sandbox mode to perform some tests or the live mode for real world transactions.
live, sandbox Query Parameters
Exact match on the merchant customer reference.
rbs_scheduled, merchant_initiated created, pending, active, delinquent, suspended, cancelled, completed The page number in the returned data. The default value is 1. Do use with 'perPage' query parameter to paginate properly.
2
The maximum number of results that will be return. The default value is 10. Do use with 'page' query parameter to paginate properly.
5
Response
Subscription identifier — pass this into the cancel/suspend/charge/transactions endpoints.
Same value received as subscriptionId in the subscription.created webhook payload. Null for a merchant_initiated subscription — there is no RBS-side subscription.
created, pending, active, delinquent, suspended, cancelled, completed rbs_scheduled — debited on a schedule by Cybersource RBS; merchant_initiated — charged on demand via POST /subscriptions/{id}/charge.
rbs_scheduled, merchant_initiated Null for a merchant_initiated subscription — charges are on-demand, not scheduled.
weekly, monthly Null for a merchant_initiated subscription — charge amounts are per-call, not fixed.
Null for a merchant_initiated subscription.
