Subscription Management

Create Subscription

Use this API to create a new subscription. After a successful request, the response will include a payment link that you must redirect your customer to in order to complete the subscription setup.

Endpoint

POST https://demo-api.frontpayment.no/api/v1/connect/subscriptions/submit

Authentication

This endpoint requires a Bearer Token for authentication. You will need to obtain this token from Front Payment and include it in the Authorization header of your request.

Example Authorization Header: Authorization: Bearer YOUR_FRONTPAID_BEARER_TOKEN

Request Payload

The request body should be a JSON object including the following elements:

{
  "products": [
    {
      "name": "string",
      "productId": "string or null",
      "quantity": number,
      "rate": number,
      "discount": number (optional),
      "tax": number,
      "amount": number
    }
  ],
  "billingFrequency": "string",
  "numberOfRepeats": number,
  "orderSummary": {
    "subTotal": number,
    "totalTax": number,
    "totalDiscount": number,
    "grandTotal": number,
    "payablePerCycle": number
  },
  "subscriptionStartDate": "string",
  "subscriptionEndsDate": "string",
  "dueDateForPaymentLink": "string",
  "sendOrderBy": {
    "sms": boolean,
    "email": boolean
  },
  "customerDetails": {
    "type": "string or null",
    "countryCode": "string or null",
    "msisdn": "string or null",
    "email": "string or null (must be email format)",
    "name": "string",
    "personalNumber": "string or null",
    "organizationId": "string or null (when type=corporate)",
    // (other fields like preferredLanguage or address may apply in checkout session—refer to specific endpoints)
  }
}

Validation Rules

The following table outlines validation constraints for each field in the request payload:

Field Type Description
products.*.name string Required. Name of the product.
products.*.productId string Optional. Unique identifier for the product.
products.*.quantity numeric Required. Quantity of the product.
products.*.rate numeric Required. Rate per unit of the product.
products.*.discount numeric Optional. Discount applied to the product.
products.*.tax numeric Required. Tax rate (e.g., 0, 12, 15, 25). Unless you have other configuration.
products.*.amount numeric Required. Total amount for the product line item.
billingFrequency string Required Defines how often the billing occurs (e.g., daily, weekly, monthly)
numberOfRepeats numeric RequiredSpecifies how many times the billing cycle should be repeated.
orderSummary.subTotal numeric Required. Subtotal of all products before tax and discount.
orderSummary.totalTax numeric Required. Total tax for the order.
orderSummary.totalDiscount numeric Required. Total discount for the order.
orderSummary.grandTotal numeric Required. Grand total of the order.
orderSummary.payablePerCycle numeric RequiredAmount to be paid by the customer for each billing cycle.
subscriptionStartDate string Required The date when the subscription becomes active.
subscriptionEndsDate string Required The end date of subscription
dueDateForPaymentLink string Required. Unix timestamp for the due date of the payment link.
sendOrderBy.sms boolean Required If the payment link should send via sms
sendOrderBy.email boolean Required If the payment link should send via email
customerDetails.type string Required. Customer type must be either private or corporate.
customerDetails.countryCode string Required. Country code for the customer's phone number (e.g., "+47")
customerDetails.msisdn string Required. Mobile Subscriber ISDN Number (phone number).
customerDetails.email email Required. Customer's email address.
customerDetails.name string Required. Customer's full name.
customerDetails.personalNumber string Optional Customer's personal identification number, must be 11 characters
customerDetails.organizationId string Required if customerDetails.type is corporate. Must be number

Responses

Successful Response

On success, you’ll receive a JSON response containing the status and a payment link to redirect the user:

{
  "status_code": 200,
  "status_message": "OK",
  "message": "subscriptionCreatedSuccessfully",
  "is_data": true,
  "data": {
    "paymentLink": "https://…",
    "subscriptionUuid": "…",
    "orderUuid": "…",
    // Possibly other metadata
  }
}

You must redirect the customer to paymentLink to finalize the subscription. ([docs.frontpayment.no][1])

Error Responses

Create Session For Subscription Payment

Use this API endpoint to create a new subscription using the checkout modality. Upon a successful request, you'll receive a paymentUrl that your application must redirect the customer to in order to complete the subscription setup.

Endpoint

Authentication

Requires Bearer Token authentication. Include the token in the Authorization header:

Authorization: Bearer YOUR_ACCESS_TOKEN

