{"openapi":"3.1.0","info":{"title":"Moniepoint POS API Documentation","description":"Moniepoint POS APIs provide seamless integration for point-of-sale operations, enabling merchants and partners to efficiently manage transactions and notifications. This service includes APIs for webhook subscription management, allowing clients to register and receive real-time event notifications. Additionally, it supports transaction push APIs to submit transaction data securely, and transaction details retrieval APIs for querying comprehensive transaction information. These APIs ensure reliable, secure, and timely processing of POS transactions with easy-to-use endpoints designed for scalability and integration flexibility.","version":"1.0"},"servers":[{"url":"https://api.pos.moniepoint.com","description":"Generated server url"}],"security":[{"Authorization":["read","write"]}],"tags":[{"name":"Authentication","description":"This section defines how external applications authenticate with Moniepoint’s API using secure methods. The endpoints here ensure that only authorized requests interact with the platform. It covers token introspection, such as checking the validity of an API key and provides metadata about the authenticated entity (e.g., scope, businesses, authentication method, and environment).\n\n**Scope:**\n\nEach API key is scoped to specific businesses and environments. Clients must include a valid API key in the Authorization header of every request. The `GET /v1/introspect` endpoint should be used to verify that the token is valid and to understand the scope of access (e.g., which businesses and environments it applies to).\n"},{"name":"Transactions","description":"This section provides endpoints for managing and retrieving transaction details through Moniepoint's API. It supports pushing transactions directly to terminals and fetching transaction statuses using unique merchant references. These operations are critical for enabling POS payments and tracking their outcomes programmatically.\n\n**Scope:**\n\nThese endpoints are used to initiate transactions via Moniepoint terminals and check the status of those transactions. They are typically integrated into merchant-facing systems to programmatically trigger and verify payment events. The `POST /v1/transactions` endpoint is used to push a transaction to a terminal, while the `GET /v1/transactions/merchants/{merchantReference}` endpoint retrieves its outcome. Each transaction must use a unique merchantReference. Access to these APIs requires API Key-based authorization with relevant scopes (`transaction:push` and `transaction:read`). Excessive polling of the transaction status endpoint may result in rate limiting.\n"},{"name":"Webhook Subscription Events","description":"This section covers all operations related to providing visibility and control over webhook event deliveries, including tracking delivery status, accessing event logs, and retrying failed or pending events. This functionality helps ensure webhook notifications are reliably processed and monitored.\n\n**Scope:**\n\nThe Webhook Subscription Events APIs allow API Key-authorized clients to manage and troubleshoot webhook events. Clients can list events for a given subscription with filters for date range, event type, and status (`SUCCESS, PENDING` and  `FAILED`), view event details by `subscriptionEventId`, and retrieve event-specific logs for debugging delivery attempts. Resending of events is supported only for those in `PENDING` or `FAILED` status; successful events are excluded. Filtering is available through query parameters like `subscriptionId, from, to, eventType` and `status`, while pagination and sorting are supported via `page, size` and `sort` to efficiently manage large datasets. Access to these APIs requires API Key-based authorization with relevant scopes (`webhook:read` and `webhook:write`).\n"},{"name":"Webhook Subscription Groups","description":"This section covers all operations related to managing grouped webhook subscriptions for business owners to manage subscriptions across multiple businesses, enabling centralized control over notification URLs, subscribed event types, authentication methods, and secret management. Each group represents a distinct webhook configuration applicable across all authorized business contexts.\n\n**Scope:**\n\nThe Webhook Subscription Groups APIs support the full lifecycle management of webhook groups, including creating, reading (by ID or in bulk with pagination/sorting), updating (URL, event types, status), and deleting groups. Authentication can be configured as `BASIC` (with username/password) or `NONE`. Secret management is supported via retrieval and regeneration operations, though frequent regeneration is discouraged to avoid rate limiting. Each group must subscribe only to supported event types (e.g., `V1_POS_TRANSACTION, V1_POS_BILL_PAYMENT_TRANSACTION`, etc.). Access to these APIs requires API Key-based authorization with relevant scopes (`webhook:read, webhook:write` and `webhook:delete`).\n"},{"name":"Webhook Subscriptions","description":"This section covers all operations related to creating, updating, managing, and deleting webhook subscriptions in the Moniepoint ecosystem. Webhooks allow client systems to receive real-time updates about events such as POS transactions, bill payments, and card transfers. It also includes endpoints for managing authentication and secret keys associated with subscriptions.\n\n**Scope:**\n\nThese endpoints allow businesses to configure callback URLs, specify which events to listen to, and manage authentication credentials securely. Each subscription is linked to a unique business and requires appropriate scopes such as `webhook:read, webhook:write` and `webhook:delete`. When setting up a webhook, specify one or more eventTypes such as `V1_POS_TRANSACTION`. All webhook subscriptions must use secure (HTTPS) endpoints and specify valid event types from Moniepoint’s supported catalog. Secret keys associated with webhooks can be rotated using /secret endpoints.\n"}],"paths":{"/v1/webhook-subscriptions/{subscriptionId}":{"get":{"tags":["Webhook Subscriptions"],"summary":"Get Webhook Subscription by ID.","description":"Fetch details of a specific webhook subscription using its unique ID. This endpoint is useful for viewing the configuration, status, and metadata of an individual subscription.\n\nRequires `webhook:read` scope to access this endpoint.\n","operationId":"getSubscriptionById","parameters":[{"name":"subscriptionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Webhook Subscription fetched successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSubscriptionResponse"}}}},"401":{"description":"Invalid authorization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthErrorResponseModel"}}}},"404":{"description":"Subscription not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponseModel"}}}}}},"put":{"tags":["Webhook Subscriptions"],"summary":"Update Webhook Subscription.","description":"Update the configuration of an existing webhook subscription. This endpoint allows authorized clients to modify attributes such as the destination URL, subscribed event types, and the current status of the subscription.\n\nRequires `webhook:write` scope to access this endpoint.\n","operationId":"updateSubscription","parameters":[{"name":"subscriptionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWebhookSubscriptionRequest"}}},"required":true},"responses":{"200":{"description":"Webhook Subscription updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSubscriptionResponse"}}}},"401":{"description":"Invalid authorization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthErrorResponseModel"}}}},"400":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"404":{"description":"Subscription not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponseModel"}}}}}},"delete":{"tags":["Webhook Subscriptions"],"summary":"Delete Webhook Subscription by ID.","description":"Delete an existing webhook subscription identified by its subscriptionId. This endpoint allows authorized clients to remove a webhook subscription permanently.\n\nRequires `webhook:delete` scope to access this endpoint.\n","operationId":"deleteSubscription","parameters":[{"name":"subscriptionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Webhook Subscription deleted successfully."},"401":{"description":"Invalid authorization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthErrorResponseModel"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponseModel"}}}}}}},"/v1/webhook-subscriptions/{subscriptionId}/authentication":{"get":{"tags":["Webhook Subscriptions"],"summary":"Get subscription authentication details by webhook subscription ID.","description":"Retrieve the authentication details for a specific webhook subscription. This endpoint allows authorized clients to fetch authentication method and credentials used by the webhook subscription.\n\nRequires `webhook:read` scope to access this endpoint.\n","operationId":"getSubscriptionAuthenticationById","parameters":[{"name":"subscriptionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Returned subscription authentication details successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionAuthenticationModel"}}}},"401":{"description":"Invalid authorization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthErrorResponseModel"}}}},"404":{"description":"Subscription not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponseModel"}}}}}},"put":{"tags":["Webhook Subscriptions"],"summary":"Update subscription authentication details by webhook subscription ID.","description":"Update the authentication details for a specific webhook subscription. This endpoint allows authorized clients to modify the authentication method and credentials used by the webhook subscription.\n\nRequires `webhook:write` scope to access this endpoint.\n","operationId":"updateSubscriptionAuthenticationById","parameters":[{"name":"subscriptionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSubscriptionAuthRequest"}}},"required":true},"responses":{"200":{"description":"Updated subscription authentication details successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionAuthenticationModel"}}}},"400":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"401":{"description":"Invalid authorization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthErrorResponseModel"}}}},"404":{"description":"Subscription not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponseModel"}}}}}}},"/v1/webhook-subscription-groups/{subscriptionGroupId}":{"get":{"tags":["Webhook Subscription Groups"],"summary":"Get Webhook Subscription Group.","description":"This endpoint is used to fetch subscriptions for all the businesses authorized by an API Key.\n\nRequires `webhook:read` scope to access this endpoint.\n","operationId":"getSubscriptionGroup","parameters":[{"name":"subscriptionGroupId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Webhook subscription group fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSubscriptionGroupResponse"}}}},"400":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"401":{"description":"Invalid authorization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthErrorResponseModel"}}}},"404":{"description":"Subscription group not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponseModel"}}}}}},"put":{"tags":["Webhook Subscription Groups"],"summary":"Update Webhook Subscription Group.","description":"This endpoint is used to update subscriptions for all the businesses authorized by an API Key.\n\nRequires `webhook:write` scope to access this endpoint.\n","operationId":"updateSubscriptionGroup","parameters":[{"name":"subscriptionGroupId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWebhookSubscriptionRequest"}}},"required":true},"responses":{"200":{"description":"Webhook subscription group updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSubscriptionGroupResponse"}}}},"400":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"401":{"description":"Invalid authorization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthErrorResponseModel"}}}},"404":{"description":"Subscription group not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponseModel"}}}}}},"delete":{"tags":["Webhook Subscription Groups"],"summary":"Delete Webhook Subscription Group.","description":"This endpoint is used to delete subscriptions for all the businesses authorized by an API Key.\n\nRequires `webhook:delete` scope to access this endpoint.\n","operationId":"deleteSubscriptionGroup","parameters":[{"name":"subscriptionGroupId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Webhook subscription group deleted successfully."},"400":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"401":{"description":"Invalid authorization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthErrorResponseModel"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponseModel"}}}}}}},"/v1/webhook-subscription-groups/{subscriptionGroupId}/authentication":{"get":{"tags":["Webhook Subscription Groups"],"summary":"Get webhook subscription authentication details for a specific subscription group ID.","description":"This endpoint is used to fetch authentication details for all the businesses authorized by an API Key.\n\nRequires `webhook:read` scope to access this endpoint.\n","operationId":"getSubscriptionGroupAuth","parameters":[{"name":"subscriptionGroupId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Fetched subscription group authentication details successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionAuthenticationModel"}}}},"400":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"401":{"description":"Invalid authorization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthErrorResponseModel"}}}},"404":{"description":"Subscription group not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponseModel"}}}}}},"put":{"tags":["Webhook Subscription Groups"],"summary":"Update webhook subscription authentication details for a specific subscription group ID.","description":"This endpoint is used to update authentication details for all the businesses authorized by an API Key.\n\nRequires `webhook:read` scope to access this endpoint.\n","operationId":"updateSubscriptionGroupAuth","parameters":[{"name":"subscriptionGroupId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSubscriptionAuthRequest"}}},"required":true},"responses":{"200":{"description":"Updated subscription group authentication details successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionAuthenticationModel"}}}},"400":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"401":{"description":"Invalid authorization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthErrorResponseModel"}}}},"404":{"description":"Subscription group not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponseModel"}}}}}}},"/v1/webhook-subscriptions":{"get":{"tags":["Webhook Subscriptions"],"summary":"Get All Webhook Subscriptions for a Business.","description":"Fetch all webhook subscriptions for a specific business. Supports pagination and sorting to retrieve subscriptions in a controlled and ordered manner.\n\nRequires `webhook:read` scope to access this endpoint.\n","operationId":"getSubscriptions","parameters":[{"name":"POS_BUSINESS_ID","in":"header","description":"The id of the business the subscription exists for.","required":true,"schema":{"type":"number"}},{"name":"page","in":"query","description":"Zero-based page index (0..N)","schema":{"type":"integer","default":0}},{"name":"size","in":"query","description":"The size of the page to be returned","schema":{"type":"integer","default":20}},{"name":"sort","in":"query","description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"All Webhook Subscriptions fetched for business successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSubscriptionResultModel"}}}},"401":{"description":"Invalid authorization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthErrorResponseModel"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponseModel"}}}}}},"post":{"tags":["Webhook Subscriptions"],"summary":"Create Webhook Subscription.","description":"Create a new webhook subscription for a business. This endpoint allows authorized clients to register a webhook URL along with the specific event types the subscription should listen for.\n\nRequires `webhook:write` scope to access this endpoint.\n","operationId":"createSubscription","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSubscriptionRequest"}}},"required":true},"responses":{"201":{"description":"Webhook Subscription created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSubscriptionResponse"}}}},"401":{"description":"Invalid authorization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthErrorResponseModel"}}}},"400":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponseModel"}}}}}}},"/v1/webhook-subscriptions/{subscriptionId}/secret":{"get":{"tags":["Webhook Subscriptions"],"summary":"Get webhook subscription secret for a specific subscription ID.","description":"Retrieve the secret key associated with a specific webhook subscription. This endpoint allows authorized clients to fetch the secret used for securing webhook payloads.\n\nRequires `webhook:read` scope to access this endpoint.\n","operationId":"getSecret","parameters":[{"name":"subscriptionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Fetched subscription secret successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionSecretModel"}}}},"401":{"description":"Invalid authorization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthErrorResponseModel"}}}},"404":{"description":"Subscription not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponseModel"}}}}}},"post":{"tags":["Webhook Subscriptions"],"summary":"Regenerate webhook subscription secret for a specific subscription ID.","description":"Regenerate the secret key for a specific webhook subscription. This endpoint allows authorized clients to create a new secret used for securing webhook payloads.\n\nRequires `webhook:write` scope to access this endpoint.\n","operationId":"regenerateSecret","parameters":[{"name":"subscriptionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Regenerated subscription secret successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionSecretModel"}}}},"401":{"description":"Invalid authorization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthErrorResponseModel"}}}},"404":{"description":"Subscription not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponseModel"}}}}}}},"/v1/webhook-subscription-groups":{"get":{"tags":["Webhook Subscription Groups"],"summary":"Get All Webhook Subscription Groups.","description":"This endpoint is used to fetch all subscription groups for all the businesses authorized by an API Key.\n\nRequires `webhook:read` scope to access this endpoint.\n","operationId":"getAllSubscriptionGroups","parameters":[{"name":"page","in":"query","description":"Zero-based page index (0..N)","schema":{"type":"integer","default":0}},{"name":"size","in":"query","description":"The size of the page to be returned","schema":{"type":"integer","default":20}},{"name":"sort","in":"query","description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"Webhook subscription groups fetched successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSubscriptionGroupResultModel"}}}},"401":{"description":"Invalid authorization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthErrorResponseModel"}}}},"404":{"description":"Subscription group not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponseModel"}}}}}},"post":{"tags":["Webhook Subscription Groups"],"summary":"Create Webhook Subscription Group.","description":"This endpoint is used to create subscriptions for all the businesses authorized by an API Key.\n\nRequires `webhook:write` scope to access this endpoint.\n","operationId":"createSubscriptionGroup","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSubscriptionGroupRequest"}}},"required":true},"responses":{"201":{"description":"Webhook subscription group created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSubscriptionGroupResponse"}}}},"401":{"description":"Invalid authorization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthErrorResponseModel"}}}},"400":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponseModel"}}}}}}},"/v1/webhook-subscription-groups/{subscriptionGroupId}/secret":{"get":{"tags":["Webhook Subscription Groups"],"summary":"Get webhook subscription group secret for a specific subscription group ID.","description":"This endpoint is used to fetch secret for all the businesses authorized by an API Key.\n\nRequires `webhook:read` scope to access this endpoint.\n","operationId":"getSecret_1","parameters":[{"name":"subscriptionGroupId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Fetched subscription group secret successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionSecretModel"}}}},"400":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"401":{"description":"Invalid authorization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthErrorResponseModel"}}}},"404":{"description":"Subscription group not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponseModel"}}}}}},"post":{"tags":["Webhook Subscription Groups"],"summary":"Regenerate webhook subscription group secret for a specific subscription group ID.","description":"This endpoint is used to regenerate subscription secret for all the businesses authorized by an API Key.\n\nRequires `webhook:write` scope to access this endpoint.\n","operationId":"regenerateSecret_1","parameters":[{"name":"subscriptionGroupId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Regenerated subscription group secret successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionSecretModel"}}}},"400":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"401":{"description":"Invalid authorization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthErrorResponseModel"}}}},"404":{"description":"Subscription group not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponseModel"}}}}}}},"/v1/webhook-subscription-events/resend":{"post":{"tags":["Webhook Subscription Events"],"summary":"Force resend events based on filters.","description":"Resend events Force based on filters. Only PENDING or FAILED events are actually resent back to the user\n\nRequires `webhook:write` scope to access this endpoint.\n","operationId":"resendWebhookSubscriptionEvent","parameters":[{"name":"subscriptionId","in":"query","description":"Subscription ID","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"from","in":"query","description":"Start Date","required":false,"schema":{"type":"string","format":"date"}},{"name":"to","in":"query","description":"End Date","required":false,"schema":{"type":"string","format":"date"}},{"name":"eventType","in":"query","description":"eventType Date","required":false,"schema":{"type":"array","items":{"type":"string","enum":["V1_POS_TRANSACTION","V1_POS_WITHDRAWAL_TRANSACTION","V1_POS_PURCHASE_TRANSACTION","V1_POS_CARD_TRANSFER_TRANSACTION","V1_POS_BILL_PAYMENT_TRANSACTION","V1_POS_TRANSFER_TRANSACTION","V1_TRANSFER_TRANSACTION","V1_POS_COLLECTION_TRANSACTION","V1_POS_PAY_CODE_TRANSACTION","V1_POS_AIRTIME_TRANSACTION","V1_POS_BOOM_TRANSACTION","V1_POS_DATA_PURCHASE","UNKNOWN"]}}},{"name":"status","in":"query","description":"Status","required":false,"schema":{"type":"array","items":{"type":"string","enum":["SUCCESS","PENDING","FAILED"]}}}],"responses":{"200":{"description":"Webhook subscription event resent successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionEventLogResultModel"}}}},"400":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"401":{"description":"Invalid authorization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthErrorResponseModel"}}}},"404":{"description":"Subscription not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponseModel"}}}}}}},"/v1/transactions":{"post":{"tags":["Transactions"],"summary":"Push Transaction to terminal.","description":"This endpoint is used to initiate a transaction on a POS terminal. It pushes a payment request to the specified terminal using its unique serial number. This is typically used for card payments or transfers initiated at the terminal, enabling seamless and secure transaction processing.\n\nRequires `transaction:push` scope to access this endpoint.\n","operationId":"pushTransaction","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionRequest"}}},"required":true},"responses":{"202":{"description":"Successfully pushed transaction to terminal.","content":{"application/json":{}}},"400":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"401":{"description":"Invalid authorization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthErrorResponseModel"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponseModel"}}}}}}},"/v1/webhook-subscription-events":{"get":{"tags":["Webhook Subscription Events"],"summary":"Get subscription events for a given subscription","description":"Fetch events related to a specific webhook subscription. Supports filtering by date range, event types, and status, along with pagination and sorting options.\n\nRequires `webhook:read` scope to access this endpoint.\n","operationId":"getSubscriptionEvents","parameters":[{"name":"subscriptionId","in":"query","description":"Subscription ID","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"from","in":"query","description":"Start Date","required":false,"schema":{"type":"string","format":"date"}},{"name":"to","in":"query","description":"End Date","required":false,"schema":{"type":"string","format":"date"}},{"name":"eventType","in":"query","description":"eventType Date","required":false,"schema":{"type":"array","items":{"type":"string","enum":["V1_POS_TRANSACTION","V1_POS_WITHDRAWAL_TRANSACTION","V1_POS_PURCHASE_TRANSACTION","V1_POS_CARD_TRANSFER_TRANSACTION","V1_POS_BILL_PAYMENT_TRANSACTION","V1_POS_TRANSFER_TRANSACTION","V1_TRANSFER_TRANSACTION","V1_POS_COLLECTION_TRANSACTION","V1_POS_PAY_CODE_TRANSACTION","V1_POS_AIRTIME_TRANSACTION","V1_POS_BOOM_TRANSACTION","V1_POS_DATA_PURCHASE","UNKNOWN"]}}},{"name":"status","in":"query","description":"Status","required":false,"schema":{"type":"array","items":{"type":"string","enum":["SUCCESS","PENDING","FAILED"]}}},{"name":"page","in":"query","description":"Zero-based page index (0..N)","schema":{"type":"integer","default":0}},{"name":"size","in":"query","description":"The size of the page to be returned","schema":{"type":"integer","default":20}},{"name":"sort","in":"query","description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"Subscription events fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionEventResultModel"}}}},"400":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"401":{"description":"Invalid authorization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthErrorResponseModel"}}}},"404":{"description":"Subscription not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponseModel"}}}}}}},"/v1/webhook-subscription-events/{subscriptionEventId}":{"get":{"tags":["Webhook Subscription Events"],"summary":"Get webhook subscription event details by event ID","description":"Retrieve details of a specific webhook subscription event by its `subscriptionEventId`.\n\nRequires `webhook:read` scope to access this endpoint.\n","operationId":"getById","parameters":[{"name":"subscriptionEventId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Subscription events fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionEventResultModel"}}}},"401":{"description":"Invalid authorization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthErrorResponseModel"}}}},"404":{"description":"Subscription event not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponseModel"}}}}}}},"/v1/webhook-subscription-events/{subscriptionEventId}/logs":{"get":{"tags":["Webhook Subscription Events"],"summary":"Get webhook subscription event logs by event ID","description":"Fetch logs related to a specific webhook subscription event. This endpoint returns the history of attempts, statuses, and messages for the event.\n\nRequires `webhook:read` scope to access this endpoint.\n","operationId":"getSubscriptionEventLogs","parameters":[{"name":"subscriptionEventId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Subscription events logs fetched successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionEventLogResultModel"}}}},"401":{"description":"Invalid authorization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthErrorResponseModel"}}}},"404":{"description":"Subscription event not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponseModel"}}}}}}},"/v1/transactions/merchants/{merchantReference}":{"get":{"tags":["Transactions"],"summary":"Get Transaction Details.","description":"This endpoint retrieves the full transaction details associated with a specific `merchantReference`. It is typically used for verifying the status or outcome of a transaction after it has been initiated.\n\nRequires `transaction:read` scope to access this endpoint.\n","operationId":"getTransactionDetails","parameters":[{"name":"merchantReference","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successfully fetched transaction details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionResponse"}}}},"401":{"description":"Invalid authorization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthErrorResponseModel"}}}},"404":{"description":"Transaction not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientErrorResponseModel"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponseModel"}}}}}}},"/v1/introspect":{"get":{"tags":["Authentication"],"summary":"Authentication Introspection","description":"This endpoint introspects the provided authorization token (e.g., API Key) to check its validity and retrieve associated claims.","operationId":"introspectAuth","responses":{"200":{"description":"Fetched authorization details successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthIntrospectionResponse"}}}},"401":{"description":"Invalid authorization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthErrorResponseModel"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponseModel"}}}}}}}},"components":{"schemas":{"UpdateWebhookSubscriptionRequest":{"type":"object","properties":{"endpointUrl":{"type":"string","minLength":1},"eventTypes":{"type":"array","enum":["V1_POS_TRANSACTION","V1_POS_WITHDRAWAL_TRANSACTION","V1_POS_PURCHASE_TRANSACTION","V1_POS_CARD_TRANSFER_TRANSACTION","V1_POS_BILL_PAYMENT_TRANSACTION","V1_POS_TRANSFER_TRANSACTION","V1_TRANSFER_TRANSACTION","V1_POS_COLLECTION_TRANSACTION","V1_POS_PAY_CODE_TRANSACTION","V1_POS_AIRTIME_TRANSACTION","V1_POS_BOOM_TRANSACTION","V1_POS_DATA_PURCHASE"],"items":{"type":"string","enum":["V1_POS_TRANSACTION","V1_POS_WITHDRAWAL_TRANSACTION","V1_POS_PURCHASE_TRANSACTION","V1_POS_CARD_TRANSFER_TRANSACTION","V1_POS_BILL_PAYMENT_TRANSACTION","V1_POS_TRANSFER_TRANSACTION","V1_TRANSFER_TRANSACTION","V1_POS_COLLECTION_TRANSACTION","V1_POS_PAY_CODE_TRANSACTION","V1_POS_AIRTIME_TRANSACTION","V1_POS_BOOM_TRANSACTION","V1_POS_DATA_PURCHASE","UNKNOWN"]},"minItems":1,"uniqueItems":true},"status":{"type":"string","enum":["ACTIVE","INACTIVE"]}},"required":["status"]},"WebhookSubscriptionResponse":{"type":"object","properties":{"createdAt":{"type":"string"},"modifiedAt":{"type":"string"},"deleted":{"type":"boolean"},"deletedAt":{"type":"string"},"id":{"type":"string","format":"uuid"},"business":{"type":"integer","format":"int64"},"endpointUrl":{"type":"string"},"subscriptionGroupId":{"type":"string","format":"uuid"},"eventTypes":{"type":"array","enum":["V1_POS_TRANSACTION","V1_POS_WITHDRAWAL_TRANSACTION","V1_POS_PURCHASE_TRANSACTION","V1_POS_CARD_TRANSFER_TRANSACTION","V1_POS_BILL_PAYMENT_TRANSACTION","V1_POS_TRANSFER_TRANSACTION","V1_TRANSFER_TRANSACTION","V1_POS_COLLECTION_TRANSACTION","V1_POS_PAY_CODE_TRANSACTION","V1_POS_AIRTIME_TRANSACTION","V1_POS_BOOM_TRANSACTION","V1_POS_DATA_PURCHASE"],"items":{"type":"string","enum":["V1_POS_TRANSACTION","V1_POS_WITHDRAWAL_TRANSACTION","V1_POS_PURCHASE_TRANSACTION","V1_POS_CARD_TRANSFER_TRANSACTION","V1_POS_BILL_PAYMENT_TRANSACTION","V1_POS_TRANSFER_TRANSACTION","V1_TRANSFER_TRANSACTION","V1_POS_COLLECTION_TRANSACTION","V1_POS_PAY_CODE_TRANSACTION","V1_POS_AIRTIME_TRANSACTION","V1_POS_BOOM_TRANSACTION","V1_POS_DATA_PURCHASE","UNKNOWN"]},"uniqueItems":true},"status":{"type":"string","enum":["ACTIVE","INACTIVE"]}}},"AuthErrorResponseModel":{"type":"object","description":"Error response for invalid authorization","properties":{"error":{"type":"string","description":"Error type"},"message":{"type":"string","description":"Detailed error message"}}},"ClientErrorResponseModel":{"type":"object","description":"Error response for client errors","properties":{"errors":{"type":"array","description":"List of Errors","items":{"type":"string"}},"message":{"type":"string","description":"Detailed error message"},"status":{"type":"string","description":"Status code"}}},"ServerErrorResponseModel":{"type":"object","description":"Error response for server errors","properties":{"message":{"type":"string","description":"Detailed error message"},"status":{"type":"string","description":"Status code"}}},"WebhookSubscriptionAuthRequest":{"type":"object","properties":{"authenticationMethod":{"type":"string","enum":["BASIC","NONE"]},"username":{"type":"string"},"password":{"type":"string"}},"required":["authenticationMethod"]},"SubscriptionAuthenticationModel":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"authenticationMethod":{"type":"string","enum":["BASIC","NONE"]},"username":{"type":"string"},"password":{"type":"string"}}},"WebhookSubscriptionGroupResponse":{"type":"object","properties":{"createdAt":{"type":"string"},"modifiedAt":{"type":"string"},"deleted":{"type":"boolean"},"deletedAt":{"type":"string"},"id":{"type":"string","format":"uuid"},"endpointUrl":{"type":"string"},"eventTypes":{"type":"array","enum":["V1_POS_TRANSACTION","V1_POS_WITHDRAWAL_TRANSACTION","V1_POS_PURCHASE_TRANSACTION","V1_POS_CARD_TRANSFER_TRANSACTION","V1_POS_BILL_PAYMENT_TRANSACTION","V1_POS_TRANSFER_TRANSACTION","V1_TRANSFER_TRANSACTION","V1_POS_COLLECTION_TRANSACTION","V1_POS_PAY_CODE_TRANSACTION","V1_POS_AIRTIME_TRANSACTION","V1_POS_BOOM_TRANSACTION","V1_POS_DATA_PURCHASE"],"items":{"type":"string","enum":["V1_POS_TRANSACTION","V1_POS_WITHDRAWAL_TRANSACTION","V1_POS_PURCHASE_TRANSACTION","V1_POS_CARD_TRANSFER_TRANSACTION","V1_POS_BILL_PAYMENT_TRANSACTION","V1_POS_TRANSFER_TRANSACTION","V1_TRANSFER_TRANSACTION","V1_POS_COLLECTION_TRANSACTION","V1_POS_PAY_CODE_TRANSACTION","V1_POS_AIRTIME_TRANSACTION","V1_POS_BOOM_TRANSACTION","V1_POS_DATA_PURCHASE","UNKNOWN"]},"uniqueItems":true},"status":{"type":"string","enum":["ACTIVE","INACTIVE"]}}},"WebhookSubscriptionRequest":{"type":"object","properties":{"endpointUrl":{"type":"string","minLength":1},"eventTypes":{"type":"array","enum":["V1_POS_TRANSACTION","V1_POS_WITHDRAWAL_TRANSACTION","V1_POS_PURCHASE_TRANSACTION","V1_POS_CARD_TRANSFER_TRANSACTION","V1_POS_BILL_PAYMENT_TRANSACTION","V1_POS_TRANSFER_TRANSACTION","V1_TRANSFER_TRANSACTION","V1_POS_COLLECTION_TRANSACTION","V1_POS_PAY_CODE_TRANSACTION","V1_POS_AIRTIME_TRANSACTION","V1_POS_BOOM_TRANSACTION","V1_POS_DATA_PURCHASE"],"items":{"type":"string","enum":["V1_POS_TRANSACTION","V1_POS_WITHDRAWAL_TRANSACTION","V1_POS_PURCHASE_TRANSACTION","V1_POS_CARD_TRANSFER_TRANSACTION","V1_POS_BILL_PAYMENT_TRANSACTION","V1_POS_TRANSFER_TRANSACTION","V1_TRANSFER_TRANSACTION","V1_POS_COLLECTION_TRANSACTION","V1_POS_PAY_CODE_TRANSACTION","V1_POS_AIRTIME_TRANSACTION","V1_POS_BOOM_TRANSACTION","V1_POS_DATA_PURCHASE","UNKNOWN"]},"minItems":1,"uniqueItems":true},"businessId":{"type":"integer","format":"int64"}},"required":["businessId"]},"SubscriptionSecretModel":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"secret":{"type":"string"}}},"WebhookSubscriptionGroupRequest":{"type":"object","properties":{"endpointUrl":{"type":"string","minLength":1},"eventTypes":{"type":"array","enum":["V1_POS_TRANSACTION","V1_POS_WITHDRAWAL_TRANSACTION","V1_POS_PURCHASE_TRANSACTION","V1_POS_CARD_TRANSFER_TRANSACTION","V1_POS_BILL_PAYMENT_TRANSACTION","V1_POS_TRANSFER_TRANSACTION","V1_TRANSFER_TRANSACTION","V1_POS_COLLECTION_TRANSACTION","V1_POS_PAY_CODE_TRANSACTION","V1_POS_AIRTIME_TRANSACTION","V1_POS_BOOM_TRANSACTION","V1_POS_DATA_PURCHASE"],"items":{"type":"string","enum":["V1_POS_TRANSACTION","V1_POS_WITHDRAWAL_TRANSACTION","V1_POS_PURCHASE_TRANSACTION","V1_POS_CARD_TRANSFER_TRANSACTION","V1_POS_BILL_PAYMENT_TRANSACTION","V1_POS_TRANSFER_TRANSACTION","V1_TRANSFER_TRANSACTION","V1_POS_COLLECTION_TRANSACTION","V1_POS_PAY_CODE_TRANSACTION","V1_POS_AIRTIME_TRANSACTION","V1_POS_BOOM_TRANSACTION","V1_POS_DATA_PURCHASE","UNKNOWN"]},"minItems":1,"uniqueItems":true}}},"PageableObject":{"type":"object","properties":{"offset":{"type":"integer","format":"int64"},"sort":{"$ref":"#/components/schemas/SortObject"},"pageNumber":{"type":"integer","format":"int32"},"pageSize":{"type":"integer","format":"int32"},"paged":{"type":"boolean"},"unpaged":{"type":"boolean"}}},"SortObject":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"SubscriptionEventLogModel":{"type":"object","properties":{"createdAt":{"type":"string"},"createdBy":{"type":"string"},"modifiedAt":{"type":"string"},"modifiedBy":{"type":"string"},"deleted":{"type":"boolean"},"deletedAt":{"type":"string"},"id":{"type":"string","format":"uuid"},"subscriptionId":{"type":"string","format":"uuid"},"subscriptionEventId":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["SUCCESS","PENDING","FAILED"]},"message":{"type":"string"}}},"SubscriptionEventLogResultModel":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/SubscriptionEventLogModel"}},"pageable":{"$ref":"#/components/schemas/PageableObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"last":{"type":"boolean"},"size":{"type":"integer","format":"int32"},"number":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"numberOfElements":{"type":"integer","format":"int32"},"first":{"type":"boolean"},"empty":{"type":"boolean"}}},"TransactionRequest":{"type":"object","properties":{"terminalSerial":{"type":"string","minLength":1},"amount":{"type":"integer","format":"int64","minimum":100},"merchantReference":{"type":"string","minLength":1},"transactionType":{"type":"string","enum":["PURCHASE","BOOM","CREDIT","DEBIT","WITHDRAWAL","POS_TRANSFER","TRANSFERS","CARD_TRANSFER","BILL_PAYMENT","AIRTIME","COLLECTION","PAYCODE","DATA_PURCHASE"]},"paymentMethod":{"type":"string","enum":["CARD_PURCHASE","POS_TRANSFER","ANY"]}},"required":["amount","paymentMethod","transactionType"]},"WebhookSubscriptionResultModel":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/WebhookSubscriptionResponse"}},"pageable":{"$ref":"#/components/schemas/PageableObject"},"last":{"type":"boolean"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"first":{"type":"boolean"},"size":{"type":"integer","format":"int32"},"number":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"numberOfElements":{"type":"integer","format":"int32"},"empty":{"type":"boolean"}}},"WebhookSubscriptionGroupResultModel":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/WebhookSubscriptionGroupResponse"}},"pageable":{"$ref":"#/components/schemas/PageableObject"},"last":{"type":"boolean"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"first":{"type":"boolean"},"size":{"type":"integer","format":"int32"},"number":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"numberOfElements":{"type":"integer","format":"int32"},"empty":{"type":"boolean"}}},"SubscriptionEventModel":{"type":"object","properties":{"createdAt":{"type":"string"},"createdBy":{"type":"string"},"modifiedAt":{"type":"string"},"modifiedBy":{"type":"string"},"deleted":{"type":"boolean"},"deletedAt":{"type":"string"},"id":{"type":"string","format":"uuid"},"subscriptionId":{"type":"string","format":"uuid"},"idempotentId":{"type":"string","format":"uuid"},"eventType":{"type":"string","enum":["V1_POS_TRANSACTION","V1_POS_WITHDRAWAL_TRANSACTION","V1_POS_PURCHASE_TRANSACTION","V1_POS_CARD_TRANSFER_TRANSACTION","V1_POS_BILL_PAYMENT_TRANSACTION","V1_POS_TRANSFER_TRANSACTION","V1_TRANSFER_TRANSACTION","V1_POS_COLLECTION_TRANSACTION","V1_POS_PAY_CODE_TRANSACTION","V1_POS_AIRTIME_TRANSACTION","V1_POS_BOOM_TRANSACTION","V1_POS_DATA_PURCHASE","UNKNOWN"]},"payload":{"type":"object","additionalProperties":{"type":"object"}},"retryTimes":{"type":"integer","format":"int32"},"retryAt":{"type":"string"},"status":{"type":"string","enum":["SUCCESS","PENDING","FAILED"]},"subjectUrn":{"type":"string"},"endpointUrl":{"type":"string"}}},"SubscriptionEventResultModel":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/SubscriptionEventModel"}},"pageable":{"$ref":"#/components/schemas/PageableObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"last":{"type":"boolean"},"size":{"type":"integer","format":"int32"},"number":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"numberOfElements":{"type":"integer","format":"int32"},"first":{"type":"boolean"},"empty":{"type":"boolean"}}},"TransactionResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"createdAt":{"type":"string"},"modifiedAt":{"type":"string"},"clientId":{"type":"string"},"businessOwnerId":{"type":"integer","format":"int64"},"terminalSerial":{"type":"string"},"requestAmount":{"type":"integer","format":"int64"},"transactionReference":{"type":"string"},"merchantReference":{"type":"string"},"transactionType":{"type":"string","enum":["PURCHASE","BOOM","CREDIT","DEBIT","WITHDRAWAL","POS_TRANSFER","TRANSFERS","CARD_TRANSFER","BILL_PAYMENT","AIRTIME","COLLECTION","PAYCODE","DATA_PURCHASE","UNKNOWN"]},"requestPaymentMethod":{"type":"string","enum":["CARD_PURCHASE","POS_TRANSFER","ANY","UNKNOWN"]},"actualPaymentMethod":{"type":"string","enum":["CARD_PURCHASE","POS_TRANSFER","ANY","UNKNOWN"]},"actualAmount":{"type":"integer","format":"int64"},"processingStatus":{"type":"string","enum":["PENDING","PROCESSED","COMPLETED","CANCELLED","SUCCESSFUL","FAILED"]},"responseCode":{"type":"string"},"responseMessage":{"type":"string"},"metaData":{"type":"string"},"accountNumber":{"type":"string"},"accountName":{"type":"string"},"nubanAccount":{"type":"string"},"queueStatus":{"type":"string","enum":["PENDING","QUEUED"]}}},"AuthIntrospectionResponse":{"type":"object","properties":{"scopes":{"type":"array","items":{"type":"string"}},"businesses":{"type":"array","items":{"$ref":"#/components/schemas/BusinessResponse"}},"authMethod":{"type":"string","enum":["API_KEY"]},"environment":{"type":"string","enum":["SANDBOX","PROD"]}}},"BusinessResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"businessName":{"type":"string"}}}},"securitySchemes":{"Authorization":{"type":"http","name":"Authorization","in":"header","scheme":"bearer","bearerFormat":"JWT"}}}}