payment-service (1.0.1)

Download OpenAPI specification:Download

The service provides capabilities to interact with the payment's stored data inside of BEAUTY_OS Core in MongoDB. This is used throughout the website to retrieve information about the payment and interact with the payment's settings.

Balances

WithdrawBalance

Withdraws balance from a salon or stylist.

Authorizations:
jwt
query Parameters
salonId
string
stylistSingleSalonId
string
header Parameters
user-id
required
string
Request Body schema: application/json
amount
required
number <double>

Responses

Request samples

Content type
application/json
{
  • "amount": 0.1
}

Response samples

Content type
application/json
[
  • {
    }
]

GetBalances

Retrieves balance transactions by given salon, stylist, client and status.

Authorizations:
jwt
query Parameters
salonId
required
string
stylistSingleSalonId
string
status
string (BalanceStatus)
Enum: "INITIAL" "PENDING" "PROCESSING" "COMPLETED" "FAILED" "CANCELLED"
type
string (BalanceType)
Enum: "CREDIT" "DEBIT" "REFUND"

Responses

Response samples

Content type
application/json
[
  • {
    }
]

GetCurrentBalance

Retrieves current balance and recent transactions for a salon or stylist.

Authorizations:
jwt
query Parameters
salonId
string
stylistSingleSalonId
string

Responses

Response samples

Content type
application/json
{
  • "currentBalance": 0.1,
  • "currentClearedBalance": 0.1,
  • "currentTipBalance": 0.1,
  • "recentTransactions": [
    ]
}

GetRevenue

Retrieves revenue statistics for today, this week, and this month.

Authorizations:
jwt
query Parameters
salonId
string
stylistSingleSalonId
string

Responses

Response samples

Content type
application/json
{
  • "today": 0.1,
  • "thisWeek": 0.1,
  • "thisMonth": 0.1,
  • "todayForecast": 0.1,
  • "thisWeekForecast": 0.1,
  • "thisMonthForecast": 0.1
}

GetRevenueSummary

Retrieves revenue summary for today and yesterday.

Authorizations:
jwt
query Parameters
salonId
string
stylistSingleSalonId
string

Responses

Response samples

Content type
application/json
{
  • "today": {
    },
  • "yesterday": {
    }
}

GetBalanceById

Retrieves balance transaction's data by given id.

Authorizations:
jwt
path Parameters
balanceId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "salonId": "string",
  • "stylistSingleSalonId": "string",
  • "currentBalance": 0.1,
  • "currentClearedBalance": 0.1,
  • "currentTipBalance": 0.1,
  • "amount": 0.1,
  • "type": "CREDIT",
  • "description": "string",
  • "status": "INITIAL",
  • "paymentId": "string",
  • "lastPaymentId": "string",
  • "lastPaymentDate": "2019-08-24T14:15:22Z",
  • "lastProcessedDate": "2019-08-24T14:15:22Z",
  • "stripeTransferId": "string",
  • "stripePayoutId": "string",
  • "isCleared": true,
  • "clearAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Payment

GetPayments

Retrieves payments by filter criteria.

query Parameters
salonId
required
string

Required salon ID to filter payments

stylistSingleSalonId
string

Optional stylist single salon ID to filter

clientId
string

Optional client ID to filter

status
string (PaymentStatus)
Enum: "PENDING" "PROCESSING" "SUCCESS" "REFUNDED" "FAILED"

Optional payment status to filter

search
string

Optional search term

minTotalCost
number <double>

Optional minimum total cost filter

maxTotalCost
number <double>

Optional maximum total cost filter

fromDate
string

Optional start date for filtering (ISO string)

toDate
string

Optional end date for filtering (ISO string)

basketId
string

Optional basket ID to filter

modes
Array of strings (PaymentMode)
Items Enum: "ONLINE" "OFFLINE"

Optional payment modes to filter (multi-select)

providers
Array of strings (PaymentProvider)
Items Enum: "STRIPE" "CASH" "ZELLE" "VENMO" "CHECK" "OTHER"

Optional payment providers to filter (multi-select)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

CheckoutBasket

Process checkout for a basket

Authorizations:
jwt
path Parameters
basketId
required
string

The ID of the basket to checkout

header Parameters
user-id
required
string

The ID of the user performing the checkout

Request Body schema: application/json

The checkout request containing optional amount and tip