If the token is missing or invalid, the API returns a 401 Unauthorized response. ([docs.frontpayment.no][1])

Request Payload

The body must be JSON and include fields such as products, billing schedule, customer details, callback URLs, etc. Here's a condensed example:

{
  "products": {
    "0": {
      "name": "product 3",
      "productId": null,
      "quantity": "1",
      "rate": "2000",
      "discount": 0,
      "tax": "0",
      "amount": 2000
    }
  },
  "orderSummary": {
    "subTotal": "2000.00",
    "totalTax": "0.00",
    "totalDiscount": "0.00",
    "grandTotal": "2000.00",
    "payablePerCycle": "2000.00"
  },
  "billingFrequency": "month",
  "numberOfRepeats": 12,
  "subscriptionStartDate": "21 Feb, 2023",
  "subscriptionEndsDate": "21 Feb, 2024",
  "dueDateForPaymentLink": "1677047770.652",
  "customerDetails": {
    "customerUuid": "CSRT3798554634",
    "type": "private",
    "countryCode": "+47",
    "msisdn": "46567468",
    "email": "[email protected]",
    "name": "Kari Nordmann",
    "personalNumber": null,
    "organizationId": "925710482",
    "preferredLanguage": "no",
    "address": {
      "street": "Luramyrveien 65",
      "zip": "4313",
      "city": "Sandnes",
      "country": "Norway"
    }
  },
  "customerNotes": "test",
  "termsAndConditions": "terms and conditions",
  "submitPayment": {
    "via": "visa",
    "currency": "NOK"
  },
  "callback": {
    "success": "https://demo.frontpayment.no/?order_identifier=...&order_status=success",
    "failure": "https://demo.frontpayment.no/?order_identifier=...&order_status=failed"
  }
}

([docs.frontpayment.no][1])

Validation Rules

Below are the validation constraints for each field:

Field Type Description
products.*.namestringRequired
products.*.productIdstringOptional, max length 25
products.*.quantitynumericRequired
products.*.ratenumericRequired
products.*.discountnumericOptional
products.*.taxnumericRequired
products.*.amountnumericRequired
billingFrequencystringRequired (e.g., monthly, weekly, daily)
numberOfRepeatsnumericRequired
orderSummary.subTotalnumericRequired
orderSummary.totalTaxnumericRequired
orderSummary.totalDiscountnumericRequired
orderSummary.grandTotalnumericRequired
orderSummary.payablePerCyclenumericRequired
subscriptionStartDatestringRequired
subscriptionEndsDatestringRequired
dueDateForPaymentLinkstringRequired
customerDetails.typestringRequired (nullable)
customerDetails.countryCodestringRequired (nullable)
customerDetails.msisdnstringRequired (nullable)
customerDetails.emailemailRequired (nullable)
customerDetails.namestringRequired
customerDetails.personalNumberstringOptional, Customer's personal identification number, must be 11 characters.
customerDetails.organizationIdstringRequired if type=corporate, Optional, regex /^[a-zA-Z0-9]+$/
customerDetails.preferredLanguagestringRequired
customerDetails.addressarrayRequired
customerDetails.address.streetstringRequired
customerDetails.address.zipstringRequired
customerDetails.address.citystringRequired
customerDetails.address.countrystringRequired, ISO Alpha-2 country code
customerNotesstringOptional
termsAndConditionsstringOptional
submitPayment.currencystringRequired
submitPayment.viastringOptional
settingsarrayOptional
settings.secureDetailsbooleanOptional
callback.successurlRequired
callback.failureurlRequired
:contentReference[oaicite:4]{index=4}

Response

Success

Returns HTTP status 201 with a payload like:

{
  "status_code": 201,
  "status_message": "OK",
  "message": "subscriptionRequestSuccessfullyHandled",
  "is_data": true,
  "data": {
    "subscriptionUuid": "SUB1812030514",
    "orderUuid": "ODR3798113293",
    "customerUuid": "CSRT3820359602",
    "paymentUrl": "https://..."
  }
}

([docs.frontpayment.no][1])

Error Responses

Get Subscription List

Description:
Retrieves a paginated list of subscriptions. The response includes details of each subscription, and filtering options can be applied via query parameters.

Url Parameter Parameters:

Query Parameters:

Authentication

This endpoint requires authentication using a Bearer Token. The client must send the token in the Authorization header for every request.

Example Authentication Header:

Authorization: Bearer YOUR_ACCESS_TOKEN

