Subscriptions
List Subscriptions
List subscriptions of the authenticated customer.
Scopes: customer_portal:read customer_portal:write
GET
/
v1
/
customer-portal
/
subscriptions
/
Go (SDK)
package main
import(
"context"
macropaygo "github.com/web3group/macropay-go-main"
"github.com/web3group/macropay-go-main/models/operations"
"os"
"log"
)
func main() {
ctx := context.Background()
s := macropaygo.New()
res, err := s.CustomerPortal.Subscriptions.List(ctx, operations.CustomerPortalSubscriptionsListRequest{}, operations.CustomerPortalSubscriptionsListSecurity{
CustomerSession: os.Getenv("MACROPAY_CUSTOMER_SESSION"),
})
if err != nil {
log.Fatal(err)
}
if res.ListResourceCustomerSubscription != nil {
for {
// handle items
res, err = res.Next()
if err != nil {
// handle error
}
if res == nil {
break
}
}
}
}import macropay_sdk
from macropay_sdk import Macropay
with Macropay() as macropay:
res = macropay.customer_portal.subscriptions.list(security=macropay_sdk.CustomerPortalSubscriptionsListSecurity(
customer_session="<YOUR_BEARER_TOKEN_HERE>",
), page=1, limit=10)
while res is not None:
# Handle items
res = res.next()import { Macropay } from "@macropayments/sdk";
const macropay = new Macropay();
async function run() {
const result = await macropay.customerPortal.subscriptions.list({
customerSession: process.env["MACROPAY_CUSTOMER_SESSION"] ?? "",
}, {});
for await (const page of result) {
console.log(page);
}
}
run();declare(strict_types=1);
require 'vendor/autoload.php';
use Macropay;
use Macropay\Models\Operations;
$sdk = Macropay\Macropay::builder()->build();
$request = new Operations\CustomerPortalSubscriptionsListRequest();
$requestSecurity = new Operations\CustomerPortalSubscriptionsListSecurity(
customerSession: '<YOUR_BEARER_TOKEN_HERE>',
);
$responses = $sdk->customerPortal->subscriptions->list(
request: $request,
security: $requestSecurity
);
foreach ($responses as $response) {
if ($response->statusCode === 200) {
// handle response
}
}curl --request GET \
--url https://api.macropay.ai/v1/customer-portal/subscriptions/ \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.macropay.ai/v1/customer-portal/subscriptions/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.get("https://api.macropay.ai/v1/customer-portal/subscriptions/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.macropay.ai/v1/customer-portal/subscriptions/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"items": [
{
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"amount": 123,
"currency": "<string>",
"recurring_interval_count": 123,
"current_period_start": "2023-11-07T05:31:56Z",
"current_period_end": "2023-11-07T05:31:56Z",
"trial_start": "2023-11-07T05:31:56Z",
"trial_end": "2023-11-07T05:31:56Z",
"cancel_at_period_end": true,
"canceled_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"ends_at": "2023-11-07T05:31:56Z",
"ended_at": "2023-11-07T05:31:56Z",
"customer_id": "<string>",
"product_id": "<string>",
"discount_id": "<string>",
"checkout_id": "<string>",
"customer_cancellation_comment": "<string>",
"product": {
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"trial_interval_count": 123,
"name": "<string>",
"description": "<string>",
"recurring_interval_count": 123,
"is_recurring": true,
"is_archived": true,
"organization_id": "<string>",
"prices": [
{
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"amount_type": "<string>",
"is_archived": true,
"product_id": "<string>",
"type": "<string>",
"price_currency": "<string>",
"price_amount": 123,
"legacy": true
}
],
"benefits": [
{
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"selectable": true,
"deletable": true,
"organization_id": "<string>"
}
],
"medias": [
{
"id": "<string>",
"organization_id": "<string>",
"name": "<string>",
"path": "<string>",
"mime_type": "<string>",
"size": 123,
"storage_version": "<string>",
"checksum_etag": "<string>",
"checksum_sha256_base64": "<string>",
"checksum_sha256_hex": "<string>",
"last_modified_at": "2023-11-07T05:31:56Z",
"version": "<string>",
"service": "<string>",
"is_uploaded": true,
"created_at": "2023-11-07T05:31:56Z",
"size_readable": "<string>",
"public_url": "<string>"
}
],
"organization": {
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"name": "<string>",
"slug": "<string>",
"avatar_url": "<string>",
"allow_customer_updates": true,
"customer_portal_settings": {
"usage": {
"show": true
},
"subscription": {
"update_seats": true,
"update_plan": true
}
}
}
},
"prices": [
{
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"amount_type": "<string>",
"is_archived": true,
"product_id": "<string>",
"type": "<string>",
"price_currency": "<string>",
"price_amount": 123,
"legacy": true
}
],
"meters": [
{
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"consumed_units": 123,
"credited_units": 123,
"amount": 123,
"meter_id": "<string>",
"meter": {
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"name": "<string>"
}
}
],
"seats": 123
}
],
"pagination": {
"total_count": 123,
"max_page": 123
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
customer_sessionmember_session
Customer session tokens are specific tokens that are used to authenticate customers on your organization. You can create those sessions programmatically using the Create Customer Session endpoint.
Query Parameters
Filter by product ID. The product ID.
Filter by active or cancelled subscription.
Search by product or organization name.
Page number, defaults to 1.
Size of a page, defaults to 10. Maximum is 100.
Sorting criterion. Several criteria can be used simultaneously and will be applied in order. Add a minus sign - before the criteria name to sort by descending order.
Available options:
started_at, -started_at, amount, -amount, status, -status, organization, -organization, product, -product ⌘I
Go (SDK)
package main
import(
"context"
macropaygo "github.com/web3group/macropay-go-main"
"github.com/web3group/macropay-go-main/models/operations"
"os"
"log"
)
func main() {
ctx := context.Background()
s := macropaygo.New()
res, err := s.CustomerPortal.Subscriptions.List(ctx, operations.CustomerPortalSubscriptionsListRequest{}, operations.CustomerPortalSubscriptionsListSecurity{
CustomerSession: os.Getenv("MACROPAY_CUSTOMER_SESSION"),
})
if err != nil {
log.Fatal(err)
}
if res.ListResourceCustomerSubscription != nil {
for {
// handle items
res, err = res.Next()
if err != nil {
// handle error
}
if res == nil {
break
}
}
}
}import macropay_sdk
from macropay_sdk import Macropay
with Macropay() as macropay:
res = macropay.customer_portal.subscriptions.list(security=macropay_sdk.CustomerPortalSubscriptionsListSecurity(
customer_session="<YOUR_BEARER_TOKEN_HERE>",
), page=1, limit=10)
while res is not None:
# Handle items
res = res.next()import { Macropay } from "@macropayments/sdk";
const macropay = new Macropay();
async function run() {
const result = await macropay.customerPortal.subscriptions.list({
customerSession: process.env["MACROPAY_CUSTOMER_SESSION"] ?? "",
}, {});
for await (const page of result) {
console.log(page);
}
}
run();declare(strict_types=1);
require 'vendor/autoload.php';
use Macropay;
use Macropay\Models\Operations;
$sdk = Macropay\Macropay::builder()->build();
$request = new Operations\CustomerPortalSubscriptionsListRequest();
$requestSecurity = new Operations\CustomerPortalSubscriptionsListSecurity(
customerSession: '<YOUR_BEARER_TOKEN_HERE>',
);
$responses = $sdk->customerPortal->subscriptions->list(
request: $request,
security: $requestSecurity
);
foreach ($responses as $response) {
if ($response->statusCode === 200) {
// handle response
}
}curl --request GET \
--url https://api.macropay.ai/v1/customer-portal/subscriptions/ \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.macropay.ai/v1/customer-portal/subscriptions/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.get("https://api.macropay.ai/v1/customer-portal/subscriptions/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.macropay.ai/v1/customer-portal/subscriptions/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"items": [
{
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"amount": 123,
"currency": "<string>",
"recurring_interval_count": 123,
"current_period_start": "2023-11-07T05:31:56Z",
"current_period_end": "2023-11-07T05:31:56Z",
"trial_start": "2023-11-07T05:31:56Z",
"trial_end": "2023-11-07T05:31:56Z",
"cancel_at_period_end": true,
"canceled_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"ends_at": "2023-11-07T05:31:56Z",
"ended_at": "2023-11-07T05:31:56Z",
"customer_id": "<string>",
"product_id": "<string>",
"discount_id": "<string>",
"checkout_id": "<string>",
"customer_cancellation_comment": "<string>",
"product": {
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"trial_interval_count": 123,
"name": "<string>",
"description": "<string>",
"recurring_interval_count": 123,
"is_recurring": true,
"is_archived": true,
"organization_id": "<string>",
"prices": [
{
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"amount_type": "<string>",
"is_archived": true,
"product_id": "<string>",
"type": "<string>",
"price_currency": "<string>",
"price_amount": 123,
"legacy": true
}
],
"benefits": [
{
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"selectable": true,
"deletable": true,
"organization_id": "<string>"
}
],
"medias": [
{
"id": "<string>",
"organization_id": "<string>",
"name": "<string>",
"path": "<string>",
"mime_type": "<string>",
"size": 123,
"storage_version": "<string>",
"checksum_etag": "<string>",
"checksum_sha256_base64": "<string>",
"checksum_sha256_hex": "<string>",
"last_modified_at": "2023-11-07T05:31:56Z",
"version": "<string>",
"service": "<string>",
"is_uploaded": true,
"created_at": "2023-11-07T05:31:56Z",
"size_readable": "<string>",
"public_url": "<string>"
}
],
"organization": {
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"name": "<string>",
"slug": "<string>",
"avatar_url": "<string>",
"allow_customer_updates": true,
"customer_portal_settings": {
"usage": {
"show": true
},
"subscription": {
"update_seats": true,
"update_plan": true
}
}
}
},
"prices": [
{
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"amount_type": "<string>",
"is_archived": true,
"product_id": "<string>",
"type": "<string>",
"price_currency": "<string>",
"price_amount": 123,
"legacy": true
}
],
"meters": [
{
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"consumed_units": 123,
"credited_units": 123,
"amount": 123,
"meter_id": "<string>",
"meter": {
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"name": "<string>"
}
}
],
"seats": 123
}
],
"pagination": {
"total_count": 123,
"max_page": 123
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}