amount
number <double>
tip
number <double>
mode
required
string (PaymentMode)
Enum: "ONLINE" "OFFLINE"
provider
required
string (PaymentProvider)
Enum: "STRIPE" "CASH" "ZELLE" "VENMO" "CHECK" "OTHER"
paymentLabel
string
automaticCapture
boolean
sendPaymentLink
boolean
sendTipSelectionLink
boolean

Responses

Request samples

Content type
application/json
{
  • "amount": 0.1,
  • "tip": 0.1,
  • "mode": "ONLINE",
  • "provider": "STRIPE",
  • "paymentLabel": "string",
  • "automaticCapture": true,
  • "sendPaymentLink": true,
  • "sendTipSelectionLink": true
}

Response samples

Content type
application/json
{
  • "tipSelectionUrl": "string",
  • "paymentLinkUrl": "string",
  • "basketResponse": {
    },
  • "paymentResponse": {
    }
}

UpdateTip

Update tip amount for a payment

Authorizations:
jwt
path Parameters
paymentId
required
string

The ID of the payment to update

header Parameters
user-id
required
string

The ID of the user performing the update

Request Body schema: application/json

The tip update request

tip
required
number <double>
capturePayment
boolean

Responses

Request samples

Content type
application/json
{
  • "tip": 0.1,
  • "capturePayment": true
}

Response samples

Content type
application/json
{
  • "depositPaid": true,
  • "childPaymentIds": [
    ],
  • "parentPaymentId": "string",
  • "type": "SINGLE",
  • "paymentLabel": "string",
  • "provider": "STRIPE",
  • "mode": "ONLINE",
  • "salonName": "string",
  • "stylists": [
    ],
  • "stylist": {
    },
  • "client": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "automaticCapture": true,
  • "beautyosFeeFixed": 0.1,
  • "beautyosFeePercentage": 0.1,
  • "convinestFeeFixed": 0.1,
  • "convinestFeePercentage": 0.1,
  • "stripeRefundIds": [
    ],
  • "clientSecret": "string",
  • "stripePaymentIntentId": "string",
  • "salonId": "string",
  • "clientFullName": "string",
  • "clientId": "string",
  • "stylistSingleSalonId": "string",
  • "status": "PENDING",
  • "cardHolderName": "string",
  • "cardExpYear": 0.1,
  • "cardExpMonth": 0.1,
  • "cardLast4": "string",
  • "cardType": "string",
  • "transactionFee": 0.1,
  • "stylistTipCommission": 0.1,
  • "stylistCommission": 0.1,
  • "refundTipAmountStylist": 0.1,
  • "refundTipAmountSalon": 0.1,
  • "refundTipAmount": 0.1,
  • "refundAmountStylist": 0.1,
  • "refundAmountSalon": 0.1,
  • "refundAmount": 0.1,
  • "salonAmount": 0.1,
  • "salonTipAmount": 0.1,
  • "stylistAmount": 0.1,
  • "stylistTipAmount": 0.1,
  • "tipTotalPaid": 0.1,
  • "serviceTotalPaid": 0.1,
  • "netTotalCost": 0.1,
  • "totalCost": 0.1,
  • "tip": 0.1,
  • "amount": 0.1,
  • "id": "string"
}

GeneratePaymentLinkWithTip

Generate a Stripe payment link with the selected tip amount. This endpoint is called from the frontend after the client selects a tip. It updates the payment with the tip and creates a Stripe Checkout Session.

path Parameters
paymentId
required
string

The ID of the payment to generate link for

Request Body schema: application/json

The tip amount selected by the client

tip
required
number <double>

Responses

Request samples

Content type
application/json
{
  • "tip": 0.1
}

Response samples

Content type
application/json
{
  • "paymentResponse": {
    },
  • "paymentLinkUrl": "string"
}

ExportPaymentHistory

Export payment history to Excel and send via email to salon owner. Filters payments by salon and optional date range, status, etc. Generates an Excel report and emails it to the salon owner's email address. Returns immediately after initiating the email send (async).

Authorizations:
jwt
path Parameters
salonId
required
string

Salon ID to filter payments

query Parameters
stylistSingleSalonId
string

Optional stylist single salon ID to filter

clientId
string

Optional client ID to filter

status
string (PaymentStatus)
Enum: "PENDING" "PROCESSING" "SUCCESS" "REFUNDED" "FAILED"

Optional payment status to filter

search
string

Optional search term

