openapi: 3.1.0 info: title: DataCandy 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: '' paths: /v1/clients/{accessKey}/portals/balance: get: operationId: api_v1clients_accessKeyportalsbalance_get_collection tags: - Balance Portal responses: 200: description: List of balance portal configurations. content: application/ld+json: schema: type: object description: BalancePortal.jsonld-balance_portal.read collection. allOf: - $ref: '#/components/schemas/HydraCollectionBaseSchema' - type: object required: - hydra:member properties: hydra:member: type: array items: $ref: '#/components/schemas/BalancePortal.jsonld-balance_portal.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 balance portal configurations for a client. description: Retrieves the collection of BalancePortal resources. parameters: - name: accessKey in: path description: Unique access key identifying the client. required: true deprecated: false schema: type: string style: simple explode: false example: abc123def456 security: - JWT: {} /v1/clients: get: operationId: api_v1clients_get_collection tags: - Client Management responses: 200: description: List of clients. content: application/ld+json: schema: type: object description: Client.jsonld-client.read collection. allOf: - $ref: '#/components/schemas/HydraCollectionBaseSchema' - type: object required: - hydra:member properties: hydra:member: type: array items: $ref: '#/components/schemas/Client.jsonld-client.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 clients in the portfolio. description: Retrieves the collection of Client 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_v1clients_post tags: - Client Management responses: 201: description: Client created successfully. content: application/ld+json: schema: $ref: '#/components/schemas/Client.jsonld-client.read' 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' 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: Create a new client. description: "Creates a new client and provisions its database, account types, and product packages.\ \ \n**Required fields:** `name`, `hostname`, `country`, `timeZone`, `currency`, `languages`,\ \ `programs`, `companyInfo` \n**For loyalty clients:** also requires `accumulationRatioNumerator`,\ \ `accumulationRatioDenominator`, `debitRatioNumerator`, `debitRatioDenominator` \n**For Moneris\ \ portfolios:** also requires `configureEgift`, `configureEloyalty`, `configureMemberPortal`,\ \ `giftCardsRestrictedWhereActivated`, `enableSboEmailAndSms`" parameters: {} requestBody: description: The new Client resource content: application/ld+json: schema: $ref: '#/components/schemas/Client-client.write' required: true security: - JWT: {} /v1/clients/{id}: get: operationId: api_v1clients_id_get tags: - Client Management responses: 200: description: Client retrieved successfully. content: application/ld+json: schema: $ref: '#/components/schemas/Client.jsonld-client.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. 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 client by ID. description: Retrieves a Client resource. parameters: - name: id in: path description: Numeric client ID. required: true deprecated: false schema: type: integer style: simple explode: false example: 42 security: - JWT: {} patch: operationId: api_v1clients_id_patch tags: - Client Management responses: 200: description: Client updated successfully. content: application/ld+json: schema: $ref: '#/components/schemas/Client.jsonld-client.read' 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' 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: Update an existing client. description: Updates the Client resource. parameters: - name: id in: path description: Numeric client ID. required: true deprecated: false schema: type: integer style: simple explode: false example: 42 requestBody: description: The updated Client resource content: application/merge-patch+json: schema: $ref: '#/components/schemas/Client-client.patch.jsonMergePatch' required: true security: - JWT: {} /v1/clients/{id}/complete: post: operationId: api_v1clients_idcomplete_post tags: - Client Management responses: 201: description: Client resource created content: application/ld+json: schema: $ref: '#/components/schemas/Client.jsonld-client.complete.read' links: null 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' 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. 200: description: Client onboarding completed. 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 404: description: Not found — the requested resource does not exist. summary: Complete client onboarding. description: 'Marks onboarding as complete and records the `completedOn` timestamp. After this call the client is active and ready to process transactions.' parameters: - name: id in: path description: Numeric client ID. required: true deprecated: false schema: type: integer style: simple explode: false example: 42 requestBody: description: The new Client resource content: application/ld+json: schema: $ref: '#/components/schemas/Client-client.complete' required: true security: - JWT: {} /contacts: get: operationId: api_contacts_get_collection tags: - Contact responses: 200: description: List of contacts. content: application/ld+json: schema: type: object description: Contact.jsonld-contact.read collection. allOf: - $ref: '#/components/schemas/HydraCollectionBaseSchema' - type: object required: - hydra:member properties: hydra:member: type: array items: $ref: '#/components/schemas/Contact.jsonld-contact.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 contacts. description: Retrieves the collection of Contact 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 - name: isActive in: query description: Contact isActive required: false deprecated: false schema: type: string style: form explode: false security: - JWT: {} /contacts/{id}: get: operationId: api_contacts_id_get tags: - Contact responses: 200: description: Contact retrieved successfully. content: application/ld+json: schema: $ref: '#/components/schemas/Contact.jsonld-contact.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. 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 contact by ID. description: Retrieves a Contact resource. parameters: - name: id in: path description: Numeric contact ID. required: true deprecated: false schema: type: integer style: simple explode: false example: 1 security: - JWT: {} /v1/clients/{accessKey}/account-types/gift: get: operationId: api_v1clients_accessKeyaccount-typesgift_get_collection tags: - Gift Account Type responses: 200: description: List of gift account types. content: application/ld+json: schema: type: object description: GiftAccountType.jsonld-account-type.read collection. allOf: - $ref: '#/components/schemas/HydraCollectionBaseSchema' - type: object required: - hydra:member properties: hydra:member: type: array items: $ref: '#/components/schemas/GiftAccountType.jsonld-account-type.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 gift account types for a client. description: Retrieves the collection of GiftAccountType resources. parameters: - name: accessKey in: path description: Unique access key identifying the client. required: true deprecated: false schema: type: string style: simple explode: false example: abc123def456 security: - JWT: {} /v1/clients/{accessKey}/account-types/gift/{id}: get: operationId: api_v1clients_accessKeyaccount-typesgift_id_get tags: - Gift Account Type responses: 200: description: Gift account type retrieved successfully. content: application/ld+json: schema: $ref: '#/components/schemas/GiftAccountType.jsonld-account-type.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. 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 gift account type by ID. description: Retrieves a GiftAccountType resource. parameters: - name: accessKey in: path description: Unique access key identifying the client. required: true deprecated: false schema: type: string style: simple explode: false example: abc123def456 - name: id in: path description: Numeric account type ID. required: true deprecated: false schema: type: integer style: simple explode: false example: 1 security: - JWT: {} /items/{id}: get: operationId: api_items_id_get tags: - Item responses: 200: description: Item retrieved successfully. content: application/ld+json: schema: $ref: '#/components/schemas/Item.jsonld' 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 an item by ID. description: Retrieves a Item resource. parameters: - name: id in: path description: Numeric item ID. required: true deprecated: false schema: type: integer style: simple explode: false example: 1 security: - JWT: {} /v1/clients/{accessKey}/account-types/loyalty: get: operationId: api_v1clients_accessKeyaccount-typesloyalty_get_collection tags: - Loyalty Account Type responses: 200: description: List of loyalty account types. content: application/ld+json: schema: type: object description: LoyaltyAccountType.jsonld-account-type.read collection. allOf: - $ref: '#/components/schemas/HydraCollectionBaseSchema' - type: object required: - hydra:member properties: hydra:member: type: array items: $ref: '#/components/schemas/LoyaltyAccountType.jsonld-account-type.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 loyalty account types for a client. description: Retrieves the collection of LoyaltyAccountType resources. parameters: - name: accessKey in: path description: Unique access key identifying the client. required: true deprecated: false schema: type: string style: simple explode: false example: abc123def456 security: - JWT: {} /v1/clients/{accessKey}/account-types/loyalty/{id}: get: operationId: api_v1clients_accessKeyaccount-typesloyalty_id_get tags: - Loyalty Account Type responses: 200: description: Loyalty account type retrieved successfully. content: application/ld+json: schema: $ref: '#/components/schemas/LoyaltyAccountType.jsonld-account-type.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. 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 loyalty account type by ID. description: Retrieves a LoyaltyAccountType resource. parameters: - name: accessKey in: path description: Unique access key identifying the client. required: true deprecated: false schema: type: string style: simple explode: false example: abc123def456 - name: id in: path description: Numeric account type ID. required: true deprecated: false schema: type: integer style: simple explode: false example: 1 security: - JWT: {} /loyalty-transactions: get: operationId: api_loyalty-transactions_get_collection tags: - Loyalty Transaction responses: 200: description: List of loyalty transactions. content: application/ld+json: schema: type: object description: LoyaltyTransaction.jsonld-transaction.read collection. allOf: - $ref: '#/components/schemas/HydraCollectionBaseSchema' - type: object required: - hydra:member properties: hydra:member: type: array items: $ref: '#/components/schemas/LoyaltyTransaction.jsonld-transaction.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 loyalty transactions. description: Retrieves the collection of LoyaltyTransaction 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 - name: creationDate[before] in: query description: '' required: false deprecated: false schema: type: string style: form explode: false - name: creationDate[strictly_before] in: query description: '' required: false deprecated: false schema: type: string style: form explode: false - name: creationDate[after] in: query description: '' required: false deprecated: false schema: type: string style: form explode: false - name: creationDate[strictly_after] in: query description: '' required: false deprecated: false schema: type: string style: form explode: false - name: merchant in: query description: '' required: false deprecated: false schema: type: string style: form explode: false - name: merchant[] in: query description: '' required: false deprecated: false schema: type: array items: type: string style: form explode: true - name: errorCode in: query description: '' required: false deprecated: false schema: type: integer style: form explode: false - name: errorCode[] in: query description: '' required: false deprecated: false schema: type: array items: type: integer style: form explode: true - name: commitStatus in: query description: '' required: false deprecated: false allowEmptyValue: true schema: type: string enum: - committed - not_committed style: form explode: false allowReserved: false - name: operation in: query description: '' required: false deprecated: false allowEmptyValue: true schema: type: string enum: - accumulation - activation - add - associate_profile - balance - balance_import - balance_transfer - cancel_discount_per_unit_redemption - card_detail_info - card_empty - card_info - commit - complete_cancel - create_profile - credit_note_activation - credit_note_increment - daily_details_employee - daily_summary_employee - daily_summary_merchant - discount_per_unit_balance - discount_per_unit_lock - discount_per_unit_redeem - discount_per_unit_unlock - discount_promotion_available - get_association - increment - item_cancel - lock - lock_modification - merchant_info - non_member_acc_info - partial_cancel - pil_enrollment - pil_payment - point_expiry - profile_info - profile_set_association - punch_add - punch_remove - redeem - redeem_unlock - reward_add - reward_detail_info - reward_earned - reward_expired - reward_redeem - reward_remove - subtract style: form explode: false allowReserved: false security: - JWT: {} /loyalty-transactions/{id}: get: operationId: api_loyalty-transactions_id_get tags: - Loyalty Transaction responses: 200: description: Loyalty transaction retrieved successfully. content: application/ld+json: schema: $ref: '#/components/schemas/LoyaltyTransaction.jsonld-transaction.read_transaction.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 loyalty transaction by ID. description: Retrieves a LoyaltyTransaction resource. parameters: - name: id in: path description: Numeric transaction ID. required: true deprecated: false schema: type: integer style: simple explode: false example: 123 security: - JWT: {} /v1/clients/{accessKey}/portals/member: get: operationId: api_v1clients_accessKeyportalsmember_get_collection tags: - Member Portal responses: 200: description: List of member portal configurations. content: application/ld+json: schema: type: object description: MemberPortal.jsonld-member_portal.read collection. allOf: - $ref: '#/components/schemas/HydraCollectionBaseSchema' - type: object required: - hydra:member properties: hydra:member: type: array items: $ref: '#/components/schemas/MemberPortal.jsonld-member_portal.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 member portal configurations for a client. description: Retrieves the collection of MemberPortal resources. parameters: - name: accessKey in: path description: Unique access key identifying the client. required: true deprecated: false schema: type: string style: simple explode: false example: abc123def456 security: - JWT: {} /merchants: get: operationId: api_merchants_get_collection tags: - Merchant Management responses: 200: description: List of merchants. content: application/ld+json: schema: type: object description: Merchant.jsonld-merchant.read collection. allOf: - $ref: '#/components/schemas/HydraCollectionBaseSchema' - type: object required: - hydra:member properties: hydra:member: type: array items: $ref: '#/components/schemas/Merchant.jsonld-merchant.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 merchants. description: Retrieves the collection of Merchant 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 - name: type in: query description: '' required: false deprecated: false schema: type: string style: form explode: false - name: type[] in: query description: '' required: false deprecated: false schema: type: array items: type: string style: form explode: true - name: isActive in: query description: Merchant isActive required: false deprecated: false schema: type: string style: form explode: false security: - JWT: {} /merchants/{id}: get: operationId: api_merchants_id_get tags: - Merchant Management responses: 200: description: Merchant retrieved successfully. content: application/ld+json: schema: $ref: '#/components/schemas/Merchant.jsonld-merchant.read_merchant.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 merchant by ID. description: Retrieves a Merchant resource. parameters: - name: id in: path description: Numeric merchant ID. required: true deprecated: false schema: type: integer style: simple explode: false example: 42 security: - JWT: {} /v1/clients/{accessKey}/merchants: get: operationId: api_v1clients_accessKeymerchants_get_collection tags: - Merchant Management responses: 200: description: List of merchants. content: application/ld+json: schema: type: object description: Merchant.jsonld-merchant.read collection. allOf: - $ref: '#/components/schemas/HydraCollectionBaseSchema' - type: object required: - hydra:member properties: hydra:member: type: array items: $ref: '#/components/schemas/Merchant.jsonld-merchant.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 merchants for a client. description: Retrieves the collection of Merchant resources. parameters: - name: accessKey in: path description: Unique access key identifying the client. required: true deprecated: false schema: type: string style: simple explode: false example: abc123def456 security: - JWT: {} post: operationId: api_v1clients_accessKeymerchants_post tags: - Merchant Management responses: 201: description: Merchant created successfully. content: application/ld+json: schema: $ref: '#/components/schemas/Merchant.jsonld-merchant.write' 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' 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: Create a new merchant. description: Creates a Merchant resource. parameters: - name: accessKey in: path description: Unique access key identifying the client. required: true deprecated: false schema: type: string style: simple explode: false example: abc123def456 requestBody: description: The new Merchant resource content: application/ld+json: schema: $ref: '#/components/schemas/Merchant-merchant.write' required: true security: - JWT: {} /v1/clients/{accessKey}/merchants/by-external-reference/{externalReference}: get: operationId: api_v1clients_accessKeymerchantsby-external-reference_externalReference_get tags: - Merchant Management responses: 200: description: Merchant retrieved successfully. content: application/ld+json: schema: $ref: '#/components/schemas/Merchant.jsonld-merchant.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. 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 merchant by external reference. description: Retrieves a Merchant resource. parameters: - name: accessKey in: path description: Unique access key identifying the client. required: true deprecated: false schema: type: string style: simple explode: false example: abc123def456 - name: externalReference in: path description: Merchant external reference ID. required: true deprecated: false schema: type: string style: simple explode: false example: EXT-001 security: - JWT: {} patch: operationId: api_v1clients_accessKeymerchantsby-external-reference_externalReference_patch tags: - Merchant Management responses: 200: description: Merchant updated successfully. content: application/ld+json: schema: $ref: '#/components/schemas/Merchant.jsonld-merchant.read' 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' 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: Update a merchant by external reference. description: Updates the Merchant resource. parameters: - name: accessKey in: path description: Unique access key identifying the client. required: true deprecated: false schema: type: string style: simple explode: false example: abc123def456 - name: externalReference in: path description: Merchant external reference ID. required: true deprecated: false schema: type: string style: simple explode: false example: EXT-001 requestBody: description: The updated Merchant resource content: application/merge-patch+json: schema: $ref: '#/components/schemas/Merchant-merchant.patch.jsonMergePatch' required: true security: - JWT: {} /v1/clients/{accessKey}/merchants/{id}: get: operationId: api_v1clients_accessKeymerchants_id_get tags: - Merchant Management responses: 200: description: Merchant retrieved successfully. content: application/ld+json: schema: $ref: '#/components/schemas/Merchant.jsonld-merchant.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. 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 merchant by ID. description: Retrieves a Merchant resource. parameters: - name: accessKey in: path description: Unique access key identifying the client. required: true deprecated: false schema: type: string style: simple explode: false example: abc123def456 - name: id in: path description: Numeric merchant ID. required: true deprecated: false schema: type: integer style: simple explode: false example: 42 security: - JWT: {} patch: operationId: api_v1clients_accessKeymerchants_id_patch tags: - Merchant Management responses: 200: description: Merchant updated successfully. content: application/ld+json: schema: $ref: '#/components/schemas/Merchant.jsonld-merchant.read' 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' 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: Update an existing merchant. description: Updates the Merchant resource. parameters: - name: accessKey in: path description: Unique access key identifying the client. required: true deprecated: false schema: type: string style: simple explode: false example: abc123def456 - name: id in: path description: Numeric merchant ID. required: true deprecated: false schema: type: integer style: simple explode: false example: 42 requestBody: description: The updated Merchant resource content: application/merge-patch+json: schema: $ref: '#/components/schemas/Merchant-merchant.patch.jsonMergePatch' required: true security: - JWT: {} /prepaid-transactions: get: operationId: api_prepaid-transactions_get_collection tags: - Prepaid Transaction responses: 200: description: List of prepaid transactions. content: application/ld+json: schema: type: object description: PrepaidTransaction.jsonld-transaction.read collection. allOf: - $ref: '#/components/schemas/HydraCollectionBaseSchema' - type: object required: - hydra:member properties: hydra:member: type: array items: $ref: '#/components/schemas/PrepaidTransaction.jsonld-transaction.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 prepaid transactions. description: Retrieves the collection of PrepaidTransaction 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 - name: creationDate[before] in: query description: '' required: false deprecated: false schema: type: string style: form explode: false - name: creationDate[strictly_before] in: query description: '' required: false deprecated: false schema: type: string style: form explode: false - name: creationDate[after] in: query description: '' required: false deprecated: false schema: type: string style: form explode: false - name: creationDate[strictly_after] in: query description: '' required: false deprecated: false schema: type: string style: form explode: false - name: merchant in: query description: '' required: false deprecated: false schema: type: string style: form explode: false - name: merchant[] in: query description: '' required: false deprecated: false schema: type: array items: type: string style: form explode: true - name: errorCode in: query description: '' required: false deprecated: false schema: type: integer style: form explode: false - name: errorCode[] in: query description: '' required: false deprecated: false schema: type: array items: type: integer style: form explode: true - name: commitStatus in: query description: '' required: false deprecated: false allowEmptyValue: true schema: type: string enum: - committed - not_committed style: form explode: false allowReserved: false - name: operation in: query description: '' required: false deprecated: false allowEmptyValue: true schema: type: string enum: - accumulation - activation - add - associate_profile - balance - balance_import - balance_transfer - cancel_discount_per_unit_redemption - card_detail_info - card_empty - card_info - commit - complete_cancel - create_profile - credit_note_activation - credit_note_increment - daily_details_employee - daily_summary_employee - daily_summary_merchant - discount_per_unit_balance - discount_per_unit_lock - discount_per_unit_redeem - discount_per_unit_unlock - discount_promotion_available - get_association - increment - item_cancel - lock - lock_modification - merchant_info - non_member_acc_info - partial_cancel - pil_enrollment - pil_payment - point_expiry - profile_info - profile_set_association - punch_add - punch_remove - redeem - redeem_unlock - reward_add - reward_detail_info - reward_earned - reward_expired - reward_redeem - reward_remove - subtract style: form explode: false allowReserved: false security: - JWT: {} /prepaid-transactions/{id}: get: operationId: api_prepaid-transactions_id_get tags: - Prepaid Transaction responses: 200: description: Prepaid transaction retrieved successfully. content: application/ld+json: schema: $ref: '#/components/schemas/PrepaidTransaction.jsonld-transaction.read_transaction.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 prepaid transaction by ID. description: Retrieves a PrepaidTransaction resource. parameters: - name: id in: path description: Numeric transaction ID. required: true deprecated: false schema: type: integer style: simple explode: false example: 123 security: - JWT: {} /v1/clients/{accessKey}/account-types/promo: get: operationId: api_v1clients_accessKeyaccount-typespromo_get_collection tags: - Promo Account Type responses: 200: description: List of promo account types. content: application/ld+json: schema: type: object description: PromoAccountType.jsonld-account-type.read collection. allOf: - $ref: '#/components/schemas/HydraCollectionBaseSchema' - type: object required: - hydra:member properties: hydra:member: type: array items: $ref: '#/components/schemas/PromoAccountType.jsonld-account-type.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 promo account types for a client. description: Retrieves the collection of PromoAccountType resources. parameters: - name: accessKey in: path description: Unique access key identifying the client. required: true deprecated: false schema: type: string style: simple explode: false example: abc123def456 security: - JWT: {} /v1/clients/{accessKey}/account-types/promo/{id}: get: operationId: api_v1clients_accessKeyaccount-typespromo_id_get tags: - Promo Account Type responses: 200: description: Promo account type retrieved successfully. content: application/ld+json: schema: $ref: '#/components/schemas/PromoAccountType.jsonld-account-type.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. 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 promo account type by ID. description: Retrieves a PromoAccountType resource. parameters: - name: accessKey in: path description: Unique access key identifying the client. required: true deprecated: false schema: type: string style: simple explode: false example: abc123def456 - name: id in: path description: Numeric account type ID. required: true deprecated: false schema: type: integer style: simple explode: false example: 1 security: - JWT: {} /rewards/{id}: get: operationId: api_rewards_id_get tags: - Reward responses: 200: description: Reward retrieved successfully. content: application/ld+json: schema: $ref: '#/components/schemas/Reward.jsonld-transaction.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 reward by ID. description: Retrieves a Reward resource. parameters: - name: id in: path description: Numeric reward ID. required: true deprecated: false schema: type: integer style: simple explode: false example: 1 security: - JWT: {} /v1/clients/{accessKey}/users: get: operationId: api_v1clients_accessKeyusers_get_collection tags: - User Management responses: 200: description: List of users. content: application/ld+json: schema: type: object description: User.jsonld-user.read collection. allOf: - $ref: '#/components/schemas/HydraCollectionBaseSchema' - type: object required: - hydra:member properties: hydra:member: type: array items: $ref: '#/components/schemas/User.jsonld-user.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 users for a client. description: Retrieves the collection of User resources. parameters: - name: accessKey in: path description: Unique access key identifying the client. required: true deprecated: false schema: type: string style: simple explode: false example: abc123def456 security: - JWT: {} post: operationId: api_v1clients_accessKeyusers_post tags: - User Management responses: 201: description: User created successfully. content: application/ld+json: schema: $ref: '#/components/schemas/User.jsonld-user.read' 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' 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: Create a new user for a client. description: 'Creates a user account and associates it with the client. **Password requirements:** minimum 10 characters; must include uppercase, lowercase, numeric, and special characters. **Merchant restriction:** provide `accessGroupId` (group-based) or `merchantId` (single merchant) — not both.' parameters: - name: accessKey in: path description: Unique access key identifying the client. required: true deprecated: false schema: type: string style: simple explode: false example: abc123def456 requestBody: description: The new User resource content: application/ld+json: schema: $ref: '#/components/schemas/User-user.write' required: true security: - JWT: {} /v1/clients/{accessKey}/users/{username}: get: operationId: api_v1clients_accessKeyusers_username_get tags: - User Management responses: 200: description: User retrieved successfully. content: application/ld+json: schema: $ref: '#/components/schemas/User.jsonld-user.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. 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 user by username. description: Retrieves a User resource. parameters: - name: accessKey in: path description: Unique access key identifying the client. required: true deprecated: false schema: type: string style: simple explode: false example: abc123def456 - name: username in: path description: Unique username identifying the user within the client. required: true deprecated: false schema: type: string style: simple explode: false example: john.doe security: - JWT: {} patch: operationId: api_v1clients_accessKeyusers_username_patch tags: - User Management responses: 200: description: User updated successfully. content: application/ld+json: schema: $ref: '#/components/schemas/User.jsonld-user.read' 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' 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: Update an existing user. description: Updates the User resource. parameters: - name: accessKey in: path description: Unique access key identifying the client. required: true deprecated: false schema: type: string style: simple explode: false example: abc123def456 - name: username in: path description: Unique username identifying the user within the client. required: true deprecated: false schema: type: string style: simple explode: false example: john.doe requestBody: description: The updated User resource content: application/merge-patch+json: schema: $ref: '#/components/schemas/User-user.patch.jsonMergePatch' required: true security: - JWT: {} /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: 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 Address-merchant.patch: type: object properties: addressLine1: description: Street address type: - string - 'null' addressLine2: description: Street address line 2 type: - string - 'null' city: description: City type: - string - 'null' postalCode: description: Postal code type: - string - 'null' countryCode: description: Country code (CA or US) type: - string - 'null' regionCode: description: Region/province/state code (e.g., ON, QC) type: - string - 'null' Address-merchant.write: type: object properties: addressLine1: description: Street address type: - string - 'null' addressLine2: description: Street address line 2 type: - string - 'null' city: description: City type: - string - 'null' postalCode: description: Postal code type: - string - 'null' countryCode: description: Country code (CA or US) type: - string - 'null' regionCode: description: Region/province/state code (e.g., ON, QC) type: - string - 'null' Address.jsonld-merchant.read: type: object properties: addressLine1: description: Street address type: - string - 'null' addressLine2: description: Street address line 2 type: - string - 'null' city: description: City type: - string - 'null' postalCode: description: Postal code type: - string - 'null' countryCode: description: Country code (CA or US) type: - string - 'null' regionCode: description: Region/province/state code (e.g., ON, QC) type: - string - 'null' Address.jsonld-merchant.read_merchant.read.item: type: object properties: addressLine1: description: Street address type: - string - 'null' addressLine2: description: Street address line 2 type: - string - 'null' city: description: City type: - string - 'null' postalCode: description: Postal code type: - string - 'null' countryCode: description: Country code (CA or US) type: - string - 'null' regionCode: description: Region/province/state code (e.g., ON, QC) type: - string - 'null' Address.jsonld-merchant.write: type: object properties: addressLine1: description: Street address type: - string - 'null' addressLine2: description: Street address line 2 type: - string - 'null' city: description: City type: - string - 'null' postalCode: description: Postal code type: - string - 'null' countryCode: description: Country code (CA or US) type: - string - 'null' regionCode: description: Region/province/state code (e.g., ON, QC) type: - string - 'null' BalancePortal.jsonld-balance_portal.read: allOf: - $ref: '#/components/schemas/HydraItemBaseSchema' - type: object properties: isActive: description: Whether the balance portal is active type: - boolean - 'null' hasSecurityCode: description: Whether security code (PIN) is required type: - boolean - 'null' isGiftcardOrderEnabled: description: Whether gift card ordering is enabled type: - boolean - 'null' isOnlineGiftcardEnabled: description: Whether online gifting portal is enabled type: - boolean - 'null' isOnlineGiftcardHomepageEnabled: description: Whether online gift card is shown on homepage (only when online gifting portal is enabled) type: - boolean - 'null' isRegiftEnabled: description: Whether regift functionality is enabled (only when online gifting portal is enabled) type: - boolean - 'null' balancePortalUrls: anyOf: - $ref: '#/components/schemas/LocalizedString.jsonld-balance_portal.read' - type: 'null' onlineGiftcardPortalUrls: anyOf: - $ref: '#/components/schemas/LocalizedString.jsonld-balance_portal.read' - type: 'null' displayName: anyOf: - $ref: '#/components/schemas/LocalizedString.jsonld-balance_portal.read' - type: 'null' termsConditionsUrl: anyOf: - $ref: '#/components/schemas/LocalizedString.jsonld-balance_portal.read' - type: 'null' privacyPolicyUrl: anyOf: - $ref: '#/components/schemas/LocalizedString.jsonld-balance_portal.read' - type: 'null' Banner.jsonld: type: object properties: id: readOnly: true type: integer externalReference: type: - string - 'null' creationDate: type: - string - 'null' format: date-time primaryColor: type: - string - 'null' secondaryColor: type: - string - 'null' emailSenderName: type: - string - 'null' emailSenderAddress: format: email externalDocs: url: https://schema.org/email type: - string - 'null' merchantsCount: type: - integer - 'null' modificationDate: type: - string - 'null' format: date-time accessGroups: type: array items: $ref: '#/components/schemas/AccessGroup.jsonld' merchants: type: array items: $ref: '#/components/schemas/Client.Merchant.jsonld' imageUrl: type: - string - 'null' translations: type: object additionalProperties: $ref: '#/components/schemas/BannerTranslation.jsonld' newTranslations: $ref: '#/components/schemas/Collection.jsonld' currentLocale: type: string defaultLocale: default: en type: string name: readOnly: true imageId: readOnly: true type: - integer - 'null' translationEntityClass: 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' 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 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' Card.jsonld: type: object properties: id: readOnly: true type: string status: readOnly: true type: string enum: - y - no_pointredeem - n - preactive - suspend - lost - archive - lock_pin contact: readOnly: true type: - string - 'null' format: iri-reference example: https://example.com/ creationDate: type: string format: date-time modificationDate: type: string format: date-time Card.jsonld-transaction.read_transaction.read.item: type: object properties: id: readOnly: true type: string status: readOnly: true type: string enum: - y - no_pointredeem - n - preactive - suspend - lost - archive - lock_pin creationDate: type: string format: date-time modificationDate: type: string format: date-time Client-client.complete: type: object Client-client.patch.jsonMergePatch: type: object properties: status: description: Client status. On PATCH only "active" or "suspended" are accepted. default: pending type: - string - 'null' enum: - pending - active - suspended - deactivated - archived - null accumulationRatioNumerator: minimum: 1 maximum: 16777215 description: Accumulation ratio numerator type: - integer - 'null' accumulationRatioDenominator: minimum: 1 maximum: 16777215 description: Accumulation ratio denominator type: - integer - 'null' debitRatioNumerator: minimum: 1 maximum: 16777215 description: Debit ratio numerator type: - integer - 'null' debitRatioDenominator: minimum: 1 maximum: 16777215 description: Debit ratio denominator type: - integer - 'null' allowRedemptionWhenProfileCompleted: description: Allow redemption when profile completed default: false type: boolean cardStatusAfterFirstAccumulation: description: Card status after first accumulation (ACTIVE or ACTIVE_NO_REDEEM) default: y type: - string - 'null' enum: - y - no_pointredeem - n - preactive - suspend - lost - archive - lock_pin - null Client-client.write: type: object required: - name - hostname - country - timeZone - currency - companyInfo properties: name: minLength: 2 maxLength: 128 description: Name representing the client type: - string - 'null' hostname: minLength: 1 maxLength: 60 pattern: ^((?!\-)[a-z0-9\-]*(?