If the token is missing or invalid, the API will return a 401 Unauthorized response.

Endpoint : https://demo-api.frontpayment.no/api/v1/connect/subscriptions/list/{status?}
Method : GET
Authorization : Bearer

Response Structure

{
  "status_code": 200,
  "status_message": "OK",
  "message": "subscriptionRetrieveSuccessfully",
  "is_data": true,
  "data": [
    {
      "subscriptionUuid": "String",
      "orderUuid": "String",
      "repeats": "Integer",
      "frequency": "String",
      "amount": "Float",
      "currency": "String",
      "createdAt": "String",
      "customerName": "String",
      "clientName": "String",
      "customerEmail": "String",
      "countryCode": "String",
      "msisdn": "String",
      "status": "String",
      "isPaid": "Boolean",
      "isRefundable": "Boolean",
      "numberOfPaidCycles": "Integer"
    }
  ],
  "metaData": {
    "total": "Integer",
    "perPage": "Integer",
    "currentPage": "Integer",
    "lastPage": "Integer"
  },
  "links": {
    "previous": null,
    "next": "https://fpgo-backend.test/api/v1/connect/subscriptions/failed/list?page=2"
  }
}

Example Response

{
    "status_code": 200,
    "status_message": "OK",
    "message": "subscriptionRetrieveSuccessfully",
    "is_data": true,
    "data": [
     
        {
            "subscriptionUuid": "SUB3959080783",
            "orderUuid": "ODR1530327942",
            "repeats": 12,
            "frequency": "month",
            "amount": 2000,
            "currency": "NOK",
            "createdAt": "07.11.2023",
            "customerName": "420 Test",
            "clientName": "Front Payment AS",
            "customerEmail": "local-420test@yopmail.com",
            "countryCode": "+47",
            "msisdn": "46567468",
            "status": "EXPIRED",
            "isPaid": false,
            "isRefundable": false,
            "numberOfPaidCycles": 0,
        },
        {
            "subscriptionUuid": "SUB4132380543",
            "orderUuid": "ODR2167679196",
            "repeats": 12,
            "frequency": "month",
            "amount": 2000,
            "currency": "NOK",
            "createdAt": "05.11.2023",
            "customerName": "420 Test",
            "clientName": "Front Payment AS",
            "customerEmail": "local-420test@yopmail.com",
            "countryCode": "+47",
            "msisdn": "46567468",
            
            "status": "ONGOING",
            "isPaid": true,
            "isRefundable": true,
             "numberOfPaidCycles": 4,
        },
        {
            "subscriptionUuid": "SUB2007828928",
            "orderUuid": "ODR187366332",
            "repeats": 12,
            "frequency": "month",
            "amount": 2000,
            "currency": "NOK",
            "createdAt": "05.11.2023",
            "customerName": "420 Test",
            "clientName": "Front Payment AS",
            "customerEmail": "local-420test@yopmail.com",
            "countryCode": "+47",
            "msisdn": "46567468",
            "status": "ONGOING",
            "isPaid": true,
            "isRefundable": true,
            "numberOfPaidCycles": 1,
        },
      ....
    ],
    "metaData": {
        "total": 3,
        "perPage": 50,
        "currentPage": 1,
        "lastPage": 1
    },
    "links": {
        "previous": null,
        "next": "https://fpgo-backend.test/api/v1/connect/subscriptions/list?page=2"
    }
}

Get Failed Payment List

Description:
Retrieves a paginated list of failed subscription orders. The response includes details of each subscription order, and filtering options can be applied via query parameters.

Url Parameter Parameters:

Query Parameters:

Authentication

This endpoint requires authentication using a Bearer Token. The client must send the token in the Authorization header for every request.

Example Authentication Header:

Authorization: Bearer YOUR_ACCESS_TOKEN
 

If the token is missing or invalid, the API will return a 401 Unauthorized response.

Endpoint : https://demo-api.frontpayment.no/api/v1/connect/subscriptions/failed/list/{status?}
Method : GET
Authorization : Bearer

Response Structure