minTotalCost
number <double>

Optional minimum total cost filter

maxTotalCost
number <double>

Optional maximum total cost filter

fromDate
string

Optional start date for filtering (ISO string)

toDate
string

Optional end date for filtering (ISO string)

modes
Array of strings (PaymentMode)
Items Enum: "ONLINE" "OFFLINE"

Optional payment modes to filter (multi-select)

providers
Array of strings (PaymentProvider)
Items Enum: "STRIPE" "CASH" "ZELLE" "VENMO" "CHECK" "OTHER"

Optional payment providers to filter (multi-select)

header Parameters
user-id
required
string

The ID of the user requesting the export (must be salon owner)

Responses

Response samples

Content type
application/json
{
  • "email": "string",
  • "message": "string"
}

CheckoutBasketByClient

Process checkout for a basket with client validation

Authorizations:
jwt
path Parameters
basketId
required
string

The ID of the basket to checkout

header Parameters
client-id
required
string

The ID of the client performing the checkout

Request Body schema: application/json

The checkout request containing optional amount and tip

amount
number <double>
tip
number <double>
mode
required
string (PaymentMode)
Enum: "ONLINE" "OFFLINE"
provider
required
string (PaymentProvider)
Enum: "STRIPE" "CASH" "ZELLE" "VENMO" "CHECK" "OTHER"
paymentLabel
string
automaticCapture
boolean
sendPaymentLink
boolean
sendTipSelectionLink
boolean

Responses

Request samples

Content type
application/json
{
  • "amount": 0.1,
  • "tip": 0.1,
  • "mode": "ONLINE",
  • "provider": "STRIPE",
  • "paymentLabel": "string",
  • "automaticCapture": true,
  • "sendPaymentLink": true,
  • "sendTipSelectionLink": true
}

Response samples

Content type
application/json
{
  • "tipSelectionUrl": "string",
  • "paymentLinkUrl": "string",
  • "basketResponse": {
    },
  • "paymentResponse": {
    }
}

UpdateTip

Update tip amount for a payment

Authorizations:
jwt
path Parameters
paymentId
required
string

The ID of the payment to update

header Parameters
client-id
required
string
Request Body schema: application/json

The tip update request

tip
required
number <double>
capturePayment
boolean

Responses

Request samples

Content type
application/json
{
  • "tip": 0.1,
  • "capturePayment": true
}

Response samples

Content type
application/json
{
  • "depositPaid": true,
  • "childPaymentIds": [
    ],
  • "parentPaymentId": "string",
  • "type": "SINGLE",
  • "paymentLabel": "string",
  • "provider": "STRIPE",
  • "mode": "ONLINE",
  • "salonName": "string",
  • "stylists": [
    ],
  • "stylist": {
    },
  • "client": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "automaticCapture": true,
  • "beautyosFeeFixed": 0.1,
  • "beautyosFeePercentage": 0.1,
  • "convinestFeeFixed": 0.1,
  • "convinestFeePercentage": 0.1,
  • "stripeRefundIds": [
    ],
  • "clientSecret": "string",
  • "stripePaymentIntentId": "string",
  • "salonId": "string",
  • "clientFullName": "string",
  • "clientId": "string",
  • "stylistSingleSalonId": "string",
  • "status": "PENDING",
  • "cardHolderName": "string",
  • "cardExpYear": 0.1,
  • "cardExpMonth": 0.1,
  • "cardLast4": "string",
  • "cardType": "string",
  • "transactionFee": 0.1,
  • "stylistTipCommission": 0.1,
  • "stylistCommission": 0.1,
  • "refundTipAmountStylist": 0.1,
  • "refundTipAmountSalon": 0.1,
  • "refundTipAmount": 0.1,
  • "refundAmountStylist": 0.1,
  • "refundAmountSalon": 0.1,
  • "refundAmount": 0.1,
  • "salonAmount": 0.1,
  • "salonTipAmount": 0.1,
  • "stylistAmount": 0.1,
  • "stylistTipAmount": 0.1,
  • "tipTotalPaid": 0.1,
  • "serviceTotalPaid": 0.1,
  • "netTotalCost": 0.1,
  • "totalCost": 0.1,
  • "tip": 0.1,
  • "amount": 0.1,
  • "id": "string"
}

GeneratePaymentLinkWithTipPublic

