Miridia
Portal
Global API

Subscriptions

Every read requires any membership in the organization; every mutation requires `is_owner` (see `SubscriptionService`)

Base URL: https://global.miridia.io. Read Authentication and Conventions before you call these operations.

MethodPathOperation
POST/api/subscription/add-planAdd plan
POST/api/subscription/save-billing-detailsAdd billing details
GET/api/subscription/billing-details/{subscriptionId}Get billing details
GET/api/subscription/{subscriptionId}Get subscription
GET/api/subscriptionsGet subscriptions
GET/api/subscription/subscription-offersGet subscription offers
POST/api/subscription/{subscriptionId}/toggleToggle subscription
GET/api/subscription/redirect/{subscriptionId}Handle redirect
GET/api/subscription/plansGet plans

Add plan

POST/api/subscription/add-plan

Access. Send a bearer token or an API key. Any signed-in member can call this operation.

Request body

Send JSON with the shape SubscriptionPlanRequest.

FieldTypeRequiredDescription
planIdinteger (int32)Yes
quantityinteger (int32)No
billingCycleenum BillingCycleYesOne of: Monthly, Annually.
subscriptionIdstring (uuid)No
discountCodestringNo

Response

200. Returns a SingleResult envelope. The data field is boolean.

Request
curl -X POST "https://global.miridia.io/api/subscription/add-plan" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "planId": 0,
  "quantity": 0,
  "billingCycle": "Monthly",
  "subscriptionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "discountCode": "string"
}'
Response
{
  "data": true,
  "statusCode": 0,
  "messages": [
    "string"
  ]
}

Add billing details

POST/api/subscription/save-billing-details

Access. Send a bearer token or an API key. Any signed-in member can call this operation.

Request body

Send JSON with the shape SubscriptionBillingRequest. Billing address comes from address on this request instead.

FieldTypeRequiredDescription
userBillingUserRequestNo
businessBillingBusinessRequestNo
addressBillingAddressRequestNo
paymentMethodenum PaymentMethodNoOne of: Unknown, Cash, Card, CashOnDelivery, CardOnDelivery, Eft, Crypto, Paypal, WireTransfer, DebitOrder.
subscriptionIdstring (uuid)No

Response

200. Returns a SingleResult envelope. The data field is boolean.

Request
curl -X POST "https://global.miridia.io/api/subscription/save-billing-details" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "user": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "firstName": "string",
    "lastName": "string",
    "email": "string",
    "phoneNumber": "string"
  },
  "business": {
    "registeredName": "string",
    "displayName": "string",
    "phoneNumber": "string",
    "website": "string",
    "email": "string",
    "registrationNumber": "string",
    "requiresOrderIntegration": true,
    "requiresOrderFulfillment": true,
    "requiresAccountingIntegration": true,
    "requiresDispatchBuilder": true
  },
  "address": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "placeId": "string",
    "name": "string",
    "website": "string",
    "fullAddress": "string",
    "street": "string",
    "suburb": "string",
    "city": "string",
    "country": "string",
    "postcode": "string",
    "unit": "string",
    "number": "string",
    "province": "string",
    "latitude": 0,
    "longitude": 0
  },
  "paymentMethod": "Cash",
  "subscriptionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}'
Response
{
  "data": true,
  "statusCode": 0,
  "messages": [
    "string"
  ]
}

Get billing details

GET/api/subscription/billing-details/{subscriptionId}

Access. Send a bearer token or an API key. Any signed-in member can call this operation.

Parameters

NameInTypeRequiredDescription
subscriptionIdpathstring (uuid)Yes

Response

200. Returns a SingleResult envelope. The data field is SubscriptionBillingResponse.

Request
curl -X GET "https://global.miridia.io/api/subscription/billing-details/{subscriptionId}" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN"
Response
{
  "data": {
    "user": {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "displayName": "string",
      "firstName": "string",
      "lastName": "string",
      "email": "string",
      "phoneNumber": "string"
    },
    "business": {
      "registeredName": "string",
      "registrationNumber": "string",
      "displayName": "string",
      "phoneNumber": "string",
      "website": "string",
      "email": "string",
      "requiresOrderIntegration": true,
      "requiresOrderFulfillment": true,
      "requiresAccountingIntegration": true,
      "requiresDispatchBuilder": true
    },
    "address": {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "placeId": "string",
      "name": "string",
      "website": "string",
      "fullAddress": "string",
      "street": "string",
      "suburb": "string",
      "city": "string",
      "country": "string",
      "postcode": "string",
      "unit": "string",
      "number": "string",
      "province": "string",
      "latitude": 0,
      "longitude": 0
    },
    "paymentMethod": "Cash",
    "hasCompletedBillingDetails": true
  },
  "statusCode": 0,
  "messages": [
    "string"
  ]
}

Get subscription

GET/api/subscription/{subscriptionId}

