openapi: 3.0.3 info: title: 'Subscription Plus' description: '' version: 1.0.0 servers: - url: 'https://app.subscriptionplus.net' paths: '/api/v1/customer/{id}': get: summary: 'Get Customer details' description: '' parameters: - in: query name: include description: 'Available includes orders_count,total_spent,subscriptions.line_items' example: 'orders_count,total_spent,subscriptions.line_items' required: true schema: type: string description: 'Available includes orders_count,total_spent,subscriptions.line_items' example: 'orders_count,total_spent,subscriptions.line_items' - in: header name: Authorization description: '' example: 'Bearer {YOUR_API_KEY}' schema: type: string - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: data: id: 4662104293529 name: 'Sabrina G. McGraw' email: SabrinaGMcGraw@jourrapide.com note: 'VIP Customer' avatar: null status: 1 member_since: '2021-05-10T06:51:58.000000Z' subscriptions: - id: 1200619673 interval: MONTH note: null customer_id: 4662104293529 last_payment_status: null tags: [] discount_code: null order_frequency: 1 billing_frequency: 1 next_billing_date: '2021-07-08T19:37:01.595686Z' last_billing_attempt: '2021-06-29 14:49:42' min_cycles: null max_cycles: null executed_cycles: 1 currency_code: USD type: subscription status: active currency_format: $0.00 line_items: - id: 60 product_id: 6137966461081 line_item_id: c4538325-70e6-429a-8335-685d2b4649ba variant_id: 38027906547865 subscription_id: 1200619673 title: 'Folding Hex Wrench Set 3-10mm' selling_plan_name: 'Delivery every month' variant_title: AWS-11 image: 'https://cdn.shopify.com/s/files/1/0531/8538/0505/products/park-tool-aws-12.jpg?v=1612770280' price: 11.69 quantity: 1 is_onetime: false requires_shipping: 1 created_at: '2021-06-29T09:19:43.000000Z' updated_at: '2021-06-29T09:19:43.000000Z' - id: 1200586905 interval: MONTH note: null customer_id: 4662104293529 last_payment_status: null tags: [] discount_code: null order_frequency: 1 billing_frequency: 1 next_billing_date: '2021-07-08T19:37:01.621831Z' last_billing_attempt: '2021-06-29 14:49:39' min_cycles: null max_cycles: null executed_cycles: 1 currency_code: USD type: subscription status: active currency_format: $0.00 line_items: - id: 59 product_id: 6137965805721 line_item_id: ea9c9b31-6df0-4c70-aa27-9152811aad39 variant_id: 38027905433753 subscription_id: 1200586905 title: 'Fixie Stem' selling_plan_name: 'Delivery every month' variant_title: Black image: 'https://cdn.shopify.com/s/files/1/0531/8538/0505/products/Stem_Black_3RD_WEB.jpg?v=1612770273' price: 18 quantity: 1 is_onetime: false requires_shipping: 1 created_at: '2021-06-29T09:19:40.000000Z' updated_at: '2021-06-29T09:19:40.000000Z' orders_count: 24 total_spent: amount: 6298.97 presentment_money: 0 properties: data: type: object example: id: 4662104293529 name: 'Sabrina G. McGraw' email: SabrinaGMcGraw@jourrapide.com note: 'VIP Customer' avatar: null status: 1 member_since: '2021-05-10T06:51:58.000000Z' subscriptions: - id: 1200619673 interval: MONTH note: null customer_id: 4662104293529 last_payment_status: null tags: [] discount_code: null order_frequency: 1 billing_frequency: 1 next_billing_date: '2021-07-08T19:37:01.595686Z' last_billing_attempt: '2021-06-29 14:49:42' min_cycles: null max_cycles: null executed_cycles: 1 currency_code: USD type: subscription status: active currency_format: $0.00 line_items: - id: 60 product_id: 6137966461081 line_item_id: c4538325-70e6-429a-8335-685d2b4649ba variant_id: 38027906547865 subscription_id: 1200619673 title: 'Folding Hex Wrench Set 3-10mm' selling_plan_name: 'Delivery every month' variant_title: AWS-11 image: 'https://cdn.shopify.com/s/files/1/0531/8538/0505/products/park-tool-aws-12.jpg?v=1612770280' price: 11.69 quantity: 1 is_onetime: false requires_shipping: 1 created_at: '2021-06-29T09:19:43.000000Z' updated_at: '2021-06-29T09:19:43.000000Z' - id: 1200586905 interval: MONTH note: null customer_id: 4662104293529 last_payment_status: null tags: [] discount_code: null order_frequency: 1 billing_frequency: 1 next_billing_date: '2021-07-08T19:37:01.621831Z' last_billing_attempt: '2021-06-29 14:49:39' min_cycles: null max_cycles: null executed_cycles: 1 currency_code: USD type: subscription status: active currency_format: $0.00 line_items: - id: 59 product_id: 6137965805721 line_item_id: ea9c9b31-6df0-4c70-aa27-9152811aad39 variant_id: 38027905433753 subscription_id: 1200586905 title: 'Fixie Stem' selling_plan_name: 'Delivery every month' variant_title: Black image: 'https://cdn.shopify.com/s/files/1/0531/8538/0505/products/Stem_Black_3RD_WEB.jpg?v=1612770273' price: 18 quantity: 1 is_onetime: false requires_shipping: 1 created_at: '2021-06-29T09:19:40.000000Z' updated_at: '2021-06-29T09:19:40.000000Z' orders_count: 24 total_spent: amount: 6298.97 presentment_money: 0 tags: - Endpoints parameters: - in: path name: id description: 'The ID of the customer.' example: 4662104293529 required: true schema: type: integer /api/v1/settings: get: summary: 'App Settings' description: '' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_API_KEY}' schema: type: string - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - Endpoints parameters: - in: path name: include description: 'Available includes: language.' example: language required: true schema: type: string /api/v1/cancellation-reasons: get: summary: '' description: '' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_API_KEY}' schema: type: string - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - Endpoints /api/v1/get-selling-plan: get: summary: '' description: '' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_API_KEY}' schema: type: string - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - Endpoints '/api/v1/subscription/{id}': post: summary: 'Get subscription details' description: '' parameters: - in: query name: include description: "Available includes: line_items.product.variants,line_items.available_products.variants,orders.line_items,\norder,card,address,upcoming_order,customer.cards,available_frequencies,available_products.variants,total" example: 'line_items.product.variants,line_items.available_products.variants,orders.line_items, order,card,address,upcoming_order,customer.cards,available_frequencies,available_products.variants,total' required: true schema: type: string description: "Available includes: line_items.product.variants,line_items.available_products.variants,orders.line_items,\norder,card,address,upcoming_order,customer.cards,available_frequencies,available_products.variants,total" example: 'line_items.product.variants,line_items.available_products.variants,orders.line_items, order,card,address,upcoming_order,customer.cards,available_frequencies,available_products.variants,total' - in: header name: Authorization description: '' example: 'Bearer {YOUR_API_KEY}' schema: type: string - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string responses: { } tags: - Endpoints parameters: - in: path name: id description: 'The ID of the subscription' example: 1200619673 required: true schema: type: integer '/api/v1/subscription/{id}/available-products': post: summary: 'Get subscription details' description: '' parameters: - in: query name: include description: 'Available includes: available_products.variants' example: qui required: true schema: type: string description: 'Available includes: available_products.variants' example: qui - in: header name: Authorization description: '' example: 'Bearer {YOUR_API_KEY}' schema: type: string - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string responses: { } tags: - Endpoints parameters: - in: path name: id description: 'The ID of the subscription' example: 1200619673 required: true schema: type: integer '/api/v1/subscription/{id}/all-available-products': post: summary: '' description: '' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_API_KEY}' schema: type: string - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string responses: { } tags: - Endpoints parameters: - in: path name: id description: 'The ID of the subscription.' example: 20 required: true schema: type: integer '/api/v1/subscription/{id}/upsell-products': get: summary: '' description: '' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_API_KEY}' schema: type: string - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - Endpoints parameters: - in: path name: id description: 'The ID of the subscription.' example: 10 required: true schema: type: integer '/api/v1/subscription/{id}/status': post: summary: 'Update status' description: '' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_API_KEY}' schema: type: string - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: status: type: string description: 'Must be one of active, paused, or cancelled.' example: active required: - status parameters: - in: path name: id description: 'The ID of the subscription.' example: 20 required: true schema: type: integer '/api/v1/subscription/{id}/update_frequency': post: summary: 'Update order frequency' description: '' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_API_KEY}' schema: type: string - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: interval: type: string description: 'Must be one of day, week, month, or year.' example: year order_frequency: type: integer description: 'Must be one of available_frequencies from subscription details API' example: 13 billing_frequency: type: integer description: 'Same as order_frequency if its not prepaid order' example: 10 required: - interval - order_frequency - billing_frequency parameters: - in: path name: id description: 'The ID of the subscription.' example: 18 required: true schema: type: integer '/api/v1/subscription/{id}/update_variant': post: summary: 'Update product variant/quantity' description: '' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_API_KEY}' schema: type: string - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: line_item_ids: type: array description: '' example: - 20 items: type: integer quantity: type: array description: '' example: - 17 items: type: integer product_ids: type: array description: 'Require for updating the product' example: - 7 items: type: integer variant_ids: type: array description: 'Require for updating the product' example: - 10 items: type: integer required: - line_item_ids - quantity parameters: - in: path name: id description: 'The ID of the subscription.' example: 8 required: true schema: type: integer '/api/v1/subscription/{id}/apply_discount': post: summary: 'Apply/Remove Discount' description: '' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_API_KEY}' schema: type: string - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string responses: { } tags: - Endpoints requestBody: required: false content: application/json: schema: type: object properties: code: type: string description: 'Pass null to remove discount' example: optio parameters: - in: path name: id description: 'The ID of the subscription.' example: 1 required: true schema: type: integer '/api/v1/subscription/{id}/add_product': post: summary: 'Add products to subscription' description: '' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_API_KEY}' schema: type: string - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: product_ids: type: array description: 'Must be at least 1.' example: - 1.0 items: type: number variant_ids: type: array description: 'Must be at least 1.' example: - 1.0 items: type: number quantity: type: array description: 'Must be at least 1.' example: - 0.0 items: type: number required: - product_ids - variant_ids - quantity parameters: - in: path name: id description: 'The ID of the subscription.' example: 4 required: true schema: type: integer '/api/v1/subscription/{id}/swap_product': post: summary: 'Swap Product' description: '' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_API_KEY}' schema: type: string - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: line_item_id: type: integer description: '' example: 3 product_id: type: integer description: '' example: 5 variant_id: type: integer description: '' example: 4 required: - line_item_id - product_id - variant_id parameters: - in: path name: id description: 'The ID of the subscription.' example: 13 required: true schema: type: integer '/api/v1/subscription/{id}/add_onetime_product': post: summary: 'Add one-time product to subscription' description: '' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_API_KEY}' schema: type: string - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: product_ids: type: array description: 'Must be at least 1.' example: - 1.0 items: type: number variant_ids: type: array description: 'Must be at least 1.' example: - 1.0 items: type: number quantity: type: array description: 'Must be at least 1.' example: - 0.0 items: type: number required: - product_ids - variant_ids - quantity parameters: - in: path name: id description: 'The ID of the subscription.' example: 5 required: true schema: type: integer '/api/v1/subscription/{id}/update_address': post: summary: 'Update shipping address' description: '' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_API_KEY}' schema: type: string - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: address1: type: string description: '' example: voluptates city: type: string description: '' example: eveniet country: type: string description: '' example: reiciendis zip: type: string description: '' example: modi phone: type: string description: '' example: et first_name: type: string description: '' example: error last_name: type: string description: '' example: velit address2: type: string description: '' example: voluptatibus company: type: string description: '' example: cum required: - address1 - city - country - zip - phone - first_name - last_name parameters: - in: path name: id description: 'The ID of the subscription.' example: 4 required: true schema: type: integer '/api/v1/subscription/{id}/update_billing_date': post: summary: 'Update billing date' description: '' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_API_KEY}' schema: type: string - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string responses: { } tags: - Endpoints requestBody: required: true content: application/json: schema: type: object properties: date: type: date description: "YYYY-MM-DD\n\nDate should be greater than last billing attempt date" example: et required: - date parameters: - in: path name: id description: 'The ID of the subscription.' example: 17 required: true schema: type: integer '/api/v1/subscription/{id}/remove_line_item/{line_item_id}': post: summary: 'Remove subscription item' description: '' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_API_KEY}' schema: type: string - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string responses: { } tags: - Endpoints parameters: - in: path name: id description: 'The ID of the subscription.' example: 4 required: true schema: type: integer - in: path name: line_item_id description: 'Id of the subscription item' example: 9 required: true schema: type: integer '/api/v1/subscription/{id}/payment-method/{token}/update': post: summary: 'Swap subscription payment method' description: '' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_API_KEY}' schema: type: string - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string responses: { } tags: - Endpoints parameters: - in: path name: id description: 'The ID of the subscription.' example: 19 required: true schema: type: integer - in: path name: token description: 'Payment method token.' example: laborum required: true schema: type: string '/api/v1/subscription/{id}/ship_now': post: summary: 'Ship now' description: 'Note: Not applicable for prepaid subscription' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_API_KEY}' schema: type: string - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string responses: { } tags: - Endpoints requestBody: required: false content: application/json: schema: type: object properties: update_shipping_date: type: boolean description: 'To change future billing date according to the current date' example: false parameters: - in: path name: id description: 'The ID of the subscription.' example: 13 required: true schema: type: integer '/api/v1/subscription/{id}/upsell-products/buy': post: summary: '' description: '' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_API_KEY}' schema: type: string - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string responses: { } tags: - Endpoints requestBody: required: false content: application/json: schema: type: object properties: data: type: array description: '' example: - [] items: type: object properties: product_id: type: string description: '' example: soluta variant_id: type: string description: '' example: velit subscribe: type: boolean description: '' example: true required: - product_id - variant_id - subscribe parameters: - in: path name: id description: 'The ID of the subscription.' example: 11 required: true schema: type: integer '/api/v1/customer/{id}/add-payment': post: summary: 'Add new payment method' description: '' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_API_KEY}' schema: type: string - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string responses: { } tags: - Endpoints parameters: - in: path name: id description: 'The ID of the customer.' example: 4662104293529 required: true schema: type: integer '/api/v1/payment-method/{token}/update': post: summary: 'Update payment method' description: '' parameters: - in: header name: Authorization description: '' example: 'Bearer {YOUR_API_KEY}' schema: type: string - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string responses: { } tags: - Endpoints parameters: - in: path name: token description: '' example: ut required: true schema: type: string tags: - name: Endpoints description: '' components: securitySchemes: default: type: http scheme: bearer description: '' security: - default: []