Generate a Stripe payment link with the selected tip amount (Public endpoint). This endpoint is called from the frontend tip selection page after the client selects a tip. It updates the payment with the tip and creates a Stripe Checkout Session. This is a public endpoint that doesn't require authentication.

path Parameters
paymentId
required
string

The ID of the payment to generate link for

Request Body schema: application/json

The tip amount selected by the client

tip
required
number <double>

Responses

Request samples

Content type
application/json
{
  • "tip": 0.1
}

Response samples

Content type
application/json
{
  • "paymentResponse": {
    },
  • "paymentLinkUrl": "string"
}

GetPaymentById

Retrieves payment's data by given id.

path Parameters
paymentId
required
string

Represents the given id for a payment.

Responses

Response samples

Content type
application/json
{
  • "depositPaid": true,
  • "childPaymentIds": [
    ],
  • "parentPaymentId": "string",
  • "type": "SINGLE",
  • "paymentLabel": "string",
  • "provider": "STRIPE",
  • "mode": "ONLINE",
  • "salonName": "string",
  • "stylists": [
    ],
  • "stylist": {
    },
  • "client": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "automaticCapture": true,
  • "beautyosFeeFixed": 0.1,
  • "beautyosFeePercentage": 0.1,
  • "convinestFeeFixed": 0.1,
  • "convinestFeePercentage": 0.1,
  • "stripeRefundIds": [
    ],
  • "clientSecret": "string",
  • "stripePaymentIntentId": "string",
  • "salonId": "string",
  • "clientFullName": "string",
  • "clientId": "string",
  • "stylistSingleSalonId": "string",
  • "status": "PENDING",
  • "cardHolderName": "string",
  • "cardExpYear": 0.1,
  • "cardExpMonth": 0.1,
  • "cardLast4": "string",
  • "cardType": "string",
  • "transactionFee": 0.1,
  • "stylistTipCommission": 0.1,
  • "stylistCommission": 0.1,
  • "refundTipAmountStylist": 0.1,
  • "refundTipAmountSalon": 0.1,
  • "refundTipAmount": 0.1,
  • "refundAmountStylist": 0.1,
  • "refundAmountSalon": 0.1,
  • "refundAmount": 0.1,
  • "salonAmount": 0.1,
  • "salonTipAmount": 0.1,
  • "stylistAmount": 0.1,
  • "stylistTipAmount": 0.1,
  • "tipTotalPaid": 0.1,
  • "serviceTotalPaid": 0.1,
  • "netTotalCost": 0.1,
  • "totalCost": 0.1,
  • "tip": 0.1,
  • "amount": 0.1,
  • "id": "string"
}

GetSalonRevenuesBulk

Get all-time revenue for multiple salons (bulk operation) Revenue = salonAmountBeforeBeautyFees - refundAmountSalon - refundTipAmountSalon Only counts SUCCESS status and ONLINE mode payments

Request Body schema: application/json

The request body containing salon IDs

salonIds
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "salonIds": [
    ]
}

Response samples

Content type
application/json
[
  • {
    }
]

CreateAccount

Creates a new Stripe account for a salon

Authorizations:
jwt
header Parameters
user-id
required
string
Request Body schema: application/json

The request body containing the salon ID and optional business type

salonId
required
string
businessType
string (StripeBusinessType)
Enum: "individual" "company"

Responses

Request samples

Content type
application/json
{
  • "salonId": "string",
  • "businessType": "individual"
}

Response samples

Content type
application/json
{
  • "url": "string"
}

CreateTerminalConnectionToken

Creates a new Stripe terminal connection token for a salon

Authorizations:
jwt
path Parameters
salonId
required
string

The salon ID

Responses

Response samples

Content type
application/json
{
  • "secret": "string"
}

WebhookConnectedAccount

Webhook for Stripe events Note: This endpoint requires Express to be configured with raw body parsing.

header Parameters
stripe-signature
required
string

Responses

Response samples

Content type
application/json
{
  • "received": true
}

Webhook

Webhook for Stripe events Note: This endpoint requires Express to be configured with raw body parsing.

header Parameters
stripe-signature
required
string

Responses

Response samples

Content type
application/json
{
  • "received": true
}

ListTerminalReaders

Lists all terminal readers for a salon

Authorizations:
jwt
path Parameters
salonId
required
string

The salon ID

Responses

Response samples

Content type
application/json
{
  • "readers": [
    ]
}

DeleteTerminalReader

Deletes a terminal reader