Access. Send a bearer token or an API key. Any signed-in member can call this operation.

Parameters

NameInTypeRequiredDescription
subscriptionIdpathstring (uuid)Yes

Response

200. Returns a SingleResult envelope. The data field is SubscriptionResponse.

Request
curl -X GET "https://global.miridia.io/api/subscription/{subscriptionId}" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN"
Response
{
  "data": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "billingCycle": "Monthly",
    "active": true,
    "discount": 0,
    "subTotal": 0,
    "total": 0,
    "totalSuffix": "string",
    "currency": {
      "iso4217": "string",
      "utf8Symbol": "string",
      "currencyCode": "Eur"
    },
    "items": [
      {}
    ],
    "primaryPlan": {
      "id": 0,
      "pricePerMonth": 0,
      "pricePerYear": 0,
      "discountPercentage": 0,
      "title": "string",
      "description": "string",
      "items": [
        "string"
      ],
      "addOns": [
        {}
      ],
      "hasQuantity": true,
      "canAdd": true,
      "currentPlan": true,
      "showPrice": true,
      "activeSubscription": true,
      "planGroup": "ECommerce",
      "countryCodeId": "Global",
      "discountValidity": "OneMonth",
      "currencyCode": "string",
      "currencySymbol": "string"
    },
    "planLimit": 0,
    "vehicleLimit": 0,
    "shipmentLimit": 0,
    "orderLimit": 0,
    "requestLimit": 0,
    "suggestions": [
      {}
    ]
  },
  "statusCode": 0,
  "messages": [
    "string"
  ]
}

Get subscriptions

GET/api/subscriptions

Access. Send a bearer token or an API key. Any signed-in member can call this operation.

Response

200. Returns a PagedResult envelope. Each item in data is SubscriptionResponse.

Request
curl -X GET "https://global.miridia.io/api/subscriptions" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN"
Response
{
  "data": [
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "billingCycle": "Monthly",
      "active": true,
      "discount": 0,
      "subTotal": 0,
      "total": 0,
      "totalSuffix": "string",
      "currency": {},
      "items": [
        {}
      ],
      "primaryPlan": {},
      "planLimit": 0,
      "vehicleLimit": 0,
      "shipmentLimit": 0,
      "orderLimit": 0,
      "requestLimit": 0,
      "suggestions": [
        {}
      ]
    }
  ],
  "count": 0,
  "page": 0,
  "pageSize": 0,
  "totalCount": 0,
  "statusCode": 0,
  "messages": [
    "string"
  ]
}

Get subscription offers

GET/api/subscription/subscription-offers

Access. Send a bearer token or an API key. Any signed-in member can call this operation.

Response

200. Returns a JSON array. Each item is ActionMessage.

Request
curl -X GET "https://global.miridia.io/api/subscription/subscription-offers" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN"
Response
[
  {
    "title": "string",
    "message": "string",
    "level": "Standard",
    "icon": "None",
    "code": "string"
  }
]

Toggle subscription

POST/api/subscription/{subscriptionId}/toggle

Access. Send a bearer token or an API key. Any signed-in member can call this operation.

Parameters

NameInTypeRequiredDescription
subscriptionIdpathstring (uuid)Yes

Request body

Send JSON with the shape ToggleSubscriptionRequest.

FieldTypeRequiredDescription
modestringYes

Response

200. Returns a SingleResult envelope. The data field is RedirectAction.

Request
curl -X POST "https://global.miridia.io/api/subscription/{subscriptionId}/toggle" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "mode": "string"
}'
Response
{
  "data": {
    "redirect": true,
    "url": "string",
    "paymentMethod": "Cash",
    "messages": [
      {}
    ]
  },
  "statusCode": 0,
  "messages": [
    "string"
  ]
}

Handle redirect

GET/api/subscription/redirect/{subscriptionId}

Handles redirections to the payment provider. No security checks. This is a plain redirect.

Access. This operation needs no authentication.

Parameters

NameInTypeRequiredDescription
subscriptionIdpathstring (uuid)Yes

Response

200. The response has no body.

Request
curl -X GET "https://global.miridia.io/api/subscription/redirect/{subscriptionId}"

Get plans

GET/api/subscription/plans

Access. Send a bearer token or an API key. Any signed-in member can call this operation.

Response

200. Returns a JSON array. Each item is PricePlanGroupResponse.

Request
curl -X GET "https://global.miridia.io/api/subscription/plans" \
  -H "Authorization: Bearer $MIRIDIA_TOKEN"
Response
[
  {
    "title": "string",
    "description": "string",
    "planGroup": "ECommerce",
    "plans": [
      {}
    ]
  }
]

Models

The operations on this page use these object types. Select a type to see its fields.

