openapi: 3.1.1
info:
title: HitPay Account Status Subscription Plan API
description: 'Accept PayNow, FPX, QRIS, GrabPay, cards, and 40+ payment methods with a single API. Production base URL: https://api.hit-pay.com, Sandbox: https://api.sandbox.hit-pay.com'
version: '1.0'
servers:
- url: https://api.hit-pay.com
description: Production
- url: https://api.sandbox.hit-pay.com
description: Sandbox
tags:
- name: Subscription Plan
paths:
/v1/subscription-plan:
get:
summary: Get All Subscription Plan
description: Use this API to get all subscription plans details.
operationId: get-all-subscription-plan
parameters:
- name: X-BUSINESS-API-KEY
in: header
required: true
style: simple
explode: false
schema:
type: string
example: b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d
- name: per_page
in: query
description: The number of per page
schema:
type: number
default: 20
- name: page
in: query
description: The page index
schema:
type: number
default: 1
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"data\": [\n {\n \"id\": \"975b1909-38f6-44f3-a0b1-c198b7478978\",\n \"name\": \"subscription-plan_new_1664175178\",\n \"description\": \"New_Description_1664175178\",\n \"cycle\": \"custom\",\n \"cycle_repeat\": 1,\n \"cycle_frequency\": \"day\",\n \"currency\": \"sgd\",\n \"price\": 123.45,\n \"amount\": 123.45,\n \"reference\": null,\n \"created_at\": \"2022-09-26T14:52:58\",\n \"updated_at\": \"2022-09-26T14:52:58\"\n },\n {\n \"id\": \"97533e84-4f48-4625-83de-1d2b3e3ae17b\",\n \"name\": \"subscription-plan_new_1663837869\",\n \"description\": \"New_Description_1663837869\",\n \"cycle\": \"custom\",\n \"cycle_repeat\": 1,\n \"cycle_frequency\": \"day\",\n \"currency\": \"sgd\",\n \"price\": 9999999.99,\n \"amount\": 9999999.99,\n \"reference\": null,\n \"created_at\": \"2022-09-22T17:11:09\",\n \"updated_at\": \"2022-09-22T17:11:09\"\n }\n ],\n \"links\": {\n \"first\": \"https://api.sandbox.hit-pay.com/v1/subscription-plan?page=1\",\n \"last\": \"https://api.sandbox.hit-pay.com/v1/subscription-plan?page=1\",\n \"prev\": null,\n \"next\": null\n },\n \"meta\": {\n \"current_page\": 1,\n \"from\": 1,\n \"last_page\": 1,\n \"links\": [\n {\n \"url\": null,\n \"label\": \"« Previous\",\n \"active\": false\n },\n {\n \"url\": \"https://api.sandbox.hit-pay.com/v1/subscription-plan?page=1\",\n \"label\": \"1\",\n \"active\": true\n },\n {\n \"url\": null,\n \"label\": \"Next »\",\n \"active\": false\n }\n ],\n \"path\": \"https://api.sandbox.hit-pay.com/v1/subscription-plan\",\n \"per_page\": 25,\n \"to\": 2,\n \"total\": 2\n }\n}"
schema:
type: object
properties:
data:
type: array
items:
type: object
properties:
id:
type: string
examples:
- 975b1909-38f6-44f3-a0b1-c198b7478978
name:
type: string
examples:
- subscription-plan_new_1664175178
description:
type: string
examples:
- New_Description_1664175178
cycle:
type: string
examples:
- custom
cycle_repeat:
type: integer
examples:
- 1
default: 0
cycle_frequency:
type: string
examples:
- day
currency:
type: string
examples:
- sgd
price:
type: number
examples:
- 123.45
default: 0
amount:
type: number
examples:
- 123.45
default: 0
reference: {}
created_at:
type: string
examples:
- '2022-09-26T14:52:58'
updated_at:
type: string
examples:
- '2022-09-26T14:52:58'
links:
type: object
properties:
first:
type: string
examples:
- https://api.sandbox.hit-pay.com/v1/subscription-plan?page=1
last:
type: string
examples:
- https://api.sandbox.hit-pay.com/v1/subscription-plan?page=1
prev: {}
next: {}
meta:
type: object
properties:
current_page:
type: integer
examples:
- 1
default: 0
from:
type: integer
examples:
- 1
default: 0
last_page:
type: integer
examples:
- 1
default: 0
links:
type: array
items:
type: object
properties:
url: {}
label:
type: string
examples:
- '« Previous'
active:
type: boolean
examples:
- false
default: true
path:
type: string
examples:
- https://api.sandbox.hit-pay.com/v1/subscription-plan
per_page:
type: integer
examples:
- 25
default: 0
to:
type: integer
examples:
- 2
default: 0
total:
type: integer
examples:
- 2
default: 0
deprecated: false
security: []
x-readme:
code-samples:
- language: curl
code: 'curl --location --request GET ''https://api.sandbox.hit-pay.com/v1/subscription-plan'' \
--header ''X-BUSINESS-API-KEY: meowmeowmeow'' \
--header ''X-Requested-With: XMLHttpRequest'' \
--header ''Content-Type: application/x-www-form-urlencoded'''
samples-languages:
- curl
tags:
- Subscription Plan
post:
summary: Create a Subscription Plan
description: A subscription plan consists of basic information like plan name, amount, and frequency. An example of a subscription plan could be “Spotify Premium Membership” which is SGD 9.90 monthly.
operationId: create-subscription-plan
parameters:
- name: X-BUSINESS-API-KEY
in: header
required: true
style: simple
explode: false
schema:
type: string
example: b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d
requestBody:
content:
application/json:
schema:
type: object
required:
- name
- cycle
- amount
properties:
name:
type: string
description: Plan name. It's required field
description:
type: string
description: The description of subscription plan
cycle:
type: string
description: Billing frequency (weekly / monthly / yearly / custom). If cycle = custom then the user has to send the fields cycle_repeat and cycle_frequency
enum:
- weekly
- monthly
- yearly
- custom
default: monthly
cycle_frequency:
type: string
description: '[This field is only applicable when cycle = custom] It''s the frequency of the cycle [day / week / month / year]'
enum:
- day
- week
- month
- year
cycle_repeat:
type: integer
description: '[This field is only applicable when cycle = custom] It''s the number of times the cycle will repeat.'
format: int32
currency:
type: string
example: SGD
amount:
type: integer
description: 'Min: Depend on the currency, Max: 999999.99. It''s required field'
maximum: 999999.99
format: int32
reference:
type: string
maxLength: 255
description: Arbitrary reference number that you can map to your internal reference number. This value cannot be edited by the customer
redirect_url:
type: string
description: The redirected URL after the payment
start_date_method:
type: string
enum:
- sign_up_date
- customer_select_date
- fixed_date
fixed_date:
type: number
minimum: 1
maximum: 28
description: it's required if start_date_method = fixed_date
times_to_be_charged:
type: number
default: 1
minimum: 1
maximum: 100
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"id\": \"973ee344-6737-4897-9929-edbc9d7bf433\",\n \"name\": \"Spotify Premium\",\n \"description\": \"Spotify Monthly Subscription\",\n \"cycle\": \"monthly\",\n \"cycle_repeat\": null,\n \"cycle_frequency\": null,\n \"currency\": \"sgd\",\n \"amount\": 9.90,\n \"reference\": \"spotify_premium_2022\",\n \"created_at\": \"2022-09-12T14:19:26\",\n \"updated_at\": \"2022-09-12T14:19:26\"\n}"
schema:
type: object
properties:
id:
type: string
examples:
- 973ee344-6737-4897-9929-edbc9d7bf433
name:
type: string
examples:
- Spotify Premium
description:
type: string
examples:
- Spotify Monthly Subscription
cycle:
type: string
examples:
- monthly
cycle_repeat: {}
cycle_frequency: {}
currency:
type: string
examples:
- sgd
amount:
type: number
examples:
- 9.9
default: 0
reference:
type: string
examples:
- spotify_premium_2022
created_at:
type: string
examples:
- '2022-09-12T14:19:26'
updated_at:
type: string
examples:
- '2022-09-12T14:19:26'
'422':
description: '422'
content:
application/json:
examples:
Result:
value: "{\n \"message\": \"The given data was invalid.\",\n \"errors\": {\n \"name\": [\n \"The name field is required.\"\n ],\n \"amount\": [\n \"The amount field is required.\"\n ],\n \"cycle\": [\n \"The cycle field is required.\"\n ]\n }\n}"
schema:
type: object
properties:
message:
type: string
examples:
- The given data was invalid.
errors:
type: object
properties:
name:
type: array
items:
type: string
examples:
- The name field is required.
amount:
type: array
items:
type: string
examples:
- The amount field is required.
cycle:
type: array
items:
type: string
examples:
- The cycle field is required.
deprecated: false
security: []
x-readme:
code-samples:
- language: curl
code: 'curl --location --request POST ''https://api.sandbox.hit-pay.com/v1/subscription-plan'' \
--header ''X-BUSINESS-API-KEY: meowmeowmeow'' \
--header ''X-Requested-With: XMLHttpRequest'' \
--header ''Content-Type: application/x-www-form-urlencoded'' \
--data-urlencode ''name=Spotify Premium'' \
--data-urlencode ''description=Spotify Monthly Subscription'' \
--data-urlencode ''currency=SGD'' \
--data-urlencode ''amount=9.90''
--data-urlencode ''cycle=monthly'' \
--data-urlencode ''reference=spotify_premium_2022'' \'
samples-languages:
- curl
tags:
- Subscription Plan
/v1/subscription-plan/{plan_id}:
get:
summary: Get Subscription Plan Details
description: Use this API to get the subscription plan details, if you need to make any changes use the Update a Subscription Plan API
operationId: get-a-subscription-plan-detail
parameters:
- name: X-BUSINESS-API-KEY
in: header
required: true
style: simple
explode: false
schema:
type: string
example: b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d
- name: plan_id
in: path
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"id\": \"973ee344-6737-4897-9929-edbc9d7bf433\",\n \"name\": \"Spotify Premium\",\n \"description\": \"Spotify Monthly Subscription\",\n \"cycle\": \"monthly\",\n \"cycle_repeat\": null,\n \"cycle_frequency\": null,\n \"currency\": \"sgd\",\n \"amount\": 9.9,\n \"reference\": \"spotify_premium_2022\",\n \"created_at\": \"2022-09-12T14:22:26\",\n \"updated_at\": \"2022-09-12T14:22:26\"\n}"
schema:
type: object
properties:
id:
type: string
examples:
- 973ee344-6737-4897-9929-edbc9d7bf433
name:
type: string
examples:
- Spotify Premium
description:
type: string
examples:
- Spotify Monthly Subscription
cycle:
type: string
examples:
- monthly
cycle_repeat: {}
cycle_frequency: {}
currency:
type: string
examples:
- sgd
amount:
type: number
examples:
- 9.9
default: 0
reference:
type: string
examples:
- spotify_premium_2022
created_at:
type: string
examples:
- '2022-09-12T14:22:26'
updated_at:
type: string
examples:
- '2022-09-12T14:22:26'
'422':
description: '422'
content:
application/json:
examples:
Result:
value: "{\n \"message\": \"No query results for model [App\\\\Business\\\\SubscriptionPlan] 973ee456-d28f-4418-93c5-d37e4b311685\"\n}"
schema:
type: object
properties:
message:
type: string
examples:
- No query results for model [App\Business\SubscriptionPlan] 973ee456-d28f-4418-93c5-d37e4b311685
deprecated: false
security: []
x-readme:
code-samples:
- language: curl
code: 'curl --location --request GET ''https://api.sandbox.hit-pay.com/v1/subscription-plan/{plan_id}'' \
--header ''X-BUSINESS-API-KEY: meowmeowmeow'' \
--header ''X-Requested-With: XMLHttpRequest'' \
--header ''Content-Type: application/x-www-form-urlencoded'''
samples-languages:
- curl
tags:
- Subscription Plan
put:
summary: Update Subscription Plan
description: Use this API to update the subscription plan, changes made to the plan will not affect current subscription. If you would like to make changes to the current subscriptions use the Update Recurring Billing API.
operationId: update-recurring-billing-plan
parameters:
- name: X-BUSINESS-API-KEY
in: header
required: true
style: simple
explode: false
schema:
type: string
example: b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d
- name: plan_id
in: path
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
type: object
required:
- name
- cycle
- amount
properties:
name:
type: string
description: Plan name. It's required field
amount:
type: integer
description: 'Min: Depend on the currency, Max: 999999.99. It''s required field'
maximum: 999999.99
format: int32
description:
type: string
description: The description of subscription plan
cycle:
type: string
description: Billing frequency (weekly / monthly / yearly / custom / save_card). If cycle = custom then the user has to send the fields cycle_repeat and cycle_frequency
enum:
- weekly
- monthly
- yearly
- custom
- save_card
default: monthly
cycle_frequency:
type: string
description: '[This field is only applicable when cycle = custom] It''s the frequency of the cycle [day / week / month / year]'
enum:
- day
- week
- month
- year
cycle_repeat:
type: integer
description: '[This field is only applicable when cycle = custom] It''s the number of times the cycle will repeat.'
format: int32
currency:
type: string
example: SGD
reference:
type: string
maxLength: 255
description: Arbitrary reference number that you can map to your internal reference number. This value cannot be edited by the customer
redirect_url:
type: string
description: The redirected URL after the payment
start_date_method:
type: string
enum:
- sign_up_date
- customer_select_date
- fixed_date
fixed_date:
type: number
minimum: 1
maximum: 28
description: it's required if start_date_method = fixed_date
times_to_be_charged:
type: number
minimum: 1
maximum: 100
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"id\": \"973ee344-6737-4897-9929-edbc9d7bf433\",\n \"name\": \"Spotify Premium\",\n \"description\": \"Spotify Monthly Subscription\",\n \"cycle\": \"monthly\",\n \"cycle_repeat\": null,\n \"cycle_frequency\": null,\n \"currency\": \"sgd\",\n \"amount\": 12.9,\n \"reference\": \"spotify_premium_2022\",\n \"created_at\": \"2022-09-13T12:34:13\",\n \"updated_at\": \"2022-09-13T12:34:13\"\n}"
schema:
type: object
properties:
id:
type: string
examples:
- 973ee344-6737-4897-9929-edbc9d7bf433
name:
type: string
examples:
- Spotify Premium
description:
type: string
examples:
- Spotify Monthly Subscription
cycle:
type: string
examples:
- monthly
cycle_repeat: {}
cycle_frequency: {}
currency:
type: string
examples:
- sgd
amount:
type: number
examples:
- 12.9
default: 0
reference:
type: string
examples:
- spotify_premium_2022
created_at:
type: string
examples:
- '2022-09-13T12:34:13'
updated_at:
type: string
examples:
- '2022-09-13T12:34:13'
'422':
description: '422'
content:
application/json:
examples:
Result:
value: "{\n \"message\": \"The given data was invalid.\",\n \"errors\": {\n \"name\": [\n \"The name may not be greater than 128 characters.\"\n ]\n }\n}"
schema:
type: object
properties:
message:
type: string
examples:
- The given data was invalid.
errors:
type: object
properties:
name:
type: array
items:
type: string
examples:
- The name may not be greater than 128 characters.
text/plain:
examples:
Result:
value: "{\n \"message\": \"The given data was invalid.\",\n \"errors\": {\n \"cycle_repeat\": [\n \"The cycle repeat field is required when cycle is custom.\"\n ],\n \"cycle_frequency\": [\n \"The cycle frequency field is required when cycle is custom.\"\n ]\n }\n}"
schema:
type: object
properties:
message:
type: string
examples:
- The given data was invalid.
errors:
type: object
properties:
cycle_repeat:
type: array
items:
type: string
examples:
- The cycle repeat field is required when cycle is custom.
cycle_frequency:
type: array
items:
type: string
examples:
- The cycle frequency field is required when cycle is custom.
deprecated: false
security: []
x-readme:
code-samples:
- language: curl
code: 'curl --location --request PUT ''https://api.sandbox.hit-pay.com/v1/subscription-plan/{plan_id}'' \
--header ''X-BUSINESS-API-KEY: meowmeowmeow'' \
--header ''X-Requested-With: XMLHttpRequest'' \
--header ''Content-Type: application/x-www-form-urlencoded'' \
--data-urlencode ''amount=12.90'''
samples-languages:
- curl
tags:
- Subscription Plan
delete:
summary: Delete Subscription Plan
description: Delete the Subscription plan
operationId: delete-subscription
parameters:
- name: X-BUSINESS-API-KEY
in: header
required: true
style: simple
explode: false
schema:
type: string
example: b286daabf9921b5a01a4621f026c111e046f8911feba212996c92159b98427d
- name: plan_id
in: path
description: The subscription id
schema:
type: string
required: true
responses:
'204':
description: '204'
content:
application/json:
examples:
Result:
value: '1'
schema:
type: integer
example: 1
deprecated: false
security: []
x-readme:
code-samples:
- language: curl
code: 'curl --location --request DELETE ''https://api.sandbox.hit-pay.com/v1/subscription-plan/99e64cc6-2860-4c54-a92d-1509aa9e2362'' \
--header ''X-BUSINESS-API-KEY: meowmeowmeow'' \
--header ''X-Requested-With: XMLHttpRequest'' \
--header ''Content-Type: application/x-www-form-urlencoded'''
name: Example
samples-languages:
- curl
tags:
- Subscription Plan
x-readme:
headers: []
explorer-enabled: true
proxy-enabled: true
samples-enabled: true
x-readme-fauxas: true