Authorizations:
jwt
path Parameters
salonId
required
string

The salon ID

readerId
required
string

The terminal reader ID

Responses

Response samples

Content type
application/json
"string"

Payments(v0)

CreatePayment

Creates a new payment.

Authorizations:
jwt
header Parameters
user-id
required
string
Request Body schema: application/json

Payment creation request

cost
required
number <double>
salonId
required
string
stylistSingleSalonId
string
clientId
string
tip
required
number <double>
stylistCommission
number <double>
stylistTipCommission
number <double>
automaticCapture
boolean
mode
string (PaymentMode)
Enum: "ONLINE" "OFFLINE"
provider
string (PaymentProvider)
Enum: "STRIPE" "CASH" "ZELLE" "VENMO" "CHECK" "OTHER"
paymentLabel
string

Responses

Request samples

Content type
application/json
{
  • "cost": 0.1,
  • "salonId": "string",
  • "stylistSingleSalonId": "string",
  • "clientId": "string",
  • "tip": 0.1,
  • "stylistCommission": 0.1,
  • "stylistTipCommission": 0.1,
  • "automaticCapture": true,
  • "mode": "ONLINE",
  • "provider": "STRIPE",
  • "paymentLabel": "string"
}

Response samples

Content type
application/json
{
  • "depositPaid": true,
  • "childPaymentIds": [
    ],
  • "parentPaymentId": "string",
  • "type": "SINGLE",
  • "paymentLabel": "string",
  • "provider": "STRIPE",
  • "mode": "ONLINE",
  • "salonName": "string",
  • "stylists": [
    ],
  • "stylist": {
    },
  • "client": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "automaticCapture": true,
  • "beautyosFeeFixed": 0.1,
  • "beautyosFeePercentage": 0.1,
  • "convinestFeeFixed": 0.1,
  • "convinestFeePercentage": 0.1,
  • "stripeRefundIds": [
    ],
  • "clientSecret": "string",
  • "stripePaymentIntentId": "string",
  • "salonId": "string",
  • "clientFullName": "string",
  • "clientId": "string",
  • "stylistSingleSalonId": "string",
  • "status": "PENDING",
  • "cardHolderName": "string",
  • "cardExpYear": 0.1,
  • "cardExpMonth": 0.1,
  • "cardLast4": "string",
  • "cardType": "string",
  • "transactionFee": 0.1,
  • "stylistTipCommission": 0.1,
  • "stylistCommission": 0.1,
  • "refundTipAmountStylist": 0.1,
  • "refundTipAmountSalon": 0.1,
  • "refundTipAmount": 0.1,
  • "refundAmountStylist": 0.1,
  • "refundAmountSalon": 0.1,
  • "refundAmount": 0.1,
  • "salonAmount": 0.1,
  • "salonTipAmount": 0.1,
  • "stylistAmount": 0.1,
  • "stylistTipAmount": 0.1,
  • "tipTotalPaid": 0.1,
  • "serviceTotalPaid": 0.1,
  • "netTotalCost": 0.1,
  • "totalCost": 0.1,
  • "tip": 0.1,
  • "amount": 0.1,
  • "id": "string"
}

GetPayments

Retrieves payment's data by given salon, stylist, client and status.

Authorizations:
jwt
query Parameters
salonId
required
string

Salon ID

stylistSingleSalonId
string

Stylist single salon ID

clientId
string

Client ID

status
string (PaymentStatus)
Enum: "PENDING" "PROCESSING" "SUCCESS" "REFUNDED" "FAILED"

Payment status

search
string

Search term

minTotalCost
number <double>

Minimum total cost filter

maxTotalCost
number <double>

Maximum total cost filter

fromDate
string

Start date for filtering (ISO string)

toDate
string

End date for filtering (ISO string)

basketId
string

Basket ID filter

modes
Array of strings (PaymentMode)
Items Enum: "ONLINE" "OFFLINE"

Payment modes to filter (multi-select)

providers
Array of strings (PaymentProvider)
Items Enum: "STRIPE" "CASH" "ZELLE" "VENMO" "CHECK" "OTHER"

Payment providers to filter (multi-select)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

GetPaymentById

Retrieves payment's data by given id.

Authorizations:
jwt
path Parameters
paymentId
required
string

Payment ID

header Parameters
user-id
required
string

Responses

Response samples

