Zoca Sales API
The Sales API from Zoca — 6 operation(s) for sales.
The Sales API from Zoca — 6 operation(s) for sales.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/zoca-sales-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Zoca Platform Sales API
description: 'The Zoca platform API behind the Zoca web app and mobile apps: scheduling, website generation, Google Business Profile, discovery/local SEO, social media, booking enquiries, offers, clients, staff, billing and the Zoca "brain" agent layer.'
version: 3.20.10
contact: {}
x-apievangelist-note: Harvested verbatim from https://api.zoca.ai/swagger.json. The provider ships the default NestJS Swagger metadata (title "API Documentation", empty servers[]); title/description/servers were set by API Evangelist for identification and the unmodified original is preserved at openapi/_original/zoca-platform-swagger.json. Every path, operation, summary, parameter and response is exactly as published.
servers:
- url: https://api.zoca.ai
description: Production
tags:
- name: Sales
paths:
/scheduling/sales/summary:
get:
description: Returns a financial summary including pending payments, cancellation fees, no-show fees, confirmed payments, and total revenue.
operationId: t_value
parameters:
- name: entityId
required: true
in: query
description: Entity ID
schema:
type: string
responses:
'200':
description: Sales summary retrieved successfully
content:
application/json:
schema:
type: object
properties:
pendingPayments:
type: number
description: Sum of amount due on OPEN/PARTIALLY_PAID sales
cancellationFee:
type: number
description: Sum of completed cancellation fee payments
noShowFee:
type: number
description: Sum of completed no-show fee payments
confirmedPayments:
type: number
description: Sum of completed deposit/partial/final payments
totalRevenue:
type: number
description: Sum of all completed payments
'400':
description: Missing or invalid entityId
summary: Get sales summary for an entity
tags:
- Sales
/scheduling/sales/{id}:
get:
description: Retrieves a sale with all associated payments and calculated amounts.
operationId: t_value
parameters:
- name: id
required: true
in: path
description: Sale ID
schema:
type: string
responses:
'200':
description: Sale retrieved successfully
content:
application/json:
schema:
type: object
properties:
id:
type: string
format: uuid
entityId:
type: string
format: uuid
bookingId:
type: string
format: uuid
clientId:
type:
- string
- 'null'
format: uuid
status:
type: string
enum:
- OPEN
- PARTIALLY_PAID
- PAID
- CLOSED
- VOIDED
subtotal:
type: number
description: Subtotal in cents
discountAmount:
type: number
description: Discount amount in cents
taxAmount:
type: number
description: Tax amount in cents
tipAmount:
type: number
description: Tip amount in cents
totalAmount:
type: number
description: Total amount in cents
amountPaid:
type: number
description: Amount paid in cents
amountDue:
type: number
description: Amount due in cents
currency:
type: string
default: USD
payments:
type: array
items:
type: object
description: Associated payments
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
closedAt:
type:
- string
- 'null'
format: date-time
'404':
description: Sale not found
summary: Get sale by ID
tags:
- Sales
/scheduling/sales/booking/{bookingId}:
get:
description: Retrieves the sale associated with a booking (1:1 relationship).
operationId: t_value
parameters:
- name: bookingId
required: true
in: path
description: Booking ID
schema:
type: string
responses:
'200':
description: Sale retrieved successfully
'404':
description: Sale not found for booking
summary: Get sale by booking ID
tags:
- Sales
/scheduling/sales:
get:
description: Retrieves sales with optional filters for status, date range, item/client search, amount ranges, and pagination. Returns total count for pagination UI.
operationId: t_value
parameters:
- name: limit
required: false
in: query
description: Results per page (max 100)
schema:
example: 20
type: number
- name: page
required: false
in: query
description: Page number (starts at 1)
schema:
example: 1
type: number
- name: maxTotal
required: false
in: query
description: Maximum total amount
schema:
type: number
- name: minTotal
required: false
in: query
description: Minimum total amount
schema:
type: number
- name: maxTip
required: false
in: query
description: Maximum tip amount
schema:
type: number
- name: minTip
required: false
in: query
description: Minimum tip amount
schema:
type: number
- name: maxTax
required: false
in: query
description: Maximum tax amount
schema:
type: number
- name: minTax
required: false
in: query
description: Minimum tax amount
schema:
type: number
- name: maxDiscount
required: false
in: query
description: Maximum discount amount
schema:
type: number
- name: minDiscount
required: false
in: query
description: Minimum discount amount
schema:
type: number
- name: maxSubtotal
required: false
in: query
description: Maximum subtotal
schema:
type: number
- name: minSubtotal
required: false
in: query
description: Minimum subtotal
schema:
type: number
- name: dateTo
required: false
in: query
description: Only sales created at or before this ISO instant
schema:
type: string
- name: dateFrom
required: false
in: query
description: Only sales created at or after this ISO instant
schema:
type: string
- name: search
required: false
in: query
description: Free-text match on sold service/product names or the client name
schema:
type: string
- name: status
required: false
in: query
description: Filter by sale status. Comma-separated for a multi-status bucket; omit or pass ALL for no filter.
schema:
enum:
- OPEN
- PARTIALLY_PAID
- PAID
- CANCELLED
- NO_SHOW
- VOIDED
- REFUND_INITIATED
- PARTIALLY_REFUNDED
- REFUNDED
type: string
- name: entityId
required: true
in: query
description: Entity ID
schema:
type: string
responses:
'200':
description: Sales retrieved successfully
content:
application/json:
schema:
type: object
properties:
sales:
type: array
items:
type: object
totalCount:
type: number
description: Total number of sales matching filters
totalPages:
type: number
description: Total number of pages
currentPage:
type: number
description: Current page number
'400':
description: Missing or invalid entityId
summary: List sales for an entity
tags:
- Sales
/scheduling/sales/{saleId}/payments:
get:
description: Retrieves payment history for a sale, including status, method, amounts, and timestamps.
operationId: t_value
parameters:
- name: saleId
required: true
in: path
description: Sale ID
schema:
type: string
responses:
'200':
description: Payments retrieved successfully
content:
application/json:
schema:
type: object
properties:
payments:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
saleId:
type: string
format: uuid
amount:
type: number
description: Payment amount in cents
tipAmount:
type: number
description: Tip amount in cents
paymentMethod:
type: string
enum:
- CASH
- CARD
- CARD_ON_FILE
paymentType:
type: string
enum:
- DEPOSIT
- PARTIAL
- FINAL
- REFUND
status:
type: string
enum:
- PENDING
- PROCESSING
- COMPLETED
- FAILED
- REFUNDED
- PARTIALLY_REFUNDED
stripePaymentIntentId:
type:
- string
- 'null'
cardBrand:
type:
- string
- 'null'
cardLast4:
type:
- string
- 'null'
completedAt:
type:
- string
- 'null'
format: date-time
createdAt:
type: string
format: date-time
'404':
description: Sale not found
summary: Get all payments for a sale
tags:
- Sales
/scheduling/sales/{id}/void:
post:
description: Voids a sale if no payments have been made. Use this for cancellations or mistakes before payment. Cannot void sales with payments.
operationId: t_value
parameters:
- name: id
required: true
in: path
description: Sale ID
schema:
type: string
responses:
'200':
description: Sale voided successfully
content:
application/json:
schema:
type: object
'400':
description: Cannot void sale with payments
'404':
description: Sale not found
summary: Void a sale
tags:
- Sales
components:
securitySchemes:
access-token:
scheme: bearer
bearerFormat: JWT
type: http
name: Authorization
description: Enter JWT token in the format Bearer <token>
in: header