Introduction To AccessType
AccessType is a product for managing subscriptions and access control.
Detailed documentation is now available here
Subscriber Identities
A subscriber is identified by a pair of a provider and an identity (such as [email,dev@quintype.com], or [facebook, fb-id]). A subscriber can have many identities. A provider is an external system. It can be one of [email, quintype, facebook, twitter].
Most APIs will accept the primary identity via URL parameters, and will also accept query parameters alternate_provider
and alternate_identity
, which will be used in case the user is not found at the primary identity.
LIST Subscriber Identities for a user
$ curl -H "X-SUBAUTH: <auth-token>" https://www.accesstype.com/api/v1/subscribers/<provider>/<identity>/subscriber_identities.json
{
"subscriber_identities": [
{
"provider": "email",
"value": "deepak@gmail.com"
},
{
"provider": "quintype",
"value": "8759"
}
]
}
This API will list out all the identities for a user.
POST Create a Subscriber Identity for a user
curl -H "X-SUBAUTH: <auth-token>" -H "Content-Type: application/json" https://www.accesstype.com/api/v1/subscribers/<provider>/<identity>/subscriber_identities.json -d '{
"subscriber_identity:" {
"provider": "email",
"value": "asim2@gmail.com"
}
}'
{
"subscriber_identities":[{
"provider":"email",
"value":"asim2@gmail.com"
},
{
"provider":"email",
"value":"asim@quintype.com"
}]
}
This API can be used to add an Identity for an existing subscriber
Subscription Groups
LIST all Subscription Groups
$ curl -H "X-SUBAUTH: <your-auth-token>" https://www.accesstype.com/api/v1/subscription_groups.json
{
"subscription_groups": [{
"id": 25,
"account_id": 2,
"name": "print",
"description": "Digital + Print",
"assets": [{
"id":5,
"asset_category_id":1,
"metadata":{},
"title":"public",
"type":"site"
}],
"subscription_type": "individual",
"public": true,
"created_at": "2017-09-04T09:05:06.035Z",
"updated_at": "2017-09-07T10:21:21.109Z",
"deleted_at": null,
"preferred_identity_provider": "email",
"metadata_fields": [
"full-name",
"email",
"mobile-or-contact-number",
"street-or-apartment",
"area-or-locality",
"city-or-village-and-state",
"pin-code",
"country"
],
"subscription_plans": [{
"id": 23,
"subscription_group_id": 25,
"duration_length": 3,
"price_cents": 34900,
"price_currency": "INR",
"additional_assets": [],
"created_at": "2017-09-04T09:05:06.047Z",
"updated_at": "2017-09-04T09:05:06.047Z",
"duration_unit": "months",
"description": null,
"title": "print-3",
"max_trial_period_length": null,
"max_trial_period_unit": null,
"recurring": false,
"metadata": {}
}]
}]
}
This API will list out all public subscription groups
GET a Subscription Group
$ curl -H "X-SUBAUTH: <your-auth-token>" https://www.accesstype.com/api/v1/subscription_groups/<group-id>.json
{
"subscription_group": {
"id": 25,
"account_id": 2,
"name": "print",
"description": "Digital + Print",
"assets": [{
"id":5,
"asset_category_id":1,
"metadata":{},
"title":"public",
"type":"site"
}],
"subscription_type": "individual",
"public": true,
"created_at": "2017-09-04T09:05:06.035Z",
"updated_at": "2017-09-07T10:21:21.109Z",
"deleted_at": null,
"preferred_identity_provider": "email",
"metadata_fields": [
"full-name",
"email",
"mobile-or-contact-number",
"street-or-apartment",
"area-or-locality",
"city-or-village-and-state",
"pin-code",
"country"
],
"subscription_plans": [{
"id": 23,
"subscription_group_id": 25,
"duration_length": 3,
"price_cents": 34900,
"price_currency": "INR",
"additional_assets": [],
"created_at": "2017-09-04T09:05:06.047Z",
"updated_at": "2017-09-04T09:05:06.047Z",
"duration_unit": "months",
"description": null,
"title": "print-3",
"max_trial_period_length": null,
"max_trial_period_unit": null,
"recurring": false,
"metadata": {}
}]
}
}
This will fetch a subscription, either a public or private one
Subscriptions
Subscription plan and Payment information is required to create a subscription for a user.
payment-type
can be one of razorpay
, razorpay_recurring
, androidpay
, androidpay_recurring
.
It can also be set to manual
to create subscriptions not involving payments.
LIST Subscriptions for a user
$ curl -H "X-SUBAUTH: <auth-token>" https://www.accesstype.com/api/v1/subscribers/<provider>/<identity>/subscriptions.json
{
"subscriptions": [
{
"subscriber": {
"id": 1087,
"name": null,
"created_at": "2019-08-14T09:43:57.557Z",
"updated_at": "2019-08-14T09:43:57.557Z",
"metadata": null,
"cumulative_end_timestamps": {
"standard_subscriptions_cumulative_end_timestamp": "2019-09-14T09:43:57.801Z",
"campaign_subscriptions_cumulative_end_timestamp": "2020-04-14T09:45:02.183Z"
},
"subscriber_identities": [
{
"provider": "email",
"value": "foo@example.com"
},
{
"provider": "quintype",
"value": "123"
}
]
},
"invoices": [
{
"amount_after_discount_before_tax": "122.03",
"amount_currency": "INR",
"id": 990,
"invoice_taxes": {
"SGST": {
"percentage": "9.0",
"amount": "10.98",
"currency": "INR"
},
"CGST": {
"percentage": "9.0",
"amount": "10.98",
"currency": "INR"
}
},
"amount_cents": 14400,
"base_price": "152.54",
"sequenced_invoice_number": "BQ/1819/SUB/167",
"discount_details": {
"code": "UAT",
"discount_percentage": 20,
"discount_amount": "30.51"
},
"created_at": "2018-12-12T10:25:48.590Z"
}
],
"id": 713,
"subscriber_id": 453,
"subscription_plan_id": 16,
"created_at": "2017-10-30T10:55:42.201Z",
"updated_at": "2017-10-30T10:55:42.201Z",
"assets": [
{
"metadata": {},
"title": "public",
"type": "site"
}
],
"start_timestamp": "2017-10-30T10:55:42.176Z",
"end_timestamp": "2017-11-13T10:55:42.176Z",
"deleted_at": null,
"payment_id": 668,
"metadata": {
"Name": "Sample User",
"Address": "Sample add",
"Phone Number": "1111111111"
},
"external_id": null,
"trial_period_length": null,
"trial_period_unit": null,
"coupon_code": null,
"subscription_group_id": 21,
"preferred_identity": {
"provider": "email",
"value": "sample@gmail.com"
},
"group_name": "Sub Group 1",
"plan_name": "Sub Plan 1",
"duration_length": 2,
"duration_unit": "weeks",
"subscription_type": "individual",
"active": true,
"payment_amount": "0.00",
"payment_type": "manual",
"renewable": true,
"coupon_code_id": 6,
"discount_detail": {
"code": "TEST20",
"discount_type": "percent",
"title": "Test coupon gives 20 percent off",
"value": 20.0,
"discounted_price_cents": 8000.0,
"price_cents": 10000,
"price_currency": "USD"
},
"expires_in_days": 30
}
]
}
This API will list out all the subscriptions for a user.
In order to get only active subscriptions, param active_only=true
can be used.
POST Preview a Subscription
curl -H "X-SUBAUTH: <auth-token>" -H "Content-Type: application/json" -X POST https://www.accesstype.com/api/v1/subscribers/<provider>/<identity>/subscriptions/preview.json -d '{
"subscription": {
"notes": "enter your notes",
"alternate_provider": "email",
"alternate_identity": "hey@quintype.com",
"subscription_type": "standard",
"subscription_plan_id": 2118,
"coupon_code": "UAT",
"payment": {
"payment_type": "razorpay",
"amount_cents": 14400,
"amount_currency": "INR"
},
"metadata": {
"mobile_number": "7639817688"
}
},
"fingerprint": ""
}'
{
"subscription": {
"subscriber": {
"id": 1087,
"name": 'foo',
"created_at": "2019-08-14T09:43:57.557Z",
"updated_at": "2019-08-14T09:43:57.557Z",
"metadata": null,
"cumulative_end_timestamps": {
"standard_subscriptions_cumulative_end_timestamp": null,
"campaign_subscriptions_cumulative_end_timestamp": null
},
"subscriber_identities": [
{
"provider": "email",
"value": "foo@example.com"
},
{
"provider": "quintype",
"value": "123"
}
]
},
"notes": "enter your notes",
"invoices": [],
"next_payment_due_date": null,
"deleted_at": null,
"campaign_name": null,
"payment_amount_currency": "INR",
"campaign_subscription": false,
"campaign_id": null,
"start_timestamp": "2021-08-07T11:28:46.271Z",
"assets": [
{
"title": "Site",
"metadata": {},
"type": "site"
},
{
"title": "Monthly magazines",
"metadata": {},
"type": "static"
},
{
"title": "All exclusive reportage content",
"metadata": {
"access_level": 400
},
"type": "story"
},
{
"title": "All paid stories",
"metadata": {
"access_level": 300
},
"type": "story"
},
{
"title": "All Story",
"metadata": {
"access_level": "999"
},
"type": "story"
}
],
"end_timestamp": "2021-11-07T11:28:46.271Z",
"payment_amount": "144.00",
"discount_detail": {
"code": "UAT",
"discount_type": "percent",
"title": "UAT Trial",
"value": 20,
"discounted_price_cents": 14400,
"price_cents": 18000,
"price_currency": "INR"
},
"duration_length": 3,
"dynamic_assets": {},
"trial_period_length": null,
"group_description": "Silver + Access to Exclusive Reportage + Monthly round-up magazines",
"renewable": false,
"subscription_attempt_id": null,
"subscription_group_id": 2197,
"coupon_code": "UAT",
"recurring": false,
"payment_type": "preview",
"cancelled": false,
"payment_token": null,
"updated_at": null,
"coupon_code_id": 82,
"plan_amount_cents": 18000,
"status": "pending",
"group_name": "Unlimited",
"external_id": null,
"active": false,
"id": null,
"plan_occurrence": "One Time",
"in_grace_period": false,
"code": null,
"preferred_identity": {
"provider": "email",
"value": "vamsi@quintype.com"
},
"plan_amount_currency": "INR",
"expired": false,
"payment_id": null,
"plan_name": "3 months",
"subscription_plan_id": 2118,
"duration_unit": "months",
"trial_period_unit": null,
"subscription_type": "standard",
"plan_description": "All assets ",
"cancelled_at": null,
"metadata": {
"mobile_number": "7639817688"
},
"renewal_reminder_sent_date": null,
"created_at": null,
"subscriber_id": 9311,
"payment_amount_cents": 14400
},
"attempt_token": "WnwxA2AVrE3xqcDUqrSb3sNm",
"external_reference_id": null
}
It returns a preview for a Subscription, without creating a new subscription.
For a successful subscription, it also return an attempt_token
.
An attempt_token
is the identifier of a subscription attempt. It should be sent back with create subscription api to mark an attempt as success.
This API must be used before accepting payment from a user.
One can pass the value for payment.payment_type
as razorpay_recurring
when making the preview API call to get external_reference_id
and attempt_token
in response.
POST Create a Subscription
curl -H "X-SUBAUTH: <auth-token>" -H "Content-Type: application/json" -X POST https://www.accesstype.com/api/v1/subscribers/<provider>/<identity>/subscriptions.json -d '{
"subscription": {
"notes": "enter your notes",
"subscription_type": "standard",
"subscription_plan_id": 2118,
"coupon_code": "UAT",
"payment": {
"payment_type": "razorpay",
"amount_cents": 14400,
"amount_currency": "INR",
"payment_token": "pay_BWpQWQcLLK3L37"
},
"metadata": {
"mobile_number": "7639817688"
}
},
"alternate_provider": "email",
"alternate_identity": "hey@quintype.com",
"attempt_token": "WnwxA2AVrE3xqcDUqrSb3sNm"
}'
{
"subscription": {
"subscriber": {
"id": 1087,
"name": 'foo',
"created_at": "2019-08-14T09:43:57.557Z",
"updated_at": "2019-08-14T09:43:57.557Z",
"metadata": null,
"cumulative_end_timestamps": {
"standard_subscriptions_cumulative_end_timestamp": "2019-09-14T09:43:57.801Z",
"campaign_subscriptions_cumulative_end_timestamp": null
},
"subscriber_identities": [
{
"provider": "email",
"value": "foo@example.com"
},
{
"provider": "quintype",
"value": "123"
}
]
},
"expires_in_days": 30,
"notes": "enter your notes",
"invoices": [
{
"amount_after_discount_before_tax": "122.03",
"amount_currency": "INR",
"id": 990,
"invoice_taxes": {
"SGST": {
"percentage": "9.0",
"amount": "10.98",
"currency": "INR"
},
"CGST": {
"percentage": "9.0",
"amount": "10.98",
"currency": "INR"
}
},
"amount_cents": 14400,
"base_price": "152.54",
"sequenced_invoice_number": "BQ/1819/SUB/167",
"discount_details": {
"code": "UAT",
"discount_percentage": 20,
"discount_amount": "30.51"
},
"created_at": "2018-12-12T10:25:48.590Z"
}
],
"next_payment_due_date": null,
"deleted_at": null,
"campaign_name": null,
"payment_amount_currency": "INR",
"campaign_subscription": false,
"campaign_id": null,
"start_timestamp": "2021-08-07T11:28:46.271Z",
"assets": [
{
"title": "Site",
"metadata": {},
"type": "site"
},
{
"title": "Monthly magazines",
"metadata": {},
"type": "static"
},
{
"title": "All exclusive reportage content",
"metadata": {
"access_level": 400
},
"type": "story"
},
{
"title": "All paid stories",
"metadata": {
"access_level": 300
},
"type": "story"
},
{
"title": "All Story",
"metadata": {
"access_level": "999"
},
"type": "story"
}
],
"end_timestamp": "2021-11-07T11:28:46.271Z",
"payment_amount": "144.00",
"discount_detail": {
"code": "UAT",
"discount_type": "percent",
"title": "UAT Trial",
"value": 20,
"discounted_price_cents": 14400,
"price_cents": 18000,
"price_currency": "INR"
},
"duration_length": 3,
"dynamic_assets": {},
"trial_period_length": null,
"group_description": "Silver + Access to Exclusive Reportage + Monthly round-up magazines",
"renewable": false,
"subscription_attempt_id": 96595,
"subscription_group_id": 2197,
"coupon_code": "UAT",
"recurring": false,
"payment_type": "razorpay",
"cancelled": false,
"payment_token": "pay_BWpQWQcLLK3L37",
"updated_at": "2018-12-12T10:25:48.494Z",
"coupon_code_id": 82,
"plan_amount_cents": 18000,
"status": "pending",
"group_name": "Unlimited",
"external_id": null,
"active": false,
"id": 32405,
"plan_occurrence": "One Time",
"in_grace_period": false,
"code": null,
"preferred_identity": {
"provider": "quintype",
"value": "251933"
},
"plan_amount_currency": "INR",
"expired": false,
"payment_id": 32379,
"plan_name": "3 months",
"subscription_plan_id": 2118,
"duration_unit": "months",
"trial_period_unit": null,
"subscription_type": "standard",
"plan_description": "All assets ",
"cancelled_at": null,
"metadata": {
"mobile_number": "7639817688"
},
"renewal_reminder_sent_date": null,
"created_at": "2018-12-12T10:25:48.494Z",
"subscriber_id": 9311,
"payment_amount_cents": 14400
}
}
This API can be used to create a subscription.
Here attempt_token
is the token received from preview.
Use campaign_id
optional field to create subscription for specific campaign.
It returns a Subscription Object in response
PATCH update attributes
curl -H "X-SUBAUTH: <auth-token>" -X PATCH -H "Content-Type: application/json" https://www.accesstype.com/api/v1/subscribers/<provider>/<identity>/subscriptions/<id>.json -d '{
"subscription": {
"metadata": {
"full-name": "hello-world",
"email": "hello@quintype.com"
}
}
}'
This API can be used to update the attributes for a subscription of a subscriber
PATCH bulk update attributes
curl -H "X-SUBAUTH: <auth-token>" -X PATCH -H "Content-Type: application/json" https://www.accesstype.com/api/v1/subscribers/<provider>/<identity>/subscriptions.json -d '{
"metadata": {
"full-name": "hello-world",
"email": "hello@quintype.com"
}
}'
This API can be used to update the attributes of all active subscriptions of a subscriber
DELETE a subscription
curl -H "X-SUBAUTH: <auth-token>" -X "DELETE" -H "Content-Type: application/json" https://www.accesstype.com/api/v1/subscribers/<provider>/<identity>/subscriptions/<subscription-id>.json
This API can be used to delete a subscription(THIS API WILL BE DEPRECATED SOON IN FAVOUR OF CANCEL Subscription API)
CANCEL a subscription
curl -H "X-SUBAUTH: <auth-token>" -X "PUT" -H "Content-Type: application/json" https://www.accesstype.com/api/v1/subscribers/<provider>/<identity>/subscriptions/<subscription-id>/cancel.json
This API can be used to cancel a subscription
POST renew a subscription
curl -H "X-SUBAUTH: <auth-token>" -H "Content-Type: application/json" -X POST https://www.accesstype.com/api/v1/subscribers/<provider>/<identity>/subscriptions/<subscription_id>/renewals.json -d '{
"subscription": {
"coupon_code": "",
"payment": {
"payment_type": "razorpay",
"payment_token": "pay_test_8tNiqdiajurOkj",
"amount_cents": "99900",
"amount_currency": "INR"
}
},
"alternate_provider": "email",
"alternate_identity": "hey@quintype.com"
}'
This API can be used to renew any renewable subscription. Subscriptions to recurring-plans are not renewable. The new subscription starts immediately or at the end of active subscription.
One can use the optional metadata
field to set it different from that of the existing subsription. If not passed, it is set to be same as existing subscription.
It returns a Subscription Object in response
Recurring Subscriptions
In order to register a recurring subscription with some providers (such as razorpay), it is mandatory to register a subscription upstream.
POST register a recurring subscription
curl -H "X-SUBAUTH: <auth-token>" -X POST -H "Content-Type: application/json" https://www.accesstype.com/api/v1/subscription_plans/<subscription-plan-id>/external_subscription_token.json -d '{
"type": "razorpay",
"attempt_token": "fo4bMWjP6N5vtVySNtiAUNBQ"
}'
{
"subscription": {
"id": "sub_8tQNd3qURQJiK5"
}
}
attempt_token
is optional param and must be sent if the external subscription is not to start immediately.
NOTE:- This API will soon be deprecated, as the same can now be achieved by preview API.
Trial period for a recurring subscription
Trial period is available for a recurring subscription. In order to create a subscription with trial, you need to enable trial period in the subscription plan.
If you create a subscription by a subscription plan which has trial period enabled, only authorization amount of 5 rs will be charged to the customer, which will be refunded. And at the end of trial period duration, first subscription charge will occur.
By default the subscription's trial period duration is taken from the trial period duration specified in the plan
However you can customize the trial period. You need to send the following keys in the subscription object, if you don't want the default trial period of the subscription plan
"trial_period_length": 2,
"trial_period_unit": "weeks"
The valid trial period units are days, weeks, months, years
Note: The trial period duration in the subscription should be less than or equal to trial period configured in the subscription plan
If you don't want to give a trial period for a subscription plan, which has trial period configured. You need to send "trial_period": false
in the subscription object
Subscription Members
A subscription of type group_access
supports multiple subscribers.
Terminology
- Primary Subcriber: The subscriber who buys the subscription.
- Subscription Members: The members (identified as subscriber in AT) who have not bought subscription but are given access via it.
- User limit: The maximum number of members that can be added in a subscription. It is equal to the
user_limit
set in subscription_plan of said subscription.
GET list of members
$ curl -H 'X-SUBAUTH: <api-auth-key>'\
-X GET 'https://accesstype.com/api/v1/subscribers/<primary_subscriber_identity_provider>/<primary_subscriber_identity>/subscriptions/<subscription_id>/members'
{
"members": [
{
"id": 1087,
"name": 'foo',
"created_at": "2019-08-14T09:43:57.557Z",
"updated_at": "2019-08-14T09:43:57.557Z",
"metadata": null,
"cumulative_end_timestamps": {
"standard_subscriptions_cumulative_end_timestamp": null,
"campaign_subscriptions_cumulative_end_timestamp": null
},
"subscriber_identities": [
{
"provider": "email",
"value": "foo@example.com"
},
{
"provider": "quintype",
"value": "123"
}
]
}
]
}
Used to get the list of subscription members for a particular subscription.
Arguments
- primary_subscriber_identity_provider required
- The identity provider for primary subscriber.(e.g. email)
- primary_subscriber_identity required
- The identity for primary subscriber.(e.g. the actual email address)
- subscription_id required
- The id of subscription for which you want to get list of members.
POST members to subscription
$ curl -H 'X-SUBAUTH: <api-auth-key>'\
-X POST 'https://accesstype.com/api/v1/subscribers/<primary_subscriber_identity_provider>/<primary_subscriber_identity>/subscriptions/<subscription_id>/members -d {
"member" : {
"provider": "email",
"identity": "jon@gmail.com",
"name": "jon doe"
}}'
{
"members":
{
"id": 1087,
"name": 'foo',
"created_at": "2019-08-14T09:43:57.557Z",
"updated_at": "2019-08-14T09:43:57.557Z",
"metadata": null,
"cumulative_end_timestamps": {
"standard_subscriptions_cumulative_end_timestamp": null,
"campaign_subscriptions_cumulative_end_timestamp": null
},
"subscriber_identities": [
{
"provider": "email",
"value": "foo@example.com"
},
{
"provider": "quintype",
"value": "123"
}
]
}
}
Used to add a member to a particular subscription.
Arguments
- primary_subscriber_identity_provider required
- The identity provider for primary subscriber.(e.g. email)
- primary_subscriber_identity required
- The identity for primary subscriber.(e.g. the actual email address)
- subscription_id required
- The id of subscription for which you want to get list of members.
Request Body
It is an object with following fields:
- provider required
- The identity provider for member to be added.(e.g. email)
- identity required
- The identity for member to be added.(e.g. the actual email address)
- name optional
- The name of member to be added.
DELETE members
$ curl -H 'X-SUBAUTH: <api-auth-key>'\
-X DELETE 'https://accesstype.com/api/v1/subscribers/<primary_subscriber_identity_provider>/<primary_subscriber_identity>/subscriptions/<subscription_id>/members?ids[]=id1&ids[]=id2'
{}
Used to delete members from a particular subscription.
Arguments
- primary_subscriber_identity_provider required
- The identity provider for primary subscriber.(e.g. email)
- primary_subscriber_identity required
- The identity for primary subscriber.(e.g. the actual email address)
- subscription_id required
- The id of subscription for which you want to get list of members.
- ids required
- The array of member ids to be deleted.
Subscription Gifts
POST Preview a Subscription for gifting
curl -H "X-SUBAUTH: <auth-token>" -H "Content-Type: application/json" -X POST https://www.accesstype.com/api/v1/subscribers/<provider>/<identity>/subscriptions/preview.json -d '{
"recipient_subscriber": {
"recipient_identity_provider": "email",
"recipient_identity": "friend@example.com"
},
"subscription": {
"notes": "enter your notes",
"subscription_type": "standard",
"subscription_plan_id": 2118,
"coupon_code": "UAT",
"payment": {
"payment_type": "razorpay",
"amount_cents": 14400,
"amount_currency": "INR",
"payment_token": "pay_BWpQWQcLLK3L37"
},
"metadata": {
"mobile_number": "7639817688"
}
},
"alternate_provider": "email",
"alternate_identity": "hey@quintype.com",
"attempt_token": "WnwxA2AVrE3xqcDUqrSb3sNm"
}'
{
"subscription": {
"id": null,
"subscriber_id": 2454,
"subscription_plan_id": 10,
"created_at": null,
"updated_at": null,
"assets": [],
"start_timestamp": "2020-03-18T11:29:12.926Z",
"end_timestamp": "2020-03-25T11:29:12.926Z",
"deleted_at": null,
"payment_id": null,
"metadata": {
"mobile_number": "7639817688"
},
"external_id": null,
"trial_period_length": null,
"trial_period_unit": null,
"campaign_id": null,
"plan_amount_cents": 1000,
"plan_amount_currency": "INR",
"duration_unit": "weeks",
"duration_length": 1,
"plan_name": "plan inr",
"plan_description": "plan inr",
"group_name": "TEST",
"group_description": "test",
"subscription_type": "standard",
"plan_occurrence": "One Time",
"subscription_attempt_id": 2781,
"renewal_reminder_sent_date": null,
"dynamic_assets": {},
"coupon_discount_id": null,
"notes": null,
"account_id": null,
"subscription_group_id": 5,
"preferred_identity": {
"provider": "email",
"value": "friend@example.com"
},
"active": true,
"payment_amount": "10.00",
"payment_amount_cents": 1000,
"payment_amount_currency": "INR",
"payment_type": "paypal",
"payment_token": null,
"renewable": true,
"status": "active",
"expired": false,
"coupon_code": null,
"recurring": false,
"cancelled_at": null,
"next_payment_due_date": null,
"cancelled": false,
"in_grace_period": false,
"invoices": [],
"subscriber_name": null,
"discount_detail": {},
"referrer": null,
"gifter": null,
"created_by": null,
"subscriber": {
"id": 2454,
"name": null,
"created_at": "2020-03-18T11:29:12.741Z",
"updated_at": "2020-03-18T11:29:12.741Z",
"metadata": null,
"cumulative_end_timestamps": {
"standard_subscriptions_cumulative_end_timestamp": null,
"campaign_subscriptions_cumulative_end_timestamp": null
},
"subscriber_identities": [
{
"provider": "email",
"value": "friend@example.com"
}
]
},
"expires_in_days": 7,
"in_trial_period": false
},
"attempt_token": "EVcXP57CjzE6t2yumRHQ44gf",
"external_reference_id": null,
"custom_message": null
}
It returns a preview for a Subscription, without creating a new subscription.
For a successful subscription, it also returns an attempt_token
.
Please note that recipient subscriber should not be same as the gifter.
POST Create a Subscription for gifting
curl -H "X-SUBAUTH: <auth-token>" -H "Content-Type: application/json" -X POST https://www.accesstype.com/api/v1/subscribers/<provider>/<identity>/subscriptions.json -d '{
"recipient_subscriber": {
"recipient_identity_provider": "email",
"recipient_identity": "friend@example.com"
},
"subscription": {
"notes": "enter your notes",
"subscription_type": "standard",
"subscription_plan_id": 2118,
"coupon_code": "UAT",
"payment": {
"payment_type": "razorpay",
"amount_cents": 14400,
"amount_currency": "INR",
"payment_token": "pay_BWpQWQcLLK3L37"
},
"metadata": {
"mobile_number": "7639817688"
}
},
"alternate_provider": "email",
"alternate_identity": "hey@quintype.com",
"attempt_token": "WnwxA2AVrE3xqcDUqrSb3sNm"
}'
{
"subscription": {
"id": 104273,
"subscriber_id": 101788,
"subscription_plan_id": 19781,
"created_at": "2020-01-20T09:09:15.988Z",
"updated_at": "2020-01-20T09:09:15.988Z",
"assets": [],
"start_timestamp": "2020-01-20T09:09:15.943Z",
"end_timestamp": "2020-01-27T09:09:15.943Z",
"deleted_at": null,
"payment_id": 104440,
"metadata": {
"mobile_number": "8892665215"
},
"external_id": null,
"trial_period_length": null,
"trial_period_unit": null,
"campaign_id": null,
"plan_amount_cents": 0,
"plan_amount_currency": "INR",
"duration_unit": "weeks",
"duration_length": 1,
"plan_name": "Gold - 3 months",
"plan_description": "Price 0",
"group_name": "Gold",
"group_description": "Gold plan",
"subscription_type": "standard",
"plan_occurrence": "One Time",
"subscription_attempt_id": 184597,
"renewal_reminder_sent_date": null,
"dynamic_assets": {},
"coupon_discount_id": null,
"notes": null,
"subscription_group_id": 8686,
"preferred_identity": {
"provider": "email",
"value": "friend@example.com"
},
"active": true,
"payment_amount": "0.00",
"payment_amount_cents": 0,
"payment_amount_currency": "INR",
"payment_type": "sponsored",
"payment_token": null,
"renewable": false,
"status": "active",
"expired": false,
"coupon_code": null,
"recurring": false,
"cancelled_at": null,
"next_payment_due_date": null,
"cancelled": false,
"in_grace_period": false,
"invoices": [
{
"id": 71623,
"sequenced_invoice_number": "Kihn28241",
"base_price": "0",
"amount_cents": 0,
"amount_currency": "INR",
"created_at": "2020-01-20T09:09:16.117Z",
"amount_after_discount_before_tax": "0",
"discount_details": {},
"invoice_taxes": {
"Milagros": {
"percentage": "9.0",
"amount": "0",
"currency": "INR"
},
"Xiao": {
"percentage": "9.0",
"amount": "0",
"currency": "INR"
},
"Dwight": {
"percentage": "9.0",
"amount": "0",
"currency": "INR"
},
"Ardath": {
"percentage": "9.0",
"amount": "0",
"currency": "INR"
}
},
"round_off": "0",
"external_payment_id": null,
"downloadable": false
}
],
"subscriber_name": null,
"discount_detail": {},
"referrer": null,
"gifter": {
"id": 101663,
"name": "Gifter",
"email": "gifter@example.com"
},
"created_by": null,
"subscriber": {
"id": 101788,
"name": null,
"created_at": "2020-01-20T09:09:14.557Z",
"updated_at": "2020-01-20T09:09:14.557Z",
"metadata": null,
"cumulative_end_timestamps": {
"standard_subscriptions_cumulative_end_timestamp": "2020-01-27T09:09:15.943Z",
"campaign_subscriptions_cumulative_end_timestamp": "2020-01-27T09:09:15.943Z"
},
"subscriber_identities": [
{
"provider": "email",
"value": "friend@example.com"
}
]
},
"expires_in_days": 7,
"in_trial_period": false
}
}
This API can be used to create a subscription and gift it to a recipient_subscriber
.
recipient_subscriber
details are required.
It returns a Subscription Object in response
LIST Subscriptions gifted by a user
$ curl -H "X-SUBAUTH: <auth-token>" https://www.accesstype.com/api/v1/subscribers/<provider>/<identity>/subscription_gifts.json
{
"subscriptions":[
{
"id":713,
"subscriber_id":453,
"subscription_plan_id":16,
"created_at":"2017-10-30T10:55:42.201Z",
"updated_at":"2017-10-30T10:55:42.201Z",
"assets":[
],
"start_timestamp":"2017-10-30T10:55:42.176Z",
"end_timestamp":"2017-11-13T10:55:42.176Z",
"deleted_at":null,
"payment_id":668,
"metadata":{
"Name":"Sample User",
"Address":"Sample add",
"Phone Number":"1111111111"
},
"external_id":null,
"trial_period_length":null,
"trial_period_unit":null,
"coupon_code":null,
"subscription_group_id":21,
"preferred_identity":{
"provider":"email",
"value":"sample@gmail.com"
},
"group_name":"Sub Group 1",
"plan_name":"Sub Plan 1",
"duration_length":2,
"duration_unit":"weeks",
"subscription_type":"individual",
"active":true,
"payment_amount":"0.00",
"payment_type":"manual",
"renewable": true
}
]
}
Campaigns
LIST all Campaigns
$ curl -H "X-SUBAUTH: <your-auth-token>" https://www.accesstype.com/api/v1/campaigns.json
{
"subscription_groups": [{
"id": 9,
"account_id": 2,
"name": "Campaign",
"description": "Campaign",
"subscription_type": "campaign",
"public": true,
"created_at": "2019-12-12T09:26:05.418Z",
"updated_at": "2020-01-03T05:33:05.130Z",
"deleted_at": null,
"preferred_identity_provider": "email",
"metadata_fields": [],
"currency": "INR",
"target_amount": 2000,
"target_amount_validation_enabled": true,
"assets": [],
"display_assets": [],
"target_reached": false,
"collected_amount_cents": 100000,
"collected_amount": 1000.0,
"collected_amount_percentage": 50.0,
"subscription_plans": [{
"id": 76,
"subscription_group_id": 9,
"duration_length": 1,
"price_cents": 100000,
"price_currency": "INR",
"created_at": "2019-12-23T10:44:45.659Z",
"updated_at": "2019-12-23T10:44:45.659Z",
"duration_unit": "years",
"description": "qwerty",
"title": "Plan 2",
"max_trial_period_length": null,
"max_trial_period_unit": null,
"recurring": false,
"metadata": {},
"deleted_at": null,
"enabled": true,
"trial_period_enabled": false,
"supported_payment_providers": [],
"assets": [],
"display_assets": []
},
{
"id": 49,
"subscription_group_id": 9,
"duration_length": 1,
"price_cents": 5000,
"price_currency": "INR",
"created_at": "2019-12-12T09:33:39.024Z",
"updated_at": "2019-12-12T09:33:39.024Z",
"duration_unit": "weeks",
"description": "Camp Door",
"title": "Camp Door",
"max_trial_period_length": null,
"max_trial_period_unit": null,
"recurring": false,
"metadata": {},
"deleted_at": null,
"enabled": true,
"trial_period_enabled": false,
"supported_payment_providers": [],
"assets": [{
"title": "Asset Site",
"metadata": {},
"type": "site"
}],
"display_assets": [{
"title": "Asset Site",
"metadata": {},
"type": "site"
}]
}
]
}]
}
This API will list out all campaign subscriptions that are set up for the account.
Pay Per Asset
List Prices of Assets
curl -H "X-SUBAUTH: <auth-token>" -X GET 'http://www.accesstype.com/api/v1/asset/<asset-type>/pricing_plans.json?id=123456&collection_id[]=123&collection_id[]=456>'
{
"pricing_plans": [
{
"id": 1071,
"price_cents": 1400,
"price_currency": "INR",
"duration_length": 1,
"duration_unit": "lifetime"
},
{
"id": 1959,
"price_cents": 1000,
"price_currency": "INR",
"duration_length": 1,
"duration_unit": "months"
}
]
}
This API returns the prices of a story or a collection when sold individually.
Parameter | Type | Occurrence | Description |
---|---|---|---|
/<asset-type>/ |
string | 1 | The type of asset that is being purchased. Valid Values for Quintype CMS story ,collection |
id |
string | 1 | The identifier of the story or collection that is being purchased. |
collection_id[] |
string | 0 or many | The identifier of the collection that the story belongs to. Used when the value of /<asset-type>/ is story . |
Create Asset Purchase API
curl -H "X-SUBAUTH: <auth-token>" -H "Content-Type: application/json" -X POST http://www.accesstype.com/api/v1/subscribers/email/myid@example.com/subscriptions.json -d '{
"subscription": {
"subscription_type": "dynamic_asset",
"subscription_plan_id": <pricing-plan-id>,
"payment": {
"payment_type": "simpl"
},
"metadata": {
"full-name": "hello",
"email": "hello@quintype.com"
},
"dynamic_assets": [{
"id": "some_asset_id"
}]
},
"alternate_provider": "email",
"alternate_identity": "hey@quintype.com",
"attempt_token": "fo4bMWjP6N5vtVySNtiAUNBQ",
"name": "Ben"
}
Assets
LIST All Assets accessible to a user
$ curl -H "X-SUBAUTH: <auth-token>" https://www.accesstype.com/api/v1/subscribers/<provider>/<identity>/assets.json
{
"assets":[
{
"metadata":{},
"title":"public",
"type":"site"
}
]
}
Subscriber Wallets
POST subscriber wallet token
$ curl -H "X-SUBAUTH: <auth-token>" -H "Content-Type: application/json" -X POST https://www.accesstype.com/api/v1/subscribers/<provider>/<identity>/subscriber_wallets.json -d '{
"subscriber_wallet": {
"provider": "simpl",
"metadata": {
"token": "8ashfsdfvyhurn8g9w85gjf"
}
}
}'
{
"subscriber_wallet": {
"provider": "simpl",
"metadata": {
"token": "thenashfsdfvyurn8g9w85gjf"
}
}
}
This request allows to POST a user's wallet token from any wallet provider. Examples of Providers: Simpl, PayTm
Allowed values for subscriber_wallet.provider
are simpl
,paytm
.
Parameter | Type | Mandatory | Description |
---|---|---|---|
subscriber_wallet.provider | string | Yes | Valid Values simpl ,paytm |
subscriber_wallet.metadata | object | Yes | Can have multiple key value pairs. Can be used to store tokens provided by wallet provider. E.g., "token": "8ashfsdfvyhurn8g9w85gjf" |
The request body is returned back in the response.
LIST wallets of subscriber
$ curl -H "X-SUBAUTH: <auth-token>" https://www.accesstype.com/api/v1/subscribers/<provider>/<identity>/subscriber_wallets.json
{
"subscriber_wallets": [{
"provider": "paytm_auto_debit",
"metadata": {
"exprires_at": "1517922233955"
}
},
{
"provider": "simpl",
"metadata": {}
}]
}
This API call returns all the wallets of a subscriber.
DELETE wallets of subscriber
$ curl -H "X-SUBAUTH: <auth-token>" https://www.accesstype.com/api/v1/subscribers/<provider>/<identity>/subscriber_wallets.json -X DELETE
This API deletes all the wallets of a subscriber.
Coupon codes
GET discount details for a subscription plan
$ curl -H "X-SUBAUTH: <auth-token>" https://www.accesstype.com/api/v1/subscription_plans/<subscription-plan-id>/coupon_codes/<code>/validate.json
{
"discount_details": {
"code": "TEST100",
"discount_type": "amount",
"title": "test-100",
"value": 1000,
"discounted_price_cents": 28900,
"price_cents": 29900,
"price_currency": "INR"
},
"message": "Applied successfully"
}
It returns discount details for a active coupon code.
Invoices
GET invoice details for a subscription
$ curl -H "X-SUBAUTH: <auth-token>"
https://accesstype.com/api/v1/subscribers/<provider>/<identity>/subscriptions/<subscription_id>/invoices/<invoice_id>/download.json
It returns the invoice.pdf file in pdf format
This API is used to download the invoice in the pdf format.
Invoice Template Variables
The below format considers the price inclusive of taxes.
Name | Description |
---|---|
user_name | Name of the user in the accesstype who purchased the subscription |
invoice_number | The sequence of invoice number for that account. Example: publisher_name/1, publiser_name/2 |
user_email | Email of the user in the accesstype who purchased the subscription |
date | Date of purchase of subscription. Example: 11 Dec 2018 |
payment_method | Payment gateway used by the purchaser. Example: razorpay, simpl, paytm |
recurring | true if it's a recurring subscription, false if it's a one time payment |
base_price | Basic price is the amount receivable by the publisher from the user for the purchase of subscription minus any tax on the product.For example if 110 is the price paid by the user and 10 % if the tax specified by the admin. The base price is calculated by the following formula (110/(1+10/100)), which equals 100 |
subscription_group_title | The subscription group name, the subscription plan belongs to |
subscription_plan_title | The subscription plan name, for which the user purchases a subscription |
subscription_plan_price | The price of the subscription plan, specified by the admin without any discount applied |
amount_paid | The amount received from the user. If the user applies a discount, discount is applied on the plan amount. |
discount_details | It's a hash with following fields code - which represents the discount code applied by the user discount_percentage - which represents the percentage of discount applied discount_amount - which represents the amount of the discount Example: {"code" => "UAT","discount_percentage" => 20,"discount_amount" => "77.97"} |
taxes | It's a hash with tax objects. If multiple taxes are specified by the admin, multiple tax objects will be present in this object {"SGST" => {"percentage" => "9.0","amount" => "28.07","currency" => "INR"}, "CGST" => {"percentage" => "9.0","amount" => "28.07","currency" => "INR"} } |
subscription_end_date | Represents the end date of the subscription |
dynamic_assets | This is applicable for pay per asset type of subscriptions. Suppose if user purchases a storytitle, slug will be available in this field Example: [{id: "some_asset_id", title: "Some title", slug: "/some-slug"}] |
amount_after_discount_before_tax | This amount is arrived at, when discount is applied on the base price and does not include the tax amounts. |
round_off | The amount that was rounded off in calculating the amount paid by the subscriber from the calculated base price, price after discount and taxes. Unit: Rupee for INR and dollar for USD. |
benefit_product | This is the title of the befefit product that is added to referree, because he/she used a coupon code which has discount type unit |
notes | If there are any notes made during the subscription creation |
Subscriber Referral Voucher
Currently this feature is available only for accounts that use Voucherify
Every subscriber has a referral voucher code that he can share with others.
GET Referral voucher for a user
$ curl -H "X-SUBAUTH: <auth-token>" https://www.accesstype.com/api/v1/subscribers/<provider>/<identity>/referral_voucher.json
{
"referral_voucher": {
"provider": "voucherify",
"code": "MY_REFERRAL",
"subscriber_id": 998
}
}
This API will return the referral voucher code for a user.
It will accept the primary identity via URL parameters, and will also accept query parameters alternate_provider
, alternate_identity
and name
.
[DEPRECATED] For Platform Customers
The below APIs are deprecated. Please use this instead.
The customers of Quintype platform can use below APIs for subscriptions in Accesstype.
[Deprecated] POST Preview a subscription without login
curl -H "content-type: application/json" https://sketches.quintype.com/api/v1/members/me/subscriptions/preview-without-login -d '{
"member": {
"email": "example@gmail.com"
},
"subscription": {
"subscription_plan_id": "11",
"coupon_code": "NEWYEAR",
"payment": {
"payment_type": "razorpay",
"amount_cents": "99900",
"amount_currency": "INR"
},
"metadata": {
"full-name": "hello",
"email": "hello@quintype.com"
},
"start_timestamp": "2017-09-21 00:00:00"
}
}
'
{
"subscription": {
"invoices": [],
"next_payment_due_date": null,
"deleted_at": null,
"campaign_name": null,
"payment_amount_currency": "INR",
"campaign_subscription": false,
"campaign_id": null,
"start_timestamp": "2018-07-24T00:00:00.000Z",
"assets": [
{
"title": "Asset Site Title",
"metadata": {},
"type": "site"
}
],
"end_timestamp": "2018-08-24T00:00:00.000Z",
"payment_amount": "8.50",
"discount_detail": {
"code": "NEWYEAR",
"discount_type": "percent",
"title": "New Year offer",
"value": 15,
"discounted_price_cents": 850,
"price_cents": 1000,
"price_currency": "INR"
},
"duration_length": 1,
"dynamic_assets": {},
"trial_period_length": null,
"group_description": "Subscription Group Description",
"renewable": true,
"subscription_attempt_id": null,
"subscription_group_id": 4409,
"coupon_code": "NEWYEAR",
"recurring": false,
"payment_type": "preview",
"cancelled": false,
"payment_token": null,
"updated_at": null,
"coupon_code_id": 81,
"plan_amount_cents": 1000,
"status": "expired",
"group_name": "Test_Subscription_Group1544522619333",
"external_id": null,
"active": false,
"id": null,
"plan_occurrence": "One Time",
"in_grace_period": false,
"code": null,
"preferred_identity": {
"provider": "email",
"value": "qa20Dec2018123234@quintype.com"
},
"plan_amount_currency": "INR",
"expired": true,
"payment_id": null,
"plan_name": "Test ",
"subscription_plan_id": 5594,
"duration_unit": "months",
"trial_period_unit": null,
"subscription_type": "standard",
"plan_description": "test",
"cancelled_at": null,
"metadata": {
"mobile": "9844089877",
"full-name": "hello",
"email": "hello@quintype.com"
},
"renewal_reminder_sent_date": null,
"created_at": null,
"subscriber_id": 37104,
"payment_amount_cents": 850
},
"attempt_token": "9r1Sctb2pyvocEkwhp1U5Sfq",
"external_reference_id": null
}
This API can be used to preview a subscription when user is not logged in.
It returns a preview for a Subscription, without creating a new subscription.
For a successful subscription, it also return an attempt_token
.
An attempt_token
is the identifier of a subscription attempt. It should be sent back with register & subscribe api or subscribe without login api to mark an attempt as success.
We highly recommend use of this API before accepting payment form a user.
[Deprecated] POST Preview a subscription for logged in user
curl -H "X-QT-AUTH: <your-auth-token>" -H "content-type: application/json" https://sketches.quintype.com/api/v1/api/v1/members/me/subscriptions/preview -d '{
"subscription": {
"subscription_plan_id": "11",
"coupon_code": "NEWYEAR",
"payment": {
"payment_type": "razorpay",
"amount_cents": "99900",
"amount_currency": "INR"
},
"metadata": {
"full-name": "hello",
"email": "hello@quintype.com"
},
"start_timestamp": "2017-09-21 00:00:00"
}
}
'
{
"subscription": {
"id": null,
"subscriber_id": 8302,
"subscription_plan_id": 11,
"created_at": null,
"updated_at": null,
"assets": [],
"start_timestamp": "2218-09-29T19:54:02.833Z",
"end_timestamp": "2318-09-29T19:54:02.833Z",
"deleted_at": null,
"payment_id": null,
"metadata": {
"full-name": "hello",
"email": "hello@quintype.com"
},
"external_id": null,
"trial_period_length": null,
"trial_period_unit": null,
"code": null,
"discount_detail": {},
"coupon_code_id": null,
"campaign_id": null,
"plan_amount_cents": 50000,
"plan_amount_currency": "INR",
"duration_unit": "lifetime",
"duration_length": 1,
"plan_name": "life time ",
"plan_description": "life time ",
"group_name": "prod test 30 aug",
"group_description": "prod test 30 aug",
"subscription_type": "standard",
"plan_occurrence": "One Time",
"subscription_attempt_id": null,
"renewal_reminder_sent_date": null,
"dynamic_assets": {},
"subscription_group_id": 2313,
"preferred_identity": {
"provider": "email",
"value": "biswajit+29@quintype.com"
},
"active": false,
"payment_amount": "0.00",
"payment_amount_cents": 0,
"payment_amount_currency": "USD",
"payment_type": "manual",
"payment_token": null,
"renewable": false,
"status": "pending",
"expired": false,
"coupon_code": "NEWYEAR,
"campaign_name": null,
"campaign_subscription": false,
"recurring": false,
"cancelled_at": null,
"next_payment_due_date": null,
"cancelled": false,
"in_grace_period": false
},
"attempt_token": "SSLvhLBEWiMxcEiMKgHxATpJ",
"external_reference_id": null
}
It returns a preview for a Subscription, without creating a new subscription.
For a successful subscription, it also return an attempt_token
.
An attempt_token
is the identifier of a subscription attempt. It should be sent back with create-subscription api.
We highly recommend use of this API before accepting payment form a user.
[Deprecated] POST Register And Subscribe without login
curl -H "X-QT-AUTH: sample-auth" -H "Content-Type: application/json" http://sketches.quintype.com/api/v1/register-and-subscribe -d '{
"member": {
"email": "ace33@quintype.com",
"username": "ace 33",
"password": "password",
"name": "ace 33",
"dont-login": false
},
"options": {
"gateway-name": "razorpay"
},
"payment": {
"attributes": {
"currency": "INR",
"amount": 100,
"payment-type": "Razorpay",
"gateway-payment-id": "pay_123trt465",
"attributes": ""
}
},
"subscription": {
"accesstype-plan-id": 4,
"metadata": {
"city": "Bangalore",
"state": "Karnataka",
"house": "Old Airport Road, Murugeshpallya, Bangalore",
"street": "Old Airport Road, Murugeshpallya, Bangalore",
"landmark": "Karnataka",
"pincode": "560017",
"mobile": "8129612361"
},
"coupon-code": "HOLI"
},
"attempt-token": "attempt-token"}
'
{
"subscription": {
"invoices": [
{
"amount_after_discount_before_tax": "122.03",
"amount_currency": "INR",
"id": 990,
"invoice_taxes": {
"SGST": {
"percentage": "9.0",
"amount": "10.98",
"currency": "INR"
},
"CGST": {
"percentage": "9.0",
"amount": "10.98",
"currency": "INR"
}
},
"amount_cents": 14400,
"base_price": "152.54",
"sequenced_invoice_number": "BQ/1819/SUB/167",
"discount_details": {
"code": "UAT",
"discount_percentage": 20,
"discount_amount": "30.51"
},
"created_at": "2018-12-12T10:25:48.590Z"
}
],
"next_payment_due_date": null,
"deleted_at": null,
"campaign_name": null,
"payment_amount_currency": "INR",
"campaign_subscription": false,
"campaign_id": null,
"start_timestamp": "2021-08-07T11:28:46.271Z",
"assets": [
{
"title": "Site",
"metadata": {},
"type": "site"
},
{
"title": "Monthly magazines",
"metadata": {},
"type": "static"
},
{
"title": "All exclusive reportage content",
"metadata": {
"access_level": 400
},
"type": "story"
},
{
"title": "All paid stories",
"metadata": {
"access_level": 300
},
"type": "story"
},
{
"title": "All Story",
"metadata": {
"access_level": "999"
},
"type": "story"
}
],
"end_timestamp": "2021-11-07T11:28:46.271Z",
"payment_amount": "144.00",
"discount_detail": {
"code": "UAT",
"discount_type": "percent",
"title": "UAT Trial",
"value": 20,
"discounted_price_cents": 14400,
"price_cents": 18000,
"price_currency": "INR"
},
"duration_length": 3,
"dynamic_assets": {},
"trial_period_length": null,
"group_description": "Silver + Access to Exclusive Reportage + Monthly round-up magazines",
"renewable": false,
"subscription_attempt_id": 96595,
"subscription_group_id": 2197,
"coupon_code": "UAT",
"recurring": false,
"payment_type": "razorpay",
"cancelled": false,
"payment_token": "pay_BWpQWQcLLK3L37",
"updated_at": "2018-12-12T10:25:48.494Z",
"coupon_code_id": 82,
"plan_amount_cents": 18000,
"status": "pending",
"group_name": "Unlimited",
"external_id": null,
"active": false,
"id": 32405,
"plan_occurrence": "One Time",
"in_grace_period": false,
"code": null,
"preferred_identity": {
"provider": "quintype",
"value": "251933"
},
"plan_amount_currency": "INR",
"expired": false,
"payment_id": 32379,
"plan_name": "3 months",
"subscription_plan_id": 2118,
"duration_unit": "months",
"trial_period_unit": null,
"subscription_type": "standard",
"plan_description": "All assets ",
"cancelled_at": null,
"metadata": {
"mobile_number": "7639817688"
},
"renewal_reminder_sent_date": null,
"created_at": "2018-12-12T10:25:48.494Z",
"subscriber_id": 9311,
"payment_amount_cents": 14400
}
}
Registers a member and creates subscription in Accesstype. To be used for users that have not logged in. It returns X-QT-AUTH in response headers.
gateway-name
can be any valid payment-type supported by Accesstype.
accesstype-plan-id
is the Id of plan in Accesstype.
attempt-token
can be fetched using preview api. This is an optional parameter but we advice you to use it for better tracking of transactions.
[Deprecated] POST Create Subscription for logged in user
curl -H "X-QT-AUTH: <your-auth-token>" -H "Content-Type: application/json" -X POST http://sketches.quintype.com/api/v1/members/me/subscriptions -d '{
"subscription": {
"subscription_plan_id": "2118",
"coupon_code": "UAT",
"payment": {
"payment_type": "razorpay",
"payment_token": "pay_BWpQWQcLLK3L37",
"amount_cents": "14400",
"amount_currency": "INR"
},
"metadata": {
"full-name": "hello",
"email": "hello@quintype.com"
},
"start_timestamp": "2018-09-21 00:00:00"
},
"attempt_token": "fo4bMWjP6N5vtVySNtiAUNBQ"
}'
{
"subscription": {
"invoices": [
{
"amount_after_discount_before_tax": "122.03",
"amount_currency": "INR",
"id": 990,
"invoice_taxes": {
"SGST": {
"percentage": "9.0",
"amount": "10.98",
"currency": "INR"
},
"CGST": {
"percentage": "9.0",
"amount": "10.98",
"currency": "INR"
}
},
"amount_cents": 14400,
"base_price": "152.54",
"sequenced_invoice_number": "BQ/1819/SUB/167",
"discount_details": {
"code": "UAT",
"discount_percentage": 20,
"discount_amount": "30.51"
},
"created_at": "2018-12-12T10:25:48.590Z"
}
],
"next_payment_due_date": null,
"deleted_at": null,
"campaign_name": null,
"payment_amount_currency": "INR",
"campaign_subscription": false,
"campaign_id": null,
"start_timestamp": "2021-08-07T11:28:46.271Z",
"assets": [
{
"title": "Site",
"metadata": {},
"type": "site"
},
{
"title": "Monthly magazines",
"metadata": {},
"type": "static"
},
{
"title": "All exclusive reportage content",
"metadata": {
"access_level": 400
},
"type": "story"
},
{
"title": "All paid stories",
"metadata": {
"access_level": 300
},
"type": "story"
},
{
"title": "All Story",
"metadata": {
"access_level": "999"
},
"type": "story"
}
],
"end_timestamp": "2021-11-07T11:28:46.271Z",
"payment_amount": "144.00",
"discount_detail": {
"code": "UAT",
"discount_type": "percent",
"title": "UAT Trial",
"value": 20,
"discounted_price_cents": 14400,
"price_cents": 18000,
"price_currency": "INR"
},
"duration_length": 3,
"dynamic_assets": {},
"trial_period_length": null,
"group_description": "Silver + Access to Exclusive Reportage + Monthly round-up magazines",
"renewable": false,
"subscription_attempt_id": 96595,
"subscription_group_id": 2197,
"coupon_code": "UAT",
"recurring": false,
"payment_type": "razorpay",
"cancelled": false,
"payment_token": "pay_BWpQWQcLLK3L37",
"updated_at": "2018-12-12T10:25:48.494Z",
"coupon_code_id": 82,
"plan_amount_cents": 18000,
"status": "pending",
"group_name": "Unlimited",
"external_id": null,
"active": false,
"id": 32405,
"plan_occurrence": "One Time",
"in_grace_period": false,
"code": null,
"preferred_identity": {
"provider": "quintype",
"value": "251933"
},
"plan_amount_currency": "INR",
"expired": false,
"payment_id": 32379,
"plan_name": "3 months",
"subscription_plan_id": 2118,
"duration_unit": "months",
"trial_period_unit": null,
"subscription_type": "standard",
"plan_description": "All assets ",
"cancelled_at": null,
"metadata": {
"mobile_number": "7639817688"
},
"renewal_reminder_sent_date": null,
"created_at": "2018-12-12T10:25:48.494Z",
"subscriber_id": 9311,
"payment_amount_cents": 14400
}
}
This API can be used to create a subscription.
Here attempt_token
is the token received from preview.
This API is safe to call from the front end JS, where it will read session-cookie to determine the current user. Backend callers can use X-QT-AUTH for the same purpose.
[Deprecated] LIST All subscriptions of a user
curl -H "X-QT-AUTH: <your-auth-token>" -H "Content-Type: application/json" http://sketches.quintype.com/api/v1/members/me/subscriptions
{
"subscriptions": [
{
"invoices": [
{
"amount_after_discount_before_tax": "122.03",
"amount_currency": "INR",
"id": 990,
"invoice_taxes": {
"SGST": {
"percentage": "9.0",
"amount": "10.98",
"currency": "INR"
},
"CGST": {
"percentage": "9.0",
"amount": "10.98",
"currency": "INR"
}
},
"amount_cents": 14400,
"base_price": "152.54",
"sequenced_invoice_number": "BQ/1819/SUB/167",
"discount_details": {
"code": "UAT",
"discount_percentage": 20,
"discount_amount": "30.51"
},
"created_at": "2018-12-12T10:25:48.590Z"
}
],
"id": 713,
"subscriber_id": 453,
"subscription_plan_id": 16,
"created_at": "2017-10-30T10:55:42.201Z",
"updated_at": "2017-10-30T10:55:42.201Z",
"assets": [
{
"metadata": {},
"title": "public",
"type": "site"
}
],
"start_timestamp": "2017-10-30T10:55:42.176Z",
"end_timestamp": "2017-11-13T10:55:42.176Z",
"deleted_at": null,
"payment_id": 668,
"metadata": {
"Name": "Sample User",
"Address": "Sample add",
"Phone Number": "1111111111"
},
"external_id": null,
"trial_period_length": null,
"trial_period_unit": null,
"coupon_code": null,
"subscription_group_id": 21,
"preferred_identity": {
"provider": "email",
"value": "sample@gmail.com"
},
"group_name": "Sub Group 1",
"plan_name": "Sub Plan 1",
"duration_length": 2,
"duration_unit": "weeks",
"subscription_type": "individual",
"active": true,
"payment_amount": "0.00",
"payment_type": "manual",
"renewable": true
}
]
}
It gives all subscriptions for a user.
This API is safe to call from the front end JS, where it will read session-cookie to determine the current user. Backend callers can use X-QT-AUTH for the same purpose.
[Deprecated] LIST All Assets accessible to user
curl -H "X-QT-AUTH: <your-auth-token>" -H "Content-Type: application/json" http://sketches.quintype.com/api/v1/members/me/assets
{
"assets":[
{
"metadata":{},
"title":"public",
"type":"site"
}
]
}
It gives all assets accessible to a user.
This API is safe to call from the front end JS, where it will read session-cookie to determine the current user. Backend callers can use X-QT-AUTH for the same purpose.
[Deprecated] PATCH Update a subscription
curl -H "X-QT-AUTH: <your-auth-token>" -H "Content-Type: application/json" -X PATCH http://sketches.quintype.com/api/v1/members/me/subscriptions/<id> -d '{
"metadata": {
"full-name": "hello-world",
"email": "hello@quintype.com"
}
}'
It updates a subscription for user.
This API is safe to call from the front end JS, where it will read session-cookie to determine the current user. Backend callers can use X-QT-AUTH for the same purpose.
[Deprecated] GET Access details
curl -H "X-QT-AUTH: <your-auth-token>" -X GET 'http://sketches.quintype.com/api/v1/stories/<story-id>/access-data'
{
"access-data": {
"name": "subtype"
}
}
This API can be used to get access details of any story for a user.
It returns 403 if the story is not accessible to user, else 200.
This API is safe to call from the front end JS, where it will read session-cookie to determine the current user. Backend callers can use X-QT-AUTH for the same purpose.
Release Notes
This section contains important Accestype release notes. For any queries, please write to us at support@quintype.com.
21 Nov 19 Release NOte - Accesstype
- International Currency Support - Accesstype can now display and charge payments in multiple currencies. The complete list of currencies supported is available for Razorpay here and for Stripe here.
- Section based access - Accesstype now lets you define subscripton plans based on Sections available in your Quintype CMS - Bold so that the subscribers get access to only the stories available in the particular section or sections.
19 Nov 19 Release Note - Accesstype
- Google API upgrade - Accesstype is now updated to work with the latest GooglePay APIs(previously AndroidPay).
5 Nov 19 Release Note - Accesstype
- General Settings - A new settings page with Account Detailsm API Key and Authentication Key. The API Authentication and API Key fields are displayed to Users with the "Owner" role.
- Admin email addresses - A new feature to manage recepients of all admin related emails.
- Trial Period in Recurring Subscriptions - A new feature where recurring subscription plans now have the ability to offer subscribers a trial period before actually being charged. This is functional with Razorpay payment gateway.
22 Oct 19 Release Note - Accesstype
- Accesstype.js new method - Cancel Subscription is now allowed as a method in Accesstype.js.
25 Sep 19 Release Note - Accesstype
- Outgoing Webhooks - Webhooks setup in Accesstype will automatically be de-activated if Accesstype receives failure responses from the URL (
4**
or5**
HTTP/S response code) for a period of 24 hours. Accesstype users can then enable them by going to the Webhooks dashboard.
17 Sep 19 Release Note - Accesstype
- Subscription Revenue Analytics - The Revenue Graph indicates the total revenue generated by each individual Group or Plan in the selected time period. Option to choose the Granularity of data, Date range, Currency and Group/Plan.
- Subscriber Search upgrade - Subscriber search result now displays the attempts made by the subscriber as well.
10 Sep 19 Release Note - Accesstype
- Subscriber Search upgrade - Subscriber search now looks for users who have attempted to make a payment even if the users do not have a subscription record.
28 Aug 19 Release Note - Accesstype
- Stripe Payment Gateway Integration - Accestype now integrates with Stripe to collect payments. This includes update includes accepting one-time payments from subscribers in INR and USD currencies, listens to webhooks from Stripe and stores payment transaction information in Accesstype.
- The Subscriber object is now included in the Subscription Object in all the webhook payloads as well as Subscription Preview and Create API responses.
- Skip Payment Gateway when no payment neededAccesstype now has the ability to create subscriptions without payment gateway involvement for subscriptions that don't have a payment to be made.
19 Aug 19 Release Note - Accesstype
- Attempts CSV report now contains the payment gateway that was used by the potential subscriber to perform the attempt to subscribe.
- [Bug fix] - Add identity now trims leading and trailing spaces when Accesstype user adds an email.
- [Bug fix] - Paywall meter cookie is now persistent on exiting the browser application.
8 Aug 19 Release Note - Accesstype
- Update Subscriber metadata - Subscriber information can now be updated by using Accesstype JS.
- Manual Subscriptions can now be created and Amount Paid can be captured by Accesstype Owners using the dashboard. Go to Accesstype.com > Subscribers > Add new user or find a user by entering email > Select the Group and Plan > Enter Amount paid and notes if any > Click on Save.
5 August 19 Release Note - Accesstype
- Outgoing Webhooks (update) - Subscriber Creation webhook is an additional event that is now available for use. Time-outs are now applied to the webhook call that are made to third party systems. Time-outs are set at 10s to establish a connection and 5s to receive a response to the POST API calls.
- Skip payment gateway Accesstype now allows subscriptipons to be created when no amount is required to be paid. This may happen when the price of the plan is set to 0 or when the entire plan amount is discounted using a coupon code.
30 Jul 19 Release Note - Accesstype
- Juspay payment now opens up in a new tab instead of a new pop-up window.
26 Jul 19 Release Note - Accesstype
- Outgoing Webhooks (update) - Subscription Activation and Subscription Entered Grace Period are the events that are additionally available for use.
19 Jul 19 Release Note - Accesstype
- Outgoing Webhooks (update) - Subscription Creation, Subscription Cancellation and Subscription Renewal are the events that are additionally available for use.
1 Jul 19 Release Note - Accesstype
- Outgoing Webhooks - Accesstype now has the ability to make webhook calls to third party systems on specific events. Click here to know more about Accesstype webhooks, how to set up webhooks, a description of the events and how to verify the webhooks sent by Accesstype.
As part of this release, the Subscription Expiry event is available for use.
27 Jun 19 Release Note - Accesstype
- Cloudfalre purge optimisations.
25 Jun 19 Release Note - Accesstype
- Subscription Preview and Subscription Create without a login, are now allowed in Accesstype.js and served from the Cloudflare edge worker.
21 Jun 19 Release Note - Accesstype
- Accesstype is now integrated with Voucherify so Discount and Referral vouchers can be applied redeemed by subscribers in One-Time subscriptions and Pay Per Asset subscriptions.
18 Jun 19 Release Note - Accesstype
- Get Subscriptions and Get Assets APIs are now available in Accesstype.js and served from the Cloudflare Edge worker.
13 Jun 19 Release Note - Accesstype
- Use publisher domain specific cookie for Paywall meter.
29 May 19 Release Note - Accesstype
- Razorpay proactive subscription creation bug fixes.
20 May 19 Release Note - Accesstype
- Access grant API now served from the Cloudflare edge worker.
10 May 19 Release Note - Accesstype
- Juspay payment optimisations.
24 Apr 19 Release Note - Accesstype
- Paywall meter and Coudflare purge optimisations.
17 Apr 19 Release Note - Accesstype
- Consolidated Daily Subscription Report: This daily subscription report contains Subscription details, payment information, tax invoice data and subscriber information for Plan based subscriptions, PPA purchases and Campaign subscriptions, all in one file.
This CSV report is generated daily for the previous day and is available at
Accesstype > Analytics > Reports
11 Apr 19 Release Note - Accesstype
- Accesstype now uses serverless computing technology for increased efficiency in performance, scalability and resilience.
29 Mar 19 Release Note - Accesstype
- CSV reports now include Payment Transaction Date for better reconciliation of Recurring subscriptions.
- Bug fix: The Manage Subscription Plan and Group had hidden buttons.
- Bug fix: Recheck Paytm transaction status when it is in pending state.
28 Mar 19 Release Note - Accesstype
- CSV reports now include the International Payment column to help identify those payments that are made using international cards.
Note: This is applicable to Razorpay payment gateway only.
18 Feb 19 Release Note - Accesstype
Juspay integration - Integration with payment aggregator Juspay for iframe type of integration. Juspay's algorithms choose the best payment gateways for best success rates and also take into account pre-defined priority logic to offer the most efficient payment option to customers. To create a Merchant account on Juspay write to support@juspay.in.
Analytics Dashboard - Monthly and daily insights into the total number of subscriptions that are created.
4 Jan 19 Release Note - Accesstype
- Updated Subscription CSV Report - The subscription CSV Report now contains additional fields for financial related purposes: Base Price, Discount amounts, amount after discount before tax and round-off.
- Subscriber Name - The Subscriber name is now displayed in Accesstype UI as well as the CSV report by default, for all subscriptions, Pay Per Asset purchases and Campaign Patrons.
- Getsimpl workflow upgrades - Optimizations and security enhancements on Simpl payment option workflow.
- Bug fixes - Subscription CSV Report - Duplicate entires for recurring subscriptions are elimiated and tax amounts are displayed under the appropriate columns.
12 Dec 18 Release Notes - Accesstype
New Features:
- Invoicing and Taxes - Set up tax names and rates for generating Invoices. The tax rates set up in this module are applied and tax amounts calculated such that the price of the plan/asset is inclusive of taxes.
HTML Template for Invoices - Upload the HTML invoice using Accesstype. The template can include a bunch of variables that are listed here. The Invoice Sequence Prefix of your choice can also be updated. Write to us at support@quintype.com to reset the invoice sequence number.
API for PDF invoice download - The API end point to download PDF invoices for a given subscription is available here for those on Quintype platform and here for those not on the Quintype platform. Note: The method to invoke the download Invoice PDF API call can also be made using the AccesstypeJS which is described here and here.
11 Oct 18 Release Notes - Accesstype
New Features:
Paytm Payment Gateway - Auto Debit - Accept one-click payments for individual stories using Paytm wallets. Customers can link their wallet and purchase individual stories by just a single click. The Paytm Auto Debit option can be used via the Accesstype JS. Documentation available here: Accesstype.js link 1 Accesstype.js link 2 Coming soon: Paytm-Auto Debit on standard plans.
URLs of reports generated in Accesstype, are now signed using private URLs and have an expiry for enhanced security.
24 Sep 18 Release Notes - Accesstype
New Features:
Accesstype Javascript - Publishers on the Quintype platform can now easily integrate with Payment Gateways/Wallets as well as set up conversations with Accesstype servers, all in one place using methods in accesstype.js
- Pay Per Asset(PPA) APIs to get the price of a story, view available payment options for the user, purchase stories can be called using methods available in Accesstype.js
- Accept payments from Simpl payment gateway using accesstype.js for both traditional plans as well as for individual stories(PPA)
- Accept payments from Razorpay payment gateway using accesstype.js for both traditional plans as well as for individual stories(PPA) Documentation links: Accesstype.js link 1 Accesstype.js link 2 Note: To integrate accesstype.js with your website, please get in touch with your account managers or contact us at support@quintype.com
Pay Per Asset(PPA) - Publishers on the Quintype platform can now sell each story(a.k.a asset) individually. Set up pricing for stories and view all purcchases of individual stories using the Accesstype application.
New Payment Gateway - Simpl - Publishers can activate and use the Simpl payment gateway options for frictionless payments. Also available in the Accesstype.js
Menu restructure - The Accesstype menu is now restructured for easy navigation and segregation of subscription/purchase information.
- Encryption of Wallet token.
6 Aug 18 Release Notes - Accesstype
Enhancements and bug fixes:
- Wallets API - Link wallets of Simpl and PayTm with publishers. Documentation available here
- Emails sent out to subscribers have a new look.
- Enhancements to help reconcile subscription failures using Android Pay if any.
- Minor bug fixes.
10 Jul 18 Release Notes - Accesstype
Enhancements and bug fixes:
- Updated the Subscriptions Report to include Plan names of the group, Subscription Created Date and Subscription Start Date.
- Security and user concurrency upgrades.
28 Jun 18 Release Notes - Accesstype
Enhancements and bug fixes:
- Accesstype users will now have their activities within the application, logged in the database.
- Users will now know the account that they are actively working on.
- Optimisation in payment gateway integration: Subscription attempts, sucscription creations and multiple payments associated with a subscription are now traceable.
- Users can now get instant help using the help chat.
- Easy access link to Accesstype documentation.
- [Bug fix] Razorpay payment transaction amounts rounded down in CSV reports
- Other bug fixes.