ActionMessage
FieldTypeDescription
titlestring
messagestring
levelenum NotificationLevelOne of: Standard, Info, Warning, Error, Success, Recommendation.
iconenum MdiIconOne of: None.
codestring
AddOnResponse
FieldTypeDescription
titlestring
descriptionstring
quantityinteger (int32)
hasQuantityboolean
BillingAddressRequest
FieldTypeDescription
idstring (uuid)
placeIdstring
namestring
websitestring
fullAddressstring
streetstring
suburbstring
citystring
countrystring
postcodestring
unitstring
numberstring
provincestring
latitudenumber (double)
longitudenumber (double)
BillingAddressResponse
FieldTypeDescription
idstring (uuid)
placeIdstring
namestring
websitestring
fullAddressstring
streetstring
suburbstring
citystring
countrystring
postcodestring
unitstring
numberstring
provincestring
latitudenumber (double)
longitudenumber (double)
BillingBusinessRequest
FieldTypeDescription
registeredNamestring
displayNamestring
phoneNumberstring
websitestring
emailstring
registrationNumberstring
requiresOrderIntegrationboolean
requiresOrderFulfillmentboolean
requiresAccountingIntegrationboolean
requiresDispatchBuilderboolean
BillingBusinessResponse

The live org-side Business aggregate is out of reach here).

FieldTypeDescription
registeredNamestring
registrationNumberstring
displayNamestring
phoneNumberstring
websitestring
emailstring
requiresOrderIntegrationboolean
requiresOrderFulfillmentboolean
requiresAccountingIntegrationboolean
requiresDispatchBuilderboolean
BillingCurrencyResponse
FieldTypeDescription
iso4217string
utf8Symbolstring
currencyCodeenum CurrencyCodeOne of: Invalid, Eur, Usd, Gbp, Zar, Zmw.
BillingPrimitiveUserResponse
FieldTypeDescription
idstring (uuid)
displayNamestring
firstNamestring
lastNamestring
emailstring
phoneNumberstring
BillingUserRequest
FieldTypeDescription
idstring (uuid)
firstNamestring
lastNamestring
emailstring
phoneNumberstring
PricePlanGroupResponse
FieldTypeDescription
titlestring
descriptionstring
planGroupenum PlanGroupOne of: ECommerce, Logistics, Retail, AddOn.
plansPricePlanResponse[]
PricePlanResponse
FieldTypeDescription
idinteger (int32)
pricePerMonthnumber (double)
pricePerYearnumber (double)
discountPercentagenumber (double)
titlestring
descriptionstring
itemsstring[]
addOnsAddOnResponse[]
hasQuantityboolean
canAddboolean
currentPlanboolean
showPriceboolean
activeSubscriptionboolean
planGroupenum PlanGroupOne of: ECommerce, Logistics, Retail, AddOn.
countryCodeIdenum CountryCodeOne of: Invalid, Global, FallbackZa, Be, De, Lu, Nl, Za, Zw, Gb, Us, Zm.
discountValidityenum DiscountValidityOne of: OneMonth, ThreeMonths, SixMonths, TwelveMonths.
currencyCodestring
currencySymbolstring
RedirectAction
FieldTypeDescription
redirectboolean
urlstring
paymentMethodenum PaymentMethodOne of: Unknown, Cash, Card, CashOnDelivery, CardOnDelivery, Eft, Crypto, Paypal, WireTransfer, DebitOrder.
messagesActionMessage[]
SubscriptionBillingResponse
FieldTypeDescription
userBillingPrimitiveUserResponse
businessBillingBusinessResponse
addressBillingAddressResponse
paymentMethodenum PaymentMethodOne of: Unknown, Cash, Card, CashOnDelivery, CardOnDelivery, Eft, Crypto, Paypal, WireTransfer, DebitOrder.
hasCompletedBillingDetailsboolean
SubscriptionItemResponse
FieldTypeDescription
titlestring
descriptionstring
pricenumber (double)
discountnumber (double)
quantityinteger (int32)
idstring (uuid)
currencyCodeenum CurrencyCodeOne of: Invalid, Eur, Usd, Gbp, Zar, Zmw.
discountAppliedstring (date-time)
discountExpirystring (date-time)
planCategoryenum PlanCategoryOne of: Primary, ECommerce, Fulfillment, Accounting, Crm, OrderApi, RouteApi, ServiceBridge, Queue, Notification, RoutePlanning, Member, PointOfSale.
SubscriptionResponse
FieldTypeDescription
idstring (uuid)
billingCycleenum BillingCycleOne of: Monthly, Annually.
activeboolean
discountnumber (double)
subTotalnumber (double)
totalnumber (double)
totalSuffixstring
currencyBillingCurrencyResponse
itemsSubscriptionItemResponse[]
primaryPlanPricePlanResponse
planLimitinteger (int32)
vehicleLimitinteger (int32)
shipmentLimitinteger (int32)
orderLimitinteger (int32)
requestLimitinteger (int32)
suggestionsActionMessage[]