Subscription

2 endpoints in this category.

GET/subscription/status

Get Subscription Status

Get the current subscription state for the authenticated user.

Authentication:Required — Authorization: Bearer <token>

Response Fields

NameTypeRequiredDescription
subscription_statusstringYestrial | active | expired | org_managed
trial_ends_atstring|nullNoISO 8601 trial end date
expires_atstring|nullNoSubscription expiry date
product_idstring|nullNovisitnote_monthly or visitnote_annual
platformstring|nullNoapple or google

Error Codes

StatusMeaning
401Unauthorized

Code Examples

curl -X GET 'https://visitnote-api-production.up.railway.app/api/therapist/v1/subscription/status' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_TOKEN'
POST/subscription/verify-receipt

Verify IAP Receipt

Submit an Apple App Store or Google Play receipt for server-side verification.

Authentication:Required — Authorization: Bearer <token>
Send transaction_id for Apple (iOS) or purchase_token for Google (Android). One of the two is required.

Request Body

NameTypeRequiredDescription
product_idstringYesvisitnote_monthly or visitnote_annual
platformstringYes'apple' or 'google'
transaction_idstringNoApple transaction ID (iOS only)
purchase_tokenstringNoGoogle purchase token (Android only)

Error Codes

StatusMeaning
422Invalid receipt or product_id
409Receipt already processed

Code Examples

curl -X POST 'https://visitnote-api-production.up.railway.app/api/therapist/v1/subscription/verify-receipt' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "product_id": "your_product_id",
  "platform": "your_platform",
  "transaction_id": "your_transaction_id",
  "purchase_token": "your_purchase_token"
}'