Content type
application/json
{
  • "depositPaid": true,
  • "childPaymentIds": [
    ],
  • "parentPaymentId": "string",
  • "type": "SINGLE",
  • "paymentLabel": "string",
  • "provider": "STRIPE",
  • "mode": "ONLINE",
  • "salonName": "string",
  • "stylists": [
    ],
  • "stylist": {
    },
  • "client": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "automaticCapture": true,
  • "beautyosFeeFixed": 0.1,
  • "beautyosFeePercentage": 0.1,
  • "convinestFeeFixed": 0.1,
  • "convinestFeePercentage": 0.1,
  • "stripeRefundIds": [
    ],
  • "clientSecret": "string",
  • "stripePaymentIntentId": "string",
  • "salonId": "string",
  • "clientFullName": "string",
  • "clientId": "string",
  • "stylistSingleSalonId": "string",
  • "status": "PENDING",
  • "cardHolderName": "string",
  • "cardExpYear": 0.1,
  • "cardExpMonth": 0.1,
  • "cardLast4": "string",
  • "cardType": "string",
  • "transactionFee": 0.1,
  • "stylistTipCommission": 0.1,
  • "stylistCommission": 0.1,
  • "refundTipAmountStylist": 0.1,
  • "refundTipAmountSalon": 0.1,
  • "refundTipAmount": 0.1,
  • "refundAmountStylist": 0.1,
  • "refundAmountSalon": 0.1,
  • "refundAmount": 0.1,
  • "salonAmount": 0.1,
  • "salonTipAmount": 0.1,
  • "stylistAmount": 0.1,
  • "stylistTipAmount": 0.1,
  • "tipTotalPaid": 0.1,
  • "serviceTotalPaid": 0.1,
  • "netTotalCost": 0.1,
  • "totalCost": 0.1,
  • "tip": 0.1,
  • "amount": 0.1,
  • "id": "string"
}

SendReceipt

Sends a receipt PDF to an email address.

Authorizations:
jwt
path Parameters
paymentId
required
string

The payment ID

Request Body schema: application/json

The request containing the PDF and email

pdf
required
string
email
required
string

Responses

Request samples

Content type
application/json
{
  • "pdf": "string",
  • "email": "string"
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "message": "string",
  • "code": "string",
  • "status": 0.1
}

RefundPayment

Refunds a payment by payment ID.

Authorizations:
jwt
path Parameters
paymentId
required
string

Payment ID to refund

header Parameters
user-id
required
string
Request Body schema: application/json

Refund request details

amount
required
number <double>
tipAmount
required
number <double>
reason
string

Responses

Request samples

Content type
application/json
{
  • "amount": 0.1,
  • "tipAmount": 0.1,
  • "reason": "string"
}

Response samples

Content type
application/json
{
  • "depositPaid": true,
  • "childPaymentIds": [
    ],
  • "parentPaymentId": "string",
  • "type": "SINGLE",
  • "paymentLabel": "string",
  • "provider": "STRIPE",
  • "mode": "ONLINE",
  • "salonName": "string",
  • "stylists": [
    ],
  • "stylist": {
    },
  • "client": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "automaticCapture": true,
  • "beautyosFeeFixed": 0.1,
  • "beautyosFeePercentage": 0.1,
  • "convinestFeeFixed": 0.1,
  • "convinestFeePercentage": 0.1,
  • "stripeRefundIds": [
    ],
  • "clientSecret": "string",
  • "stripePaymentIntentId": "string",
  • "salonId": "string",
  • "clientFullName": "string",
  • "clientId": "string",
  • "stylistSingleSalonId": "string",
  • "status": "PENDING",
  • "cardHolderName": "string",
  • "cardExpYear": 0.1,
  • "cardExpMonth": 0.1,
  • "cardLast4": "string",
  • "cardType": "string",
  • "transactionFee": 0.1,
  • "stylistTipCommission": 0.1,
  • "stylistCommission": 0.1,
  • "refundTipAmountStylist": 0.1,
  • "refundTipAmountSalon": 0.1,
  • "refundTipAmount": 0.1,
  • "refundAmountStylist": 0.1,
  • "refundAmountSalon": 0.1,
  • "refundAmount": 0.1,
  • "salonAmount": 0.1,
  • "salonTipAmount": 0.1,
  • "stylistAmount": 0.1,
  • "stylistTipAmount": 0.1,
  • "tipTotalPaid": 0.1,
  • "serviceTotalPaid": 0.1,
  • "netTotalCost": 0.1,
  • "totalCost": 0.1,
  • "tip": 0.1,
  • "amount": 0.1,
  • "id": "string"
}

