Paystone Webhook Management API
The Webhook Management API from Paystone — 2 operation(s) for webhook management.
The Webhook Management API from Paystone — 2 operation(s) for webhook management.
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/paystone-webhook-management-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: DataCandy Webhook Management API
description: 'REST API for the DataCandy platform. Provides endpoints for managing merchants,
clients, contacts, account types, transactions, webhooks, and portal configuration.
All endpoints require a JWT bearer token unless stated otherwise.'
version: 26.7.1.0-d9107e6
servers:
- url: /
description: ''
security:
- JWT: {}
tags:
- name: Webhook Management
paths:
/webhooks:
get:
operationId: api_webhooks_get_collection
tags:
- Webhook Management
responses:
200:
description: List of webhooks.
content:
application/ld+json:
schema:
type: object
description: Webhook.jsonld-webhook.read collection.
allOf:
- $ref: '#/components/schemas/HydraCollectionBaseSchema'
- type: object
required:
- hydra:member
properties:
hydra:member:
type: array
items:
$ref: '#/components/schemas/Webhook.jsonld-webhook.read'
403:
description: Forbidden — token does not have the required role.
content:
application/json:
schema:
type: object
properties:
code:
type: integer
example: 403
message:
type: string
example: Access Denied.
401:
description: Unauthorized — missing or invalid JWT token.
content:
application/json:
schema:
type: object
properties:
code:
type: integer
example: 401
message:
type: string
example: JWT Token not found
summary: Retrieve all webhooks.
description: Retrieves the collection of Webhook resources.
parameters:
- name: page
in: query
description: The collection page number
required: false
deprecated: false
schema:
type: integer
default: 1
style: form
explode: false
- name: itemsPerPage
in: query
description: The number of items per page
required: false
deprecated: false
schema:
type: integer
default: 30
minimum: 0
maximum: 30
style: form
explode: false
security:
- JWT: {}
post:
operationId: api_webhooks_post
tags:
- Webhook Management
responses:
201:
description: Webhook created successfully.
content:
application/ld+json:
schema:
$ref: '#/components/schemas/Webhook.jsonld'
400:
description: Invalid input
content:
application/ld+json:
schema:
$ref: '#/components/schemas/Error.jsonld'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
application/json:
schema:
$ref: '#/components/schemas/Error'
links: null
422:
description: Validation error — see violations array for field-level details.
content:
application/ld+json:
schema:
$ref: '#/components/schemas/ConstraintViolation.jsonld'
application/problem+json:
schema:
$ref: '#/components/schemas/ConstraintViolation'
application/json:
schema:
$ref: '#/components/schemas/ConstraintViolation'
401:
description: Unauthorized — missing or invalid JWT token.
content:
application/json:
schema:
type: object
properties:
code:
type: integer
example: 401
message:
type: string
example: JWT Token not found
403:
description: Forbidden — token does not have the required role.
content:
application/json:
schema:
type: object
properties:
code:
type: integer
example: 403
message:
type: string
example: Access Denied.
summary: Create a new webhook.
description: Creates a Webhook resource.
parameters: {}
requestBody:
description: The new Webhook resource
content:
application/ld+json:
schema:
$ref: '#/components/schemas/Webhook-webhook.write.item'
required: true
security:
- JWT: {}
/webhooks/{id}:
get:
operationId: api_webhooks_id_get
tags:
- Webhook Management
responses:
200:
description: Webhook retrieved successfully.
content:
application/ld+json:
schema:
$ref: '#/components/schemas/Webhook.jsonld-webhook.read_webhook.read.item'
403:
description: Forbidden — token does not have the required role.
content:
application/json:
schema:
type: object
properties:
code:
type: integer
example: 403
message:
type: string
example: Access Denied.
404:
description: Not found — the requested resource does not exist.
content:
application/ld+json:
schema:
$ref: '#/components/schemas/Error.jsonld'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
application/json:
schema:
$ref: '#/components/schemas/Error'
401:
description: Unauthorized — missing or invalid JWT token.
content:
application/json:
schema:
type: object
properties:
code:
type: integer
example: 401
message:
type: string
example: JWT Token not found
summary: Retrieve a webhook by ID.
description: Retrieves a Webhook resource.
parameters:
- name: id
in: path
description: Numeric webhook ID.
required: true
deprecated: false
schema:
type: integer
style: simple
explode: false
example: 1
security:
- JWT: {}
put:
operationId: api_webhooks_id_put
tags:
- Webhook Management
responses:
200:
description: Webhook replaced successfully.
content:
application/ld+json:
schema:
$ref: '#/components/schemas/Webhook.jsonld'
400:
description: Invalid input
content:
application/ld+json:
schema:
$ref: '#/components/schemas/Error.jsonld'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
application/json:
schema:
$ref: '#/components/schemas/Error'
links: null
422:
description: Validation error — see violations array for field-level details.
content:
application/ld+json:
schema:
$ref: '#/components/schemas/ConstraintViolation.jsonld'
application/problem+json:
schema:
$ref: '#/components/schemas/ConstraintViolation'
application/json:
schema:
$ref: '#/components/schemas/ConstraintViolation'
404:
description: Not found — the requested resource does not exist.
content:
application/ld+json:
schema:
$ref: '#/components/schemas/Error.jsonld'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
application/json:
schema:
$ref: '#/components/schemas/Error'
401:
description: Unauthorized — missing or invalid JWT token.
content:
application/json:
schema:
type: object
properties:
code:
type: integer
example: 401
message:
type: string
example: JWT Token not found
403:
description: Forbidden — token does not have the required role.
content:
application/json:
schema:
type: object
properties:
code:
type: integer
example: 403
message:
type: string
example: Access Denied.
summary: Replace an existing webhook.
description: Replaces the Webhook resource.
parameters:
- name: id
in: path
description: Numeric webhook ID.
required: true
deprecated: false
schema:
type: integer
style: simple
explode: false
example: 1
requestBody:
description: The updated Webhook resource
content:
application/ld+json:
schema:
$ref: '#/components/schemas/Webhook-webhook.write.item'
required: true
security:
- JWT: {}
patch:
operationId: api_webhooks_id_patch
tags:
- Webhook Management
responses:
200:
description: Webhook updated successfully.
content:
application/ld+json:
schema:
$ref: '#/components/schemas/Webhook.jsonld'
400:
description: Invalid input
content:
application/ld+json:
schema:
$ref: '#/components/schemas/Error.jsonld'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
application/json:
schema:
$ref: '#/components/schemas/Error'
links: null
422:
description: Validation error — see violations array for field-level details.
content:
application/ld+json:
schema:
$ref: '#/components/schemas/ConstraintViolation.jsonld'
application/problem+json:
schema:
$ref: '#/components/schemas/ConstraintViolation'
application/json:
schema:
$ref: '#/components/schemas/ConstraintViolation'
404:
description: Not found — the requested resource does not exist.
content:
application/ld+json:
schema:
$ref: '#/components/schemas/Error.jsonld'
application/problem+json:
schema:
$ref: '#/components/schemas/Error'
application/json:
schema:
$ref: '#/components/schemas/Error'
401:
description: Unauthorized — missing or invalid JWT token.
content:
application/json:
schema:
type: object
properties:
code:
type: integer
example: 401
message:
type: string
example: JWT Token not found
403:
description: Forbidden — token does not have the required role.
content:
application/json:
schema:
type: object
properties:
code:
type: integer
example: 403
message:
type: string
example: Access Denied.
summary: Update an existing webhook.
description: Updates the Webhook resource.
parameters:
- name: id
in: path
description: Numeric webhook ID.
required: true
deprecated: false
schema:
type: integer
style: simple
explode: false
example: 1
requestBody:
description: The updated Webhook resource
content:
application/merge-patch+json:
schema:
$ref: '#/components/schemas/Webhook-webhook.write.item.jsonMergePatch'
required: true
security:
- JWT: {}
components:
schemas:
Error:
type: object
description: A representation of common errors.
properties:
title:
readOnly: true
description: A short, human-readable summary of the problem.
type:
- string
- 'null'
detail:
readOnly: true
description: A human-readable explanation specific to this occurrence of the problem.
type:
- string
- 'null'
status:
type:
- number
- 'null'
examples:
- 404
default: 400
instance:
readOnly: true
description: A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
type:
- string
- 'null'
type:
readOnly: true
description: A URI reference that identifies the problem type
type: string
AccessGroup.jsonld:
type: object
properties:
id:
readOnly: true
type: integer
name:
type: string
banners:
type: array
items:
$ref: '#/components/schemas/Banner.jsonld'
merchants:
type: array
items:
$ref: '#/components/schemas/Client.Merchant.jsonld'
creationDate:
type: string
format: date-time
modificationDate:
type: string
format: date-time
properties:
writeOnly: true
type: array
items:
type:
- string
- 'null'
propertyValue:
writeOnly: true
validationName:
readOnly: true
entityTranslationPrefix:
readOnly: true
type: string
entitySearchValue:
readOnly: true
type: string
dbTranslationKey:
readOnly: true
translationKeyPrefix:
readOnly: true
type:
- string
- 'null'
required:
- creationDate
- modificationDate
Event.jsonld:
type: object
properties:
id:
readOnly: true
type: integer
webhook:
type: string
format: iri-reference
example: https://example.com/
creationDate:
type: string
format: date-time
modificationDate:
type: string
format: date-time
type:
readOnly: true
type: string
enum:
- contact
- transaction
event:
anyOf:
- type: string
enum:
- created
- modified
- unsubscribed
- anonymized
- type: string
enum:
- loyalty.accumulation
- loyalty.add
- loyalty.complete_cancel
- loyalty.item_cancel
- loyalty.partial_cancel
- loyalty.redeem
- loyalty.subtract
- loyalty.balance_import
- loyalty.reward_earned
- loyalty.reward_redeem
- loyalty.reward_expired
- prepaid.complete_cancel
- prepaid.partial_cancel
- prepaid.balance_import
- prepaid.subtract
- prepaid.card_empty
- prepaid.redeem
- prepaid.redeem_unlock
- prepaid.add
- prepaid.activation
- prepaid.increment
- prepaid.credit_note_activation
- prepaid.credit_note_increment
Event.jsonld-webhook.read_webhook.read.item:
type: object
Webhook-webhook.write.item.jsonMergePatch:
type: object
description: 'Webhooks let you subscribe to certain events and be notified '
properties:
name:
minLength: 2
type: string
active:
default: true
type: boolean
callbackUrl:
format: uri
externalDocs:
url: https://schema.org/url
type: string
secretToken:
type:
- string
- 'null'
events:
type: array
items:
$ref: '#/components/schemas/Event-webhook.write.item'
merchants:
type: array
items:
$ref: '#/components/schemas/Client.Merchant-webhook.write.item'
HydraCollectionBaseSchemaNoPagination:
type: object
properties:
hydra:totalItems:
type: integer
minimum: 0
hydra:search:
type: object
properties:
'@type':
type: string
hydra:template:
type: string
hydra:variableRepresentation:
type: string
hydra:mapping:
type: array
items:
type: object
properties:
'@type':
type: string
variable:
type: string
property:
type:
- string
- 'null'
required:
type: boolean
Client.Merchant.jsonld:
type: object
properties:
parentMerchant:
anyOf:
- $ref: '#/components/schemas/Client.Merchant.jsonld'
- type: 'null'
name:
maxLength: 128
type:
- string
- 'null'
storeNumber:
maxLength: 20
type:
- string
- 'null'
lang:
type: string
active:
default: y
type: string
compensation:
default: y
type: string
chargeAdministrativeFees:
type: boolean
isSalesLocation:
type: boolean
institutionNumber:
maxLength: 10
type:
- string
- 'null'
companyName:
maxLength: 80
type:
- string
- 'null'
accountNumber:
maxLength: 15
type:
- string
- 'null'
transitNumber:
maxLength: 10
type:
- string
- 'null'
email:
maxLength: 45
format: email
externalDocs:
url: https://schema.org/email
type:
- string
- 'null'
address:
maxLength: 255
type:
- string
- 'null'
address2:
maxLength: 255
type:
- string
- 'null'
city:
maxLength: 255
type:
- string
- 'null'
phone:
maxLength: 40
type:
- string
- 'null'
fax:
maxLength: 30
type:
- string
- 'null'
postalCode:
maxLength: 255
type:
- string
- 'null'
countryId:
minLength: 2
maxLength: 2
type:
- string
- 'null'
regionId:
minLength: 2
maxLength: 2
type:
- string
- 'null'
trxDollarToPointNumerator:
minimum: 0
maximum: 100
default: 0
type: integer
trxDollarToPointDenominator:
minimum: 0
maximum: 100
default: 0
type: integer
trxPointToDollarNumerator:
minimum: 0
maximum: 100
default: 0
type: integer
trxPointToDollarDenominator:
minimum: 0
maximum: 100
default: 0
type: integer
timezone:
maxLength: 30
type: string
externalReferenceId:
maxLength: 20
type:
- string
- 'null'
useShift:
default: y
type: string
contactName:
maxLength: 255
type:
- string
- 'null'
lastTerminalInitDate:
externalDocs:
url: https://schema.org/DateTime
type:
- string
- 'null'
format: date-time
geomPoint:
anyOf:
- $ref: '#/components/schemas/GeomPoint.jsonld'
- type: 'null'
banner:
anyOf:
- $ref: '#/components/schemas/Banner.jsonld'
- type: 'null'
paymentTerminalAcquirerId:
type:
- integer
- 'null'
posManufacturerId:
type:
- integer
- 'null'
type:
type: string
merchantSubcategories:
type: array
items:
$ref: '#/components/schemas/MerchantSubcategory.jsonld'
caaLocationCode:
anyOf:
- $ref: '#/components/schemas/CaaLocationcode.jsonld'
- type: 'null'
creationDate:
externalDocs:
url: https://schema.org/DateTime
type: string
format: date-time
modificationDate:
externalDocs:
url: https://schema.org/DateTime
accessGroups:
type: array
items:
$ref: '#/components/schemas/AccessGroup.jsonld'
redacted:
default: false
type: boolean
id:
type: integer
hashedPassword: null
clearPassword:
writeOnly: true
type: string
systemLogableId:
readOnly: true
type: string
systemLogableType:
readOnly: true
properties:
writeOnly: true
type: array
items:
type:
- string
- 'null'
propertyValue:
writeOnly: true
validationName:
readOnly: true
entityTranslationPrefix:
readOnly: true
type: string
entitySearchValue:
readOnly: true
type: string
dbTranslationKey:
readOnly: true
translationKeyPrefix:
readOnly: true
type:
- string
- 'null'
required:
- name
- storeNumber
- lang
- active
- compensation
- chargeAdministrativeFees
- isSalesLocation
- useShift
- creationDate
- modificationDate
Client.Merchant.jsonld-webhook.read_webhook.read.item:
type: object
BannerTranslation.jsonld:
type: object
properties:
id:
readOnly: true
type: integer
name:
type: string
websiteUrl:
format: uri
externalDocs:
url: https://schema.org/url
type: string
customerServiceEmail:
format: email
externalDocs:
url: https://schema.org/email
type:
- string
- 'null'
customerServicePhoneNumber:
type:
- string
- 'null'
imageId:
type:
- integer
- 'null'
translatable:
anyOf:
- $ref: '#/components/schemas/Banner.jsonld'
- type: 'null'
locale:
maxLength: 2
type: string
translatableEntityClass:
readOnly: true
empty:
readOnly: true
type: boolean
properties:
writeOnly: true
type: array
items:
type:
- string
- 'null'
propertyValue:
writeOnly: true
validationName:
readOnly: true
entityTranslationPrefix:
readOnly: true
type: string
entitySearchValue:
readOnly: true
type: string
dbTranslationKey:
readOnly: true
translationKeyPrefix:
readOnly: true
type:
- string
- 'null'
required:
- locale
HydraItemBaseSchema:
type: object
properties:
'@context':
oneOf:
- type: string
- type: object
properties:
'@vocab':
type: string
hydra:
type: string
enum:
- http://www.w3.org/ns/hydra/core#
required:
- '@vocab'
- hydra
additionalProperties: true
'@id':
type: string
'@type':
type: string
required:
- '@id'
- '@type'
MerchantCategory.jsonld:
type: object
properties:
exclusive:
default: '1'
type: boolean
creationDate:
type: string
format: date-time
modificationDate:
type: string
format: date-time
id:
readOnly: true
properties:
writeOnly: true
type: array
items:
type:
- string
- 'null'
propertyValue:
writeOnly: true
validationName:
readOnly: true
entityTranslationPrefix:
readOnly: true
type: string
entitySearchValue:
readOnly: true
type: string
dbTranslationKey:
readOnly: true
translationKeyPrefix:
readOnly: true
type:
- string
- 'null'
HydraCollectionBaseSchema:
allOf:
- $ref: '#/components/schemas/HydraCollectionBaseSchemaNoPagination'
- type: object
properties:
hydra:view:
type: object
properties:
'@id':
type: string
format: iri-reference
'@type':
type: string
hydra:first:
type: string
format: iri-reference
hydra:last:
type: string
format: iri-reference
hydra:previous:
type: string
format: iri-reference
hydra:next:
type: string
format: iri-reference
example:
'@id': string
'@type': string
hydra:first: string
hydra:last: string
hydra:previous: string
hydra:next: string
Collection.jsonld:
type: object
properties:
empty:
readOnly: true
keys:
readOnly: true
values:
readOnly: true
iterator:
readOnly: true
ConstraintViolation:
type: object
description: Unprocessable entity
properties:
status:
default: 422
type: integer
violations:
type: array
items:
type: object
properties:
propertyPath:
type: string
description: The property path of the violation
message:
type: string
description: The message associated with the violation
code:
type: string
description: The code of the violation
hint:
type: string
description: An extra hint to understand the violation
payload:
type: object
additionalProperties: true
description: The serialized payload of the violation
required:
- propertyPath
- message
detail:
readOnly: true
type: string
type:
readOnly: true
type: string
title:
readOnly: true
type:
- string
- 'null'
instance:
readOnly: true
type:
- string
- 'null'
MerchantSubcategory.jsonld:
type: object
properties:
externalReference:
type:
- string
- 'null'
creationDate:
type: string
format: date-time
modificationDate:
type: string
format: date-time
merchantCategory:
anyOf:
- $ref: '#/components/schemas/MerchantCategory.jsonld'
- type: 'null'
merchants:
type: array
items:
$ref: '#/components/schemas/Client.Merchant.jsonld'
id:
readOnly: true
properties:
writeOnly: true
type: array
items:
type:
- string
- 'null'
propertyValue:
writeOnly: true
validationName:
readOnly: true
entityTranslationPrefix:
readOnly: true
type: string
entitySearchValue:
readOnly: true
type: string
dbTranslationKey:
readOnly: true
translationKeyPrefix:
readOnly: true
type:
- string
- 'null'
Client.Merchant-webhook.write.item:
type: object
Event.jsonld-webhook.read:
type: object
CaaLocationcode.jsonld:
type: object
properties:
caaLocationcodeId:
readOnly: true
type: string
merchant:
$ref: '#/components/schemas/Client.Merchant.jsonld'
id:
readOnly: true
properties:
writeOnly: true
type: array
items:
type:
- string
- 'null'
propertyValue:
writeOnly: true
validationName:
readOnly: true
entityTranslationPrefix:
readOnly: true
type: string
entitySearchValue:
readOnly: true
type: string
dbTranslationKey:
readOnly: true
translationKeyPrefix:
readOnly: true
type:
- string
- 'null'
Webhook.jsonld:
allOf:
- $ref: '#/components/schemas/HydraItemBaseSchema'
- type: object
properties:
id:
readOnly: true
type: integer
name:
minLength: 2
type: string
active:
default: true
type: boolean
callbackUrl:
format: uri
externalDocs:
url: https://schema.org/url
type: string
secretToken:
type:
- string
- 'null'
events:
type: array
items:
$ref: '#/components/schemas/Event.jsonld'
merchants:
type: array
items:
$ref: '#/components/schemas/Client.Merchant.jsonld'
creationDate:
type: string
format: date-time
modificationDate:
type: string
format: date-time
required:
- name
- callbackUrl
description: 'Webhooks let you subscribe to certain events and be notified '
Banner.jsonld:
type: object
properties:
id:
readOnly: true
type: integer
externalReference:
type:
- string
- 'null'
creationDate:
type:
- str
# --- truncated at 32 KB (40 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/paystone/refs/heads/main/openapi/paystone-webhook-management-api-openapi.yml