:
{
    "status_code": 200,
    "status_message": "OK",
    "message": "failedSubscriptionOrdersRetrievedSuccessfully!",
    "is_data": true,
    "data": [
        {
            "orderUuid": "String",
            "orderDate": "String",
            "customerName": "String",
            "clientName": "String",
            "countryCode": "String",
            "msisdn": "String",
            "currency": "String",
            "amount": "Float",
            "status": "String",
            "translationKey": "failedSubscriptionOrderInvoiced",
            "subscriptionUuid": "String"
        },
       "metaData": {
          "total": "Integer",
          "perPage": "Integer",
          "currentPage": "Integer",
          "lastPage": "Integer"
        },
        "links": {
          "previous": null,
          "next": "https://fpgo-backend.test/api/v1/connect/subscriptions/failed/list?page=2"
        }
}

Example Response

:
{
  "status_code": 200,
  "status_message": "OK",
  "message": "failedSubscriptionOrdersRetrievedSuccessfully!",
  "is_data": true,
  "data": [
    {
      "orderUuid": "ODR1276808511",
      "orderDate": "19.12.2024",
      "customerName": "Nafees",
      "clientName": "Sweden & Co",
      "countryCode": "+47",
      "msisdn": "46567468",
      "currency": "NOK",
      "amount": 2500,
      "status": "INVOICED",
      "translationKey": "failedSubscriptionOrderInvoiced",
      "subscriptionUuid": "SUB2532543787"
    },
    {
      "orderUuid": "ODR266110120",
      "orderDate": "19.12.2024",
      "customerName": "Nafees",
      "clientName": "Sweden & Co",
      "countryCode": "+47",
      "msisdn": "46567468",
      "currency": "NOK",
      "amount": 10,
      "status": "INVOICED",
      "translationKey": "failedSubscriptionOrderInvoiced",
      "subscriptionUuid": "SUB2642190423"
    }
  ],
  "metaData": {
    "total": 133,
    "perPage": 50,
    "currentPage": 1,
    "lastPage": 3
  },
  "links": {
    "previous": null,
    "next": "https://fpgo-backend.test/api/v1/connect/subscriptions/failed/list?page=2"
  }
}

Get Subscription Details By Uuid

Description:
Retrieves a subscription by uuid. The response includes details of the  subscription.

Url Parameter Parameters:

Authentication

This endpoint requires authentication using a Bearer Token. The client must send the token in the Authorization header for every request.

Example Authentication Header:

Authorization: Bearer YOUR_ACCESS_TOKEN

If the token is missing or invalid, the API will return a 401 Unauthorized response.

Endpoint : https://demo-api.frontpayment.no/api/v1/connect/subscriptions/details/{subscriptionUuid}
Method : GET
Authorization : Bearer
Payload Validations :
Example Payload :
Response Structure :
{
    "status_code": 200,
    "status_message": "OK",
    "message": "subscriptionDetailsRetrievedSuccessfully",
    "is_data": true,
    "data": {
        "subscriptionUuid": "String",
        "status": "String",
        "subscriptionSummary": {
            "subscriptionAmount": "Float",
            "amountPaid": "Float",
            "amountRefunded": "Float",
            "amountInBank": "Float",
            "startDate": "String",
            "endDate": "String",
            "dueDateForPaymentLink": "String",
            "payablePerCycle": "Integer",
            "frequency": "String",
            "repeats": "Integer",
            "currency": "String",
            "currentCycle": "String",
            "isPaid": "Boolean",
            "isRefundable": "Boolean"
        },
        "productList": [
            {
                "id": "Integer",
                "productName": "String",
                "productId": "null|String",
                "quantity": "Integer",
                "rate": "Float",
                "discount": "Integer",
                "tax": "Integer",
                "amount": "Float"
            }
        ],
        "sendOrderBy": {
            "sms": "Boolean",
            "email": "Boolean"
        },
        "customerDetails": {
            "customerUuid": "String",
            "customerName": "String",
            "customerEmail": "String",
            "countryCode": "String",
            "msisdn": "String",
            "preferredLanguage": "String",
            "address": {
                "street": "String",
                "zip": "String",
                "city": "String",
                "country": "String"
            }
        },
        "organizationDetails": {
            "name": "String",
            "billingAddress": {
                "countryCode": "String",
                "msisdn": "String",
                "email": "String",
                "street": "String",
                "zip": "String",
                "city": "String",
                "country": "String"
            }
        },
        "subscriptionCycles": {
            "Cycle 1": {
                "reference": "String",
                "status": "String",
                "invoiced": "Boolean",
                "amount": "Float",
                "startDate": "String",
                "endDate": "String",
                "isRefunded": "Boolean",
                "refundedAt": "null|String",
                "refundedAmount": "Float"
            }
        },
        "customerNote": "null|String",
        "termsAndConditions": "null|String"
    }
}
Example Response :
{
    "status_code": 200,
    "status_message": "OK",
    "message": "subscriptionDetailsRetrievedSuccessfully",
    "is_data": true,
    "data": {
        "subscriptionUuid": "SUB1087613902",
        "status": "ONGOING",
        "subscriptionSummary": {
            "subscriptionAmount": 100,
            "amountPaid": 2600,
            "amountRefunded": 0,
            "amountInBank": 2600,
            "startDate": "10.09.2023",
            "endDate": "09.03.2023",
            "dueDateForPaymentLink": "07:13, 12.09.2023",
            "payablePerCycle": 100,
            "frequency": "monthly",
            "repeats": 30,
            "currency": "NOK",
            "currentCycle": "Cycle 26",
            "isPaid": true,
            "isRefundable": true
        },
        "productList": [
            {
                "id": 1035,
                "productName": "Test Service",
                "productId": "S001",
                "quantity": 1,
                "rate": 100,
                "discount": 0,
                "tax": 0,
                "amount": 100
            }
        ],
        "sendOrderBy": {
            "sms": false,
            "email": true
        },
        "customerDetails": {
            "customerUuid": "CSRT3798554634",
            "customerName": "Kari Nordmann",
            "customerEmail": "test@yopmail.com",
            "countryCode": "+47",
            "msisdn": "4656746822",
            "preferredLanguage": "no",
            "address": {
                "street": "Luramyrveien 65",
                "zip": "4313",
                "city": "Sandnes",
                "country": "Norway"
            }
        },
        "organizationDetails": {
            "name": "Front Payment AS",
            "billingAddress": {
                "countryCode": "+47",
                "msisdn": "98098405",
                "email": "test@yopmail.com",
                "street": "Luramyrveien 65",
                "zip": "4313",
                "city": "Sandnes ",
                "country": "Norway"
            }
        },
        "subscriptionCycles": {
            "Cycle 1": {
                "reference": "ODR434476639",
                "status": "PAID",
                "invoiced": false,
                "amount": 100,
                "startDate": "10.09.2023",
                "endDate": "09.10.2023",
                "isRefunded": false,
                "refundedAt": null,
                "refundedAmount": 0
            },
            "Cycle 2": {
                "reference": "ODR3759688884",
                "status": "PAID",
                "invoiced": false,
                "amount": 100,
                "startDate": "01.11.2023",
                "endDate": "30.11.2023",
                "isRefunded": false,
                "refundedAt": null,
                "refundedAmount": 0
            },
            "Cycle 3": {
                "reference": "ODR2701395834",
                "status": "PAID",
                "invoiced": false,
                "amount": 100,
                "startDate": "01.11.2023",
                "endDate": "30.11.2023",
                "isRefunded": false,
                "refundedAt": null,
                "refundedAmount": 0
            },
            "Cycle 4": {
                "reference": "ODR608898249",
                "status": "PAID",
                "invoiced": false,
                "amount": 100,
                "startDate": "01.11.2023",
                "endDate": "30.11.2023",
                "isRefunded": false,
                "refundedAt": null,
                "refundedAmount": 0
            }
        },
        "customerNote": null,
        "termsAndConditions": null
    }
}

Get Failed Payment Details

Description:
Retrieves a failed subscription order by  orderUuid. The response includes details of the failed subscription order.

Url Parameter Parameters:

Authentication

This endpoint requires authentication using a Bearer Token. The client must send the token in the Authorization header for every request.

Example Authentication Header:

Authorization: Bearer YOUR_ACCESS_TOKEN

If the token is missing or invalid, the API will return a 401 Unauthorized response.

Endpoint : https://demo-api.frontpayment.no/api/v1/connect/subscriptions/failed/details/{orderUuid}
Method : GET
Authorization : Bearer
Payload Validation :
Response Structure :
{
  "status_code": "Integer",
  "status_message": "String",
  "message": "String",
  "is_data": "Boolean",
  "data": {
    "subscriptionUuid": "String",
    "orderDate": "String",
    "customerNotes": "String",
    "isInvoiced": "Boolean",
    "termsAndConditions": "String| null",
    "customerName": "string",
    "countryCode": "String",
    "msisdn": "String",
    "email": "String",
    "street": "String",
    "zip": "String",
    "city": "String",
    "country": "String",
    "subTotal": "Float",
    "totalDiscount": "Float",
    "totalTax": "Float",
    "currency": "String",
    "status": "String",
    "products": [
      {
        "productName": "String",
        "quantity": "Integer",
        "rate": "Float",
        "discount": "Float",
        "tax": "Float",
        "amount": "Float"
      }
    ]
  }
}

Example Response :
{
  "status_code": 200,
  "status_message": "OK",
  "message": "orderRetrievedSuccessfully",
  "is_data": true,
  "data": {
    "subscriptionUuid": "SUB2532543787",
    "orderDate": "19.12.2024",
    "customerNotes": null,
    "isInvoiced": 1,
    "termsAndConditions": null,
    "customerName": "Nafees",
    "countryCode": "+47",
    "msisdn": "46567468",
    "email": "nafees@yopmail.com",
    "street": "Lura",
    "zip": "4131",
    "city": "Stavanger",
    "country": "NO",
    "subTotal": 2173.91,
    "totalDiscount": 0,
    "totalTax": 326.09,
    "currency": "NOK",
    "status": "INVOICED",
    "products": [
      {
        "productName": "Health Check Service 3",
        "quantity": 1,
        "rate": 2500,
        "discount": 0,
        "tax": 15,
        "amount": 2500
      }
    ]
  }
}

Resend Subscription

Description:
Resend  subscription payment link.

Url Parameter Parameters:

Endpoint : https://demo-api.frontpayment.no/api/v1/connect/subscriptions/resend/{subscriptionUuid}
Method : POST
Request Payload :
{
  "orderUuid": "String",
  "countryCode": "String",
  "msisdn": "String",
  "email": "String"
}
Response Structure :
{
    "status_code": 202,
    "status_message": "OK",
    "message": "subscriptionOrderResentSuccessfully",
    "is_data": false,
    "data": "Array"
}

Response Example :  
{
    "status_code": 202,
    "status_message": "OK",
    "message": "subscriptionOrderResentSuccessfully",
    "is_data": false,
    "data": null
}

Cancel Subscription

Description

Cancel a subscription by uuid. Only SEND and ONGOING subscription can be cancelled

Endpoint : https://demo-api.frontpayment.no/api/v1/connect/subscriptions/cancel/{subscriptionUuid}
Method : POST
Authorization : Bearer
Request Payload :
{
    "note": "String"
}

Response Structure :  
{
    "status_code": 201,
    "status_message": "OK",
    "message": "successfullyCancelledSubscription",
    "is_data": true,
    "data": "Array"
}
Example Response :
{
    "status_code": 201,
    "status_message": "OK",
    "message": "successfullyCancelledSubscription",
    "is_data": true,
    "data": []
}
{
    "status_code": 400,
    "status_message": "Conflict of Business Logic ",
    "message": "cannotCancelSubscription",
    "is_error": true,
    "errors": []
}

Refund Subscription Cycle

Description:
Refund a specific order or cycle of a subscription

Url Parameter Parameters:

Authentication

This endpoint requires authentication using a Bearer Token. The client must send the token in the Authorization header for every request.

Example Authentication Header:

Authorization: Bearer YOUR_ACCESS_TOKEN

If the token is missing or invalid, the API will return a 401 Unauthorized response.

Endpoint : https://demo-api.frontpayment.no/api/v1/connect/subscriptions/cycles/refund/{subscriptionUuid}
Method : POST
Authorization
Bearer
Request Payload :
'cycles' => 'required|array',
'amount' => 'required|numeric',

Response Structure :
{
    "status_code": "Integer",
    "status_message": "String",
    "message": "String",
    "is_data": "Boolean",
    "data": "Array",
    "is_error": "Boolean",
    "errors": "Array"
}

Example Response :
{
    "status_code": 201,
    "status_message": "OK",
    "message": "refundProcessedSuccessfully",
    "is_data": true,
    "data": []
}
{
    "status_code": 404,
    "status_message": "Execution Exception Occurred",
    "message": "cycleNotfound#cycle1",
    "is_data": false,
    "is_error": true,
    "errors": []
}
{
    "status_code": 400,
    "status_message": "Execution Exception Occurred",
    "message": "someCyclesFailedToPassValidation",
    "is_data": false,
    "is_error": true,
    "errors": []
}
{
    "status_code": 510,
    "status_message": "Execution Exception Occurred",
    "message": "somethingWentWrong",
    "is_data": false,
    "is_error": true,
    "errors": []
}