UpdateTip

Updates the tip amount for a payment and optionally captures it.

Authorizations:
jwt
path Parameters
paymentId
required
string

Payment ID to update

header Parameters
user-id
required
string
Request Body schema: application/json

Update tip request details

tip
required
number <double>
capturePayment
boolean

Responses

Request samples

Content type
application/json
{
  • "tip": 0.1,
  • "capturePayment": true
}

Response samples

Content type
application/json
{
  • "depositPaid": true,
  • "childPaymentIds": [
    ],
  • "parentPaymentId": "string",
  • "type": "SINGLE",
  • "paymentLabel": "string",
  • "provider": "STRIPE",
  • "mode": "ONLINE",
  • "salonName": "string",
  • "stylists": [
    ],
  • "stylist": {
    },
  • "client": {
    },
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "automaticCapture": true,
  • "beautyosFeeFixed": 0.1,
  • "beautyosFeePercentage": 0.1,
  • "convinestFeeFixed": 0.1,
  • "convinestFeePercentage": 0.1,
  • "stripeRefundIds": [
    ],
  • "clientSecret": "string",
  • "stripePaymentIntentId": "string",
  • "salonId": "string",
  • "clientFullName": "string",
  • "clientId": "string",
  • "stylistSingleSalonId": "string",
  • "status": "PENDING",
  • "cardHolderName": "string",
  • "cardExpYear": 0.1,
  • "cardExpMonth": 0.1,
  • "cardLast4": "string",
  • "cardType": "string",
  • "transactionFee": 0.1,
  • "stylistTipCommission": 0.1,
  • "stylistCommission": 0.1,
  • "refundTipAmountStylist": 0.1,
  • "refundTipAmountSalon": 0.1,
  • "refundTipAmount": 0.1,
  • "refundAmountStylist": 0.1,
  • "refundAmountSalon": 0.1,
  • "refundAmount": 0.1,
  • "salonAmount": 0.1,
  • "salonTipAmount": 0.1,
  • "stylistAmount": 0.1,
  • "stylistTipAmount": 0.1,
  • "tipTotalPaid": 0.1,
  • "serviceTotalPaid": 0.1,
  • "netTotalCost": 0.1,
  • "totalCost": 0.1,
  • "tip": 0.1,
  • "amount": 0.1,
  • "id": "string"
}

Subscriptions

CreateSubscriptionCheckout

Create a subscription checkout session for a salon. This endpoint creates a Stripe Checkout Session and returns a URL that the salon owner should be redirected to in order to complete the subscription payment.

Requirements:

  • User must be the owner of the salon
  • Salon must not already be subscribed
  • Salon must have a valid subscriptionAmountCents > 0

Note: Currency is hardcoded to USD and interval is hardcoded to monthly billing.

Authorizations:
jwt
path Parameters
salonId
required
string
  • The ID of the salon to subscribe
header Parameters
user-id
required
string
  • The ID of the user creating the subscription

Responses

Response samples

Content type
application/json
{
  • "sessionId": "string",
  • "checkoutUrl": "string"
}

CancelSubscription

Cancel a salon's subscription. This endpoint cancels the active Stripe subscription for the salon. The webhook will automatically update the salon's isSubscribed status to false.

Requirements:

  • User must be the owner of the salon
  • Salon must have an active subscription
Authorizations:
jwt
path Parameters
salonId
required
string
  • The ID of the salon to cancel subscription for
header Parameters
user-id
required
string
  • The ID of the user canceling the subscription

Responses

Response samples

Content type
application/json
{
  • "cancelledAt": "string",
  • "salonId": "string",
  • "message": "string"
}

GetSubscription

Get subscription details for a salon. This endpoint returns the current subscription status and details for the salon.

Requirements:

  • User must be the owner of the salon
Authorizations:
jwt
path Parameters
salonId
required
string
  • The ID of the salon to get subscription details for
header Parameters
user-id
required
string
  • The ID of the user requesting the subscription details

Responses

Response samples

Content type
application/json
{
  • "subscribedAt": "2019-08-24T14:15:22Z",
  • "isSubscribed": true,
  • "subscriptionAmountCents": 0.1,
  • "subscription": "string"
}