diff --git a/README.md b/README.md index 31b16a7..a8307d7 100644 --- a/README.md +++ b/README.md @@ -9,16 +9,32 @@ You can download the specification and make use of it on: - [SwaggerHub](https://swagger.io/tools/swaggerhub/) - [OpenAPI (Swagger) Editor](https://marketplace.visualstudio.com/items?itemName=42Crunch.vscode-openapi) +## Set up locally +- Clone repo + ```sh + git clone git@github.com:PaystackOSS/openapi.git + ``` +- Navigate to the cloned project and install dependencies + ```sh + cd openapi + pnpm install + ``` +- Start the server to view the spec in your browser + ```sh + pnpm dev + ``` + > [!NOTE] + > At the moment, the `paystack.yaml` file is the only spec that is automatically opened in your browser. If the spec doesn't open automatically in your browser, you can manually open http://localhost:3031 in your browser. + ## Components -There are three main folders of interest in this repo: -- `main`: This contains a comprehensive specification of the Paystack API: - - `resources`: This contains individual endpoints in each API category - - `responses`: This contains the models for responses - - `schemas`: This contains models for each endpoint - - `paystack.yml`: This is the entry point for all components +There are two top-level folders of interest in this repo: +- `src`: This contains the assets, scripts and basic .html for working and viewing the OpenAPI Specification (OAS) file. + - `assets`: This contains the Paystack OAS files: + - `base`: Default single OAS file that was used to rebuild codebase (to be removed) + - `openapi`: This contains the individual, manageable parts of the OAS + - `sdk`: This is a single file specification being used for client library generation. It contains just enough parameters for our client libraries (might be removed later). + - `use_cases`: This is a collection of specifications containing APIs for common use cases of the Paystack API. For example, the `wallet.yaml` contains the APIs needed to build a wallet feature into your application. The specifications in this directory are used to create the collections in our [Postman Workspace](https://www.postman.com/paystack-developers?tab=collections). - `dist`: Not all OpenAPI readers can read from different file sources, so we built a single file from all the components in the `main` directory. -- `sdk`: This is a single file specification being used for client library generation. It contains just enough parameters for our client libraries. -- `use_cases`: This is a collection of specifications containing APIs for common use cases of the Paystack API. For example, the `wallet.yaml` contains the APIs needed to build a wallet feature into your application. The specifications in this directory are used to create the collections in our [Postman Workspace](https://www.postman.com/paystack-developers?tab=collections). ## Contributing Here are some of the ways to contribute to this repository: @@ -27,7 +43,7 @@ Here are some of the ways to contribute to this repository: - Suggest an improvement ## Issues -Kindly [open an issue](https://github.com/PaystackOSS/openapi/issues) if you discover any bug or have problems using this library. +You can [open an issue](https://github.com/PaystackOSS/openapi/issues) if you discover any bug or have problems using this repo. ## License This repository is made available under the MIT license. Kindly read the [LICENSE](https://github.com/PaystackOSS/openapi/blob/main/LICENSE) file for more information. \ No newline at end of file diff --git a/dist/betting.yaml b/dist/betting.yaml index 7b92616..8d81ec1 100644 --- a/dist/betting.yaml +++ b/dist/betting.yaml @@ -1,17 +1,27 @@ openapi: 3.0.1 info: title: Create a betting platform - description: |- + description: | The OpenAPI specification for creating a betting platform using the [Paystack API](https://paystack.com/docs/api/). + ### Prerequisites + 1. Sign up on [Paystack](https://paystack.com/signup) to get your secret API key + 2. Set your API key as an environment variable on [Postman](https://learning.postman.com/docs/sending-requests/variables/) We strongly recommend using the [Bulk Transfer API](https://paystack.com/docs/transfers/bulk-transfers) for sending customers their winnings instead of using Single Transfers. version: 1.0.0 + contact: + email: devrel@paystack.com + license: + name: MIT + url: https://choosealicense.com/licenses/mit/ servers: - - url: 'https://api.paystack.co' + - url: https://api.paystack.co description: Base API endpoint +security: + - bearerAuth: [] paths: /transaction/initialize: post: @@ -22,112 +32,23 @@ paths: description: Create a new transaction requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1transaction~1initialize/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - email - - amount - properties: - email: - description: Customer's email address - type: string - example: person@email.com - amount: - description: 'Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR' - type: integer - example: 10247 - currency: - description: The transaction currency - type: string - enum: - - NGN - - GHS - - ZAR - - USD - reference: - description: 'Unique transaction reference. Only -, ., = and alphanumeric characters allowed.' - type: string - example: 123.uniq=ref- - callback_url: - description: Fully qualified url. Use this to override the callback url provided on the dashboard for this transaction - type: string - example: 'https://example.com/' - plan: - description: |- - If transaction is to create a subscription to a predefined plan, provide plan code here. - This would invalidate the value provided in amount - type: string - example: PLN_123wede - invoice_limit: - description: Number of times to charge customer during subscription to plan - type: integer - example: 10 - metadata: - description: Stringified JSON object of custom data - type: object - example: - metadata: - cart_id: 398 - custom_fields: - - display_name: Invoice ID - variable_name: Invoice ID - value: 209 - - display_name: Cart Items - variable_name: cart_items - value: '3 bananas, 12 mangoes' - channels: - description: An array of payment channels to control what channels you want to make available to the user to make a payment with - type: array - enum: - - card - - bank - - ussd - - qr - - eft - - mobile_money - - bank_transfer - split_code: - description: The split code of the transaction split - type: string - example: SPL_123AbZ - subaccount: - description: The code for the subaccount that owns the payment - type: string - example: ACCT_23abcdefgh - transaction_charge: - description: |- - A flat fee to charge the subaccount for a transaction. - This overrides the split percentage set when the subaccount was created - type: integer - example: 12300 - bearer: - description: The bearer of the transaction charge - type: string - enum: - - account - - subaccount + $ref: '#/components/schemas/TransactionInitialize' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransactionInitialize' responses: '200': - description: Request successful + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Initiailize Transaction: - value: - status: true - message: Authorization URL created - data: - authorization_url: 'https://checkout.paystack.com/spnajmit2hgi2c1' - access_code: spandaoende - reference: ad123ada + $ref: '#/components/schemas/TransactionInitializeResponse' + '400': + $ref: '#/components/responses/TransactionInitializeBadRequestResponse' '401': - $ref: '#/paths/~1bank~1resolve/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error /transaction/charge_authorization: @@ -138,110 +59,30 @@ paths: operationId: transaction_chargeAuthorization requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1transaction~1charge_authorization/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - email - - amount - - authorization_code - properties: - email: - description: Customer's email address used during the first transaction - type: string - example: person@email.com - amount: - description: 'Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR' - type: integer - example: 10247 - authorization_code: - description: Valid authorization code to charge - type: string - example: AUTH_CODE - reference: - description: 'Unique transaction reference. Only -, ., = and alphanumeric characters allowed.' - type: string - example: 123.uniq=ref-2 - currency: - description: The transaction currency - type: string - enum: - - NGN - - GHS - - ZAR - - USD - metadata: - description: Stringified JSON object of custom data - type: object - example: - cart_id: 398 - custom_fields: - - display_name: Invoice ID - variable_name: Invoice ID - value: 209 - - display_name: Cart Items - variable_name: cart_items - value: '3 bananas, 12 mangoes' - split_code: - description: The split code of the transaction split - type: string - example: SPL_123AbZ - subaccount: - description: The code for the subaccount that owns the payment - type: string - example: ACCT_23abcdefgh - transaction_charge: - description: |- - A flat fee to charge the subaccount for a transaction. - This overrides the split percentage set when the subaccount was created - type: integer - example: 12300 - bearer: - description: The bearer of the transaction charge - type: string - enum: - - account - - subaccount - queue: - description: 'If you are making a scheduled charge call, it is a good idea to queue them so the processing system does not get overloaded causing transaction processing errors.' - type: boolean + $ref: '#/components/schemas/TransactionChargeAuthorization' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransactionChargeAuthorization' responses: '200': - description: Request successful + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Charge Authorization: - value: - status: true - message: Charge attempted - data: - amount: 500000 - currency: NGN - reference: 123.uniq=ref-2 - metadata: - cart_id: 398 - custom_fields: - - display_name: Invoice ID - variable_name: Invoice ID - value: 209 - split_code: SPL_123AbZ - subaccount: ACCT_23abcdefgh + $ref: '#/components/schemas/ChargeAuthorizationResponse' '401': - $ref: '#/paths/~1bank~1resolve/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error - '/transaction/verify/{reference}': + /transaction/verify/{reference}: get: tags: - Transaction summary: Verify Transaction operationId: transaction_verify + description: Verify a previously initiated transaction using it's reference parameters: - name: reference in: path @@ -251,79 +92,41 @@ paths: type: string responses: '200': - description: Resource created + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Create Transfer Recipient: - $ref: '#/paths/~1transferrecipient/post/responses/201/content/application~1json/examples/Create%20Customer' + $ref: '#/components/schemas/VerifyResponse' '401': - $ref: '#/paths/~1bank~1resolve/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1bank~1resolve/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error /bank/resolve: get: tags: - - Verification + - Bank summary: Resolve Account Number - operationId: verification_resolveAccountNumber + operationId: bank_resolveAccountNumber parameters: - name: account_number in: query schema: type: integer - example: 0022728151 + example: 22728151 - name: bank_code in: query schema: type: integer - example: 51 + example: 63 responses: '200': - description: Resolve Account Number - content: - application/json: - schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Resolve Bank: - value: - status: true - message: Account number resolved - data: - account_number: 342391 - account_name: Doe Jane Loren - bank_id: 9 + $ref: '#/components/responses/VerificationResolveAccountNumberSuccess' '401': - description: Unauthorized operation - content: - application/json: - examples: - No-Authorization-Header: - value: - status: false - message: No Authorization Header was found - Bad-Authorization-Header: - value: - status: false - message: 'Format is Authorization Bearer [secret key]' - Invalid-Key: - value: - status: false - message: Invalid key - schema: - type: object - properties: - status: - type: boolean - message: - type: string + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1bank~1resolve/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error /transferrecipient: @@ -334,94 +137,67 @@ paths: operationId: transferrecipient_create requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1transferrecipient/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - type - - name - - account_number - - bank_code - properties: - type: - description: 'Recipient Type - nuban for NGN, mobile_money for MOMO in GHS, basa for ZAR and authorization for all.' - type: string - enum: - - nuban - - mobile_money - - basa - - authorization - name: - description: Recipient's name - type: string - example: Ada Lovelace - account_number: - description: Recipient's bank account number - type: string - example: '0000000000' - bank_code: - description: Recipient's bank code. You can get the list of Bank Codes by calling the List Banks endpoint - type: string - example: '011' - description: - description: A description for this recipient - type: string - example: Keeps our servers running - currency: - description: Currency for the account receiving the transfer - type: string - enum: - - NGN - - GHS - - ZAR - - KES - authorization_code: - description: An authorization code from a previous transaction - type: string - example: AUTH_CODE - metadata: - description: Stringified JSON object of custom data - type: string - example: | - {referrer_id: 123} + $ref: '#/components/schemas/TransferRecipientCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferRecipientCreate' responses: '201': - description: Transfer Recipient Created + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TransferRecipientCreateResponse' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + get: + tags: + - Transfer Recipient + summary: List Transfer Recipients + operationId: transferrecipient_list + parameters: + - in: query + name: use_cursor + description: A flag to indicate if cursor based pagination should be used + schema: + type: boolean + - in: query + name: next + description: | + An alphanumeric value returned for every cursor based retrieval, used to retrieve the next set of data + schema: + type: string + - in: query + name: previous + description: | + An alphanumeric value returned for every cursor based retrieval, used to retrieve the previous set of data + schema: + type: string + - in: query + name: per_page + schema: + type: integer + description: The number of records to fetch per request + - in: query + name: page + schema: + type: integer + description: The offset to retrieve data from + responses: + '200': + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Create Customer: - value: - status: true - message: Transfer recipient created successfully - data: - active: true - createdAt: 2022-09-16T08:31:43.321Z - currency: NGN - domain: live - id: 38770134 - integration: 463433 - metadata: - referrer_id: 123 - name: Ada Lovelace - recipient_code: RCP_2fl8jmb2v3kbleb - type: nuban - updatedAt: 2022-09-16T08:31:43.321Z - is_deleted: false - isDeleted: false - details: - authorization_code: null - account_number: 0 - account_name: Doe Jane Loren - bank_code: 9 - bank_name: First Bank of Nigeria + $ref: '#/components/schemas/TransferRecipientListResponse' '401': - $ref: '#/paths/~1bank~1resolve/get/responses/401' + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' default: description: Server error /transfer/bulk: @@ -432,86 +208,21 @@ paths: operationId: transfer_bulk requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1transfer~1bulk/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - batch - properties: - source: - description: Where should we transfer from? Only balance is allowed for now - type: string - transfers: - description: 'A list of transfer object. Each object should contain amount, recipient, and reference' - type: array - items: - type: object - required: - - source - - amount - - recipient - properties: - source: - description: Where should we transfer from? Only balance is allowed for now - type: string - example: balance - amount: - description: Amount to transfer in kobo if currency is NGN. pesewas if currency is GHS and cents for ZAR. - type: integer - example: 10234 - recipient: - description: The transfer recipient's code - type: string - example: RCP_CODE - reason: - description: The reason or narration for the transfer. - type: string - example: Good job - currency: - description: Specify the currency of the transfer. Defaults to NGN. - type: string - reference: - description: |- - If specified, the field should be a unique identifier (in lowercase) for the object. - Only -,_ and alphanumeric characters are allowed. - type: string - example: Transfer-123_unique + $ref: '#/components/schemas/TransferBulk' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferBulk' responses: '200': - description: Request successful + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Initiate Transfer: - value: - status: true - message: Transfer has been queued - data: - reference: on5hyz9poe - integration: 428626 - domain: test - amount: 3794800 - currency: NGN - source: balance - reason: Holiday Flexing - recipient: 6788170 - status: success - transfer_code: TRF_fiyxvgkh71e717b - id: 23070321 - failures: null - source_details: null - request: 654770431 - transferred_at: 2020-05-13T14:22:49.687Z - transfersessionid: [] - createdAt: 2020-05-13T14:22:49.687Z - updatedAt: 2020-05-13T14:22:49.687Z + $ref: '#/components/schemas/TransferBulkResponse' '401': - $ref: '#/paths/~1bank~1resolve/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error components: @@ -519,102 +230,898 @@ components: bearerAuth: type: http scheme: bearer + description: Secret key in the format sk_domain_xxxxxx schemas: - Customer: - allOf: - - type: object - required: - - email + Currency: + description: List of all support currencies + type: string + enum: + - GHS + - KES + - NGN + - ZAR + - USD + example: GHS + SplitSubaccounts: + type: object + properties: + subaccount: + description: Subaccount code of the customer or partner + type: string + share: + description: The percentage or flat quota of the customer or partner + type: string + SplitCreate: + type: object + description: | + Split configuration for transactions + properties: + name: + description: Name of the transaction split + type: string + type: + description: The type of transaction split you want to create. + type: string + enum: + - percentage + - flat + subaccounts: + description: A list of object containing subaccount code and number of shares + type: array + items: + $ref: '#/components/schemas/SplitSubaccounts' + currency: + description: The transaction currency + type: string + enum: + - NGN + - GHS + - ZAR + - USD + bearer_type: + description: This allows you specify how the transaction charge should be processed + type: string + enum: + - subaccount + - account + - all-proportional + - all + bearer_subaccount: + description: This is the subaccount code of the customer or partner that would bear the transaction charge if you specified subaccount as the bearer type + type: string + required: + - name + - type + - subaccounts + - currency + TransactionInitialize: + description: Initialize a transaction + type: object + required: + - email + - amount + properties: + email: + description: Customer's email address + type: string + amount: + description: | + Amount should be in smallest denomination of the currency. For example if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR + type: integer + currency: + $ref: '#/components/schemas/Currency' + reference: + description: Unique transaction reference. Only -, ., = and alphanumeric characters allowed. + type: string + channels: + description: An array of payment channels to control what channels you want to make available to the user to make a payment with + type: array + items: + type: string + enum: + - card + - bank + - ussd + - qr + - eft + - mobile_money + - bank_transfer + callback_url: + description: | + Fully qualified url, e.g. https://example.com/ to redirect your customers to after a successful payment. Use this to override the callback url provided on the dashboard for this transaction + type: string + plan: + description: | + If transaction is to create a subscription to a predefined plan, provide plan code here. + This would invalidate the value provided in amount + type: string + invoice_limit: + description: Number of times to charge customer during subscription to plan + type: integer + split_code: + description: The split code of the transaction split + type: string + split: + $ref: '#/components/schemas/SplitCreate' + subaccount: + description: The code for the subaccount that owns the payment + type: string + transaction_charge: + description: | + A flat fee to charge the subaccount for a transaction. + This overrides the split percentage set when the subaccount was created + type: string + bearer: + description: The bearer of the transaction charge + type: string + enum: + - account + - subaccount + label: + description: Used to replace the email address shown on the Checkout + type: string + metadata: + description: JSON object of custom data + type: object + example: + email: test@demo.com + amount: 10000 + TransactionInitializeResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object properties: - email: - description: Customer's email address + authorization_url: + type: string + access_code: type: string - - type: object + reference: + type: string + required: + - authorization_url + - access_code + - reference + required: + - status + - message + - data + ErrorMeta: + type: object + description: Extra details to help with a resolution of the error + properties: + nextStep: + type: string + description: A summarised solution for the error + TransactionInitializeBadRequestModel: + type: object + description: | + Error response returned when a transaction is initialized with incorrect parameters + properties: + status: + type: boolean + description: An indicator for the state of the request + message: + type: string + description: A short description of the error + meta: + $ref: '#/components/schemas/ErrorMeta' + type: + type: string + description: A tag to indicate the type of the error + enum: + - validation_error + - processor_error + - api_error + code: + type: string + description: The error code + errorCodeMappingNotFound: + type: boolean + description: An indicator for error mapping for the request + example: + status: false + message: Duplicate Transaction Reference + meta: + nextStep: Try and create the Transaction or Charge with a new reference + type: validation_error + code: duplicate_reference + errorCodeMappingNotFound: false + Error: + type: object + properties: + status: + type: boolean + description: An indicator for the state of the request + message: + type: string + description: A short description of the error + meta: + $ref: '#/components/schemas/ErrorMeta' + type: + type: string + description: A tag to indicate the type of the error + code: + type: string + description: The error code + enum: + - validation_error + - processor_error + - api_error + errorCodeMappingNotFound: + type: boolean + description: An indicator for error mapping for the request + TransactionChargeAuthorization: + type: object + required: + - email + - amount + - authorization_code + properties: + email: + description: Customer's email address + type: string + amount: + description: Amount in the lower denomination of your currency + type: integer + authorization_code: + description: Valid authorization code to charge + type: string + reference: + description: Unique transaction reference. Only -, ., = and alphanumeric characters allowed. + type: string + currency: + $ref: '#/components/schemas/Currency' + split_code: + description: The split code of the transaction split + type: string + split: + $ref: '#/components/schemas/SplitCreate' + subaccount: + description: The code for the subaccount that owns the payment + type: string + transaction_charge: + description: |- + A flat fee to charge the subaccount for a transaction. + This overrides the split percentage set when the subaccount was created + type: string + bearer: + description: The bearer of the transaction charge + type: string + enum: + - account + - subaccount + metadata: + description: Stringified JSON object of custom data + type: string + queue: + description: If you are making a scheduled charge call, it is a good idea to queue them so the processing system does not get overloaded causing transaction processing errors. + type: boolean + example: + email: jb@email.com + amount: 30000 + authorization_code: AUTH_df1l5ehnym + ChargeAuthorizationResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object properties: - first_name: - description: Customer's first name + amount: + type: integer + currency: + type: string + transaction_date: type: string - example: Some - last_name: - description: Customer's last name + status: type: string - example: Body - phone: - description: Customer's phone number + reference: + type: string + domain: type: string - example: '+2348123456789' metadata: - description: Stringified JSON object of custom data type: string - - type: object - required: - - authorization_code - properties: - authorization_code: - description: Customer's authorization code to be deactivated + gateway_response: + type: string + message: type: string - - type: object + nullable: true + channel: + type: string + ip_address: + nullable: true + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + nullable: true + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + metadata: + type: object + properties: + calling_code: + type: string + nullable: true + risk_action: + type: string + international_format_phone: + type: string + nullable: true + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + nullable: true + id: + type: integer required: + - amount + - currency + - transaction_date + - status + - reference + - domain + - metadata + - gateway_response + - message + - channel + - ip_address + - log + - fees + - authorization - customer + - plan + - id + required: + - status + - message + - data + VerifyResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + receipt_number: + type: string + nullable: true + amount: + type: integer + message: + type: string + nullable: true + gateway_response: + type: string + paid_at: + type: string + nullable: true + created_at: + type: string + channel: + type: string + currency: + type: string + ip_address: + type: string + metadata: + anyOf: + - type: string + - type: object + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + additionalProperties: false + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + nullable: true + fees_split: + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + bin: + nullable: true + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + nullable: true + receiver_bank_account_number: + nullable: true + receiver_bank: + nullable: true customer: - description: 'Customer''s code, or email address' - type: string - risk_action: - description: | - One of the possible risk actions [ default, allow, deny ]. allow to whitelist. - deny to blacklist. Customers start with a default risk action. - type: string - enum: - - default - - allow - - deny - - type: object + type: object + properties: + id: + type: integer + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + metadata: + nullable: true + risk_action: + type: string + international_format_phone: + type: string + nullable: true + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + type: string + nullable: true + split: + type: object + order_id: + nullable: true + paidAt: + type: string + nullable: true + createdAt: + type: string + requested_amount: + type: integer + pos_transaction_data: + nullable: true + source: + nullable: true + fees_breakdown: + nullable: true + connect: + nullable: true + transaction_date: + type: string + plan_object: + type: object + properties: + id: + type: integer + name: + type: string + plan_code: + type: string + description: + nullable: true + amount: + type: integer + interval: + type: string + send_invoices: + type: boolean + send_sms: + type: boolean + currency: + type: string + oneOf: + - allOf: + - minProperties: 0 + - {} + - allOf: + - not: + minProperties: 0 + - required: + - id + - name + - plan_code + - description + - amount + - interval + - send_invoices + - send_sms + - currency + additionalProperties: false + subaccount: + type: object required: - - type - - country - - bvn - - bank_code - - account_number + - id + - domain + - status + - reference + - receipt_number + - amount + - message + - gateway_response + - paid_at + - created_at + - channel + - currency + - ip_address + - metadata + - log + - fees + - fees_split + - authorization + - customer + - plan + - split + - order_id + - paidAt + - createdAt + - requested_amount + - pos_transaction_data + - source + - fees_breakdown + - connect + - transaction_date + - plan_object + - subaccount + required: + - status + - message + - data + VerificationResolveAccountNumberResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object properties: - type: - description: Predefined types of identification. + account_number: type: string - enum: - - bvn - - bank_account - country: - description: Two-letter country code of identification issuer + account_name: type: string - example: NG - bvn: - description: Customer's Bank Verification Number + bank_id: type: integer - example: 0123456789 - bank_code: - description: 'You can get the list of bank codes by calling the List Banks endpoint (https://api.paystack.co/bank).' + required: + - account_number + - account_name + - bank_id + required: + - status + - message + - data + TransferRecipientListResponseArray: + type: object + properties: + active: + type: boolean + createdAt: + type: string + currency: + type: string + description: + type: string + domain: + type: string + email: + type: string + nullable: true + id: + type: integer + integration: + type: integer + metadata: + type: object + nullable: true + name: + type: string + recipient_code: + type: string + type: + type: string + updatedAt: + type: string + is_deleted: + type: boolean + isDeleted: + type: boolean + details: + type: object + properties: + authorization_code: type: string - example: '007' + nullable: true account_number: - description: Customer's bank account number. type: string - example: '0111111111' - first_name: - description: Customer's first name + nullable: true + account_name: type: string - example: Uchenna - last_name: - description: Customer's last name + nullable: true + bank_code: type: string - example: Okoro - Error: + bank_name: + type: string + required: + - authorization_code + - account_number + - account_name + - bank_code + - bank_name + required: + - active + - createdAt + - currency + - description + - domain + - email + - id + - integration + - name + - recipient_code + - type + - updatedAt + - is_deleted + - isDeleted + - details + TransferRecipientListResponse: type: object properties: status: type: boolean message: type: string - Response: + data: + type: array + items: + $ref: '#/components/schemas/TransferRecipientListResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + TransferRecipientCreate: + type: object + required: + - type + - name + - account_number + - bank_code + properties: + type: + description: Recipient Type + default: nuban + type: string + name: + description: Recipient's name + type: string + account_number: + description: Recipient's bank account number + type: string + bank_code: + description: Recipient's bank code. You can get the list of Bank Codes by calling the List Banks endpoint + type: string + description: + description: A description for this recipient + type: string + currency: + description: Currency for the account receiving the transfer + type: string + authorization_code: + description: An authorization code from a previous transaction + type: string + metadata: + description: JSON object of custom data + type: object + TransferRecipientCreateResponse: type: object properties: status: @@ -623,49 +1130,189 @@ components: type: string data: type: object + properties: + active: + type: boolean + createdAt: + type: string + currency: + type: string + description: + type: string + domain: + type: string + email: + type: string + id: + type: integer + integration: + type: integer + metadata: + type: object + nullable: true + name: + type: string + recipient_code: + type: string + type: + type: string + updatedAt: + type: string + is_deleted: + type: boolean + isDeleted: + type: boolean + details: + type: object + properties: + authorization_code: + type: string + nullable: true + account_number: + type: string + nullable: true + account_name: + type: string + nullable: true + bank_code: + type: string + bank_name: + type: string + required: + - authorization_code + - account_number + - account_name + - bank_code + - bank_name + required: + - active + - createdAt + - currency + - description + - domain + - email + - id + - integration + - name + - recipient_code + - type + - updatedAt + - is_deleted + - isDeleted + - details + required: + - status + - message + - data + TransferBase: + type: object + required: + - amount + - recipient + - reference + properties: + amount: + description: Amount to transfer in kobo if currency is NGN and pesewas if currency is GHS. + type: integer + recipient: + description: The transfer recipient's code + type: string + reference: + description: | + To ensure idempotency, you need to provide e a unique identifier for the request. The identifier should be a lowercase alphanumeric string with only -,_ symbols allowed. + type: string + minimum: 16 + reason: + description: The reason or narration for the transfer. + type: string + TransferBulk: + type: object + required: + - source + - transfers + properties: + source: + description: Where should we transfer from? Only balance is allowed for now + type: string + currency: + description: Specify the currency of the transfer. + type: string + default: NGN + enum: + - NGN + - ZAR + - KES + - GHS + transfers: + description: A list of transfer object + type: array + items: + $ref: '#/components/schemas/TransferBase' + TransferBulkResponseArray: + type: object + properties: + reference: + type: string + recipient: + type: string + amount: + type: integer + transfer_code: + type: string + currency: + type: string + status: + type: string + required: + - reference + - recipient + - amount + - transfer_code + - currency + - status + TransferBulkResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/TransferBulkResponseArray' + required: + - status + - message + - data responses: - Ok: - description: Successful operation - content: - application/json: - schema: - type: object - properties: - status: - type: boolean - message: - type: string - data: - type: object - Created: - description: Resource created + TransactionInitializeBadRequestResponse: + description: Responses from the Transaction Initialize endpoint content: application/json: schema: - $ref: '#/components/schemas/Response' - NotFound: - description: Entity not found + $ref: '#/components/schemas/TransactionInitializeBadRequestModel' + Unauthorized: + description: Unauthorized operation content: application/json: schema: $ref: '#/components/schemas/Error' example: status: false - message: Entity not found - Unauthorized: - description: Unauthorized operation + message: Invalid key + NotFound: + description: Entity not found content: application/json: schema: $ref: '#/components/schemas/Error' example: status: false - message: Invalid key - GeneralError: - description: General Error + message: Entity not found + VerificationResolveAccountNumberSuccess: + description: Verification Resolve Account Number response content: application/json: schema: - $ref: '#/components/schemas/Error' -security: - - bearerAuth: [] + $ref: '#/components/schemas/VerificationResolveAccountNumberResponse' diff --git a/dist/lending.yaml b/dist/lending.yaml index 8e5fc17..bb9d1db 100644 --- a/dist/lending.yaml +++ b/dist/lending.yaml @@ -1,17 +1,28 @@ openapi: 3.0.1 info: title: Create a lending application - description: |- + description: | The OpenAPI specification for creating a marketplace application using the [Paystack API](https://paystack.com/docs/api/). + ### Prerequisites + 1. Sign up on [Paystack](https://paystack.com/signup) to get your secret API key + 2. Set your API key as an environment variable on [Postman](https://learning.postman.com/docs/sending-requests/variables/) + The [Partial Debits](https://paystack.com/docs/payments/partial-debits) feature allows you to recover some revenue that would have otherwise been lost. It is currently available on request. version: 1.0.0 + contact: + email: devrel@paystack.com + license: + name: MIT + url: https://choosealicense.com/licenses/mit/ servers: - - url: 'https://api.paystack.co' + - url: https://api.paystack.co description: Base API endpoint +security: + - bearerAuth: [] paths: /transaction/initialize: post: @@ -22,112 +33,23 @@ paths: description: Create a new transaction requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1transaction~1initialize/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - email - - amount - properties: - email: - description: Customer's email address - type: string - example: person@email.com - amount: - description: 'Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR' - type: integer - example: 10247 - currency: - description: The transaction currency - type: string - enum: - - NGN - - GHS - - ZAR - - USD - reference: - description: 'Unique transaction reference. Only -, ., = and alphanumeric characters allowed.' - type: string - example: 123.uniq=ref- - callback_url: - description: Fully qualified url. Use this to override the callback url provided on the dashboard for this transaction - type: string - example: 'https://example.com/' - plan: - description: |- - If transaction is to create a subscription to a predefined plan, provide plan code here. - This would invalidate the value provided in amount - type: string - example: PLN_123wede - invoice_limit: - description: Number of times to charge customer during subscription to plan - type: integer - example: 10 - metadata: - description: Stringified JSON object of custom data - type: object - example: - metadata: - cart_id: 398 - custom_fields: - - display_name: Invoice ID - variable_name: Invoice ID - value: 209 - - display_name: Cart Items - variable_name: cart_items - value: '3 bananas, 12 mangoes' - channels: - description: An array of payment channels to control what channels you want to make available to the user to make a payment with - type: array - enum: - - card - - bank - - ussd - - qr - - eft - - mobile_money - - bank_transfer - split_code: - description: The split code of the transaction split - type: string - example: SPL_123AbZ - subaccount: - description: The code for the subaccount that owns the payment - type: string - example: ACCT_23abcdefgh - transaction_charge: - description: |- - A flat fee to charge the subaccount for a transaction. - This overrides the split percentage set when the subaccount was created - type: integer - example: 12300 - bearer: - description: The bearer of the transaction charge - type: string - enum: - - account - - subaccount + $ref: '#/components/schemas/TransactionInitialize' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransactionInitialize' responses: '200': - description: Request successful + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Initiailize Transaction: - value: - status: true - message: Authorization URL created - data: - authorization_url: 'https://checkout.paystack.com/spnajmit2hgi2c1' - access_code: spandaoende - reference: ad123ada + $ref: '#/components/schemas/TransactionInitializeResponse' + '400': + $ref: '#/components/responses/TransactionInitializeBadRequestResponse' '401': - $ref: '#/paths/~1transfer/post/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error /transaction/charge_authorization: @@ -138,102 +60,21 @@ paths: operationId: transaction_chargeAuthorization requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1transaction~1charge_authorization/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - email - - amount - - authorization_code - properties: - email: - description: Customer's email address used during the first transaction - type: string - example: person@email.com - amount: - description: 'Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR' - type: integer - example: 10247 - authorization_code: - description: Valid authorization code to charge - type: string - example: AUTH_CODE - reference: - description: 'Unique transaction reference. Only -, ., = and alphanumeric characters allowed.' - type: string - example: 123.uniq=ref-2 - currency: - description: The transaction currency - type: string - enum: - - NGN - - GHS - - ZAR - - USD - metadata: - description: Stringified JSON object of custom data - type: object - example: - cart_id: 398 - custom_fields: - - display_name: Invoice ID - variable_name: Invoice ID - value: 209 - - display_name: Cart Items - variable_name: cart_items - value: '3 bananas, 12 mangoes' - split_code: - description: The split code of the transaction split - type: string - example: SPL_123AbZ - subaccount: - description: The code for the subaccount that owns the payment - type: string - example: ACCT_23abcdefgh - transaction_charge: - description: |- - A flat fee to charge the subaccount for a transaction. - This overrides the split percentage set when the subaccount was created - type: integer - example: 12300 - bearer: - description: The bearer of the transaction charge - type: string - enum: - - account - - subaccount - queue: - description: 'If you are making a scheduled charge call, it is a good idea to queue them so the processing system does not get overloaded causing transaction processing errors.' - type: boolean + $ref: '#/components/schemas/TransactionChargeAuthorization' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransactionChargeAuthorization' responses: '200': - description: Request successful + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Charge Authorization: - value: - status: true - message: Charge attempted - data: - amount: 500000 - currency: NGN - reference: 123.uniq=ref-2 - metadata: - cart_id: 398 - custom_fields: - - display_name: Invoice ID - variable_name: Invoice ID - value: 209 - split_code: SPL_123AbZ - subaccount: ACCT_23abcdefgh + $ref: '#/components/schemas/ChargeAuthorizationResponse' '401': - $ref: '#/paths/~1transfer/post/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error /transaction/partial_debit: @@ -244,140 +85,47 @@ paths: operationId: transaction_partialDebit requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1transaction~1partial_debit/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - email - - amount - - authorization_code - - currency - properties: - email: - description: Customer's email address - type: string - example: person@email.com - amount: - description: 'Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR' - type: integer - example: 10247 - authorization_code: - description: Valid authorization code to charge - type: string - example: AUTH_CODE - currency: - description: The transaction currency - type: string - enum: - - NGN - - GHS - - ZAR - - USD - reference: - description: 'Unique transaction reference. Only -, ., = and alphanumeric characters allowed.' - type: string - example: 123.uniq=ref-3 - at_least: - description: Minimum amount to charge - type: integer - example: 5500 + $ref: '#/components/schemas/TransactionPartialDebit' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransactionPartialDebit' responses: '200': - description: Request successful + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Partial Debit: - value: - status: true - message: Charge attempted - data: - amount: 10247 - currency: NGN - transaction_date: '2022-09-22T07:36:03.000Z' - status: success - reference: dycmjmd23f1hygq - domain: test - metadata: '' - gateway_response: Approved - message: null - channel: card - ip_address: null - log: null - fees: 52 - authorization: - authorization_code: AUTH_15qn6qmeip - bin: '408408' - last4: '4081' - exp_month: '12' - exp_year: '2030' - channel: card - card_type: 'visa ' - bank: TEST BANK - country_code: NG - brand: visa - reusable: true - signature: SIG_yEXu7dLBeqG0kU7g95Ke - account_name: null - customer: - id: 54219771 - first_name: null - last_name: null - email: some.other@body.com - customer_code: CUS_toq66lmva87v66g - phone: null - metadata: null - risk_action: default - international_format_phone: null - plan: 0 - requested_amount: 10247 - id: 2122110499 + $ref: '#/components/schemas/TransactionPartialDebitResponse' '401': - $ref: '#/paths/~1transfer/post/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error /bank/resolve: get: tags: - - Verification + - Bank summary: Resolve Account Number - operationId: verification_resolveAccountNumber + operationId: bank_resolveAccountNumber parameters: - name: account_number in: query schema: type: integer - example: 0022728151 + example: 22728151 - name: bank_code in: query schema: type: integer - example: 51 + example: 63 responses: '200': - description: Resolve Account Number - content: - application/json: - schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Resolve Bank: - value: - status: true - message: Account number resolved - data: - account_number: 342391 - account_name: Doe Jane Loren - bank_id: 9 + $ref: '#/components/responses/VerificationResolveAccountNumberSuccess' '401': - $ref: '#/paths/~1transfer/post/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1transfer/post/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error /transferrecipient: @@ -388,94 +136,67 @@ paths: operationId: transferrecipient_create requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1transferrecipient/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - type - - name - - account_number - - bank_code - properties: - type: - description: 'Recipient Type - nuban for NGN, mobile_money for MOMO in GHS, basa for ZAR and authorization for all.' - type: string - enum: - - nuban - - mobile_money - - basa - - authorization - name: - description: Recipient's name - type: string - example: Ada Lovelace - account_number: - description: Recipient's bank account number - type: string - example: '0000000000' - bank_code: - description: Recipient's bank code. You can get the list of Bank Codes by calling the List Banks endpoint - type: string - example: '011' - description: - description: A description for this recipient - type: string - example: Keeps our servers running - currency: - description: Currency for the account receiving the transfer - type: string - enum: - - NGN - - GHS - - ZAR - - KES - authorization_code: - description: An authorization code from a previous transaction - type: string - example: AUTH_CODE - metadata: - description: Stringified JSON object of custom data - type: string - example: | - {referrer_id: 123} + $ref: '#/components/schemas/TransferRecipientCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferRecipientCreate' responses: '201': - description: Transfer Recipient Created + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TransferRecipientCreateResponse' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + get: + tags: + - Transfer Recipient + summary: List Transfer Recipients + operationId: transferrecipient_list + parameters: + - in: query + name: use_cursor + description: A flag to indicate if cursor based pagination should be used + schema: + type: boolean + - in: query + name: next + description: | + An alphanumeric value returned for every cursor based retrieval, used to retrieve the next set of data + schema: + type: string + - in: query + name: previous + description: | + An alphanumeric value returned for every cursor based retrieval, used to retrieve the previous set of data + schema: + type: string + - in: query + name: per_page + schema: + type: integer + description: The number of records to fetch per request + - in: query + name: page + schema: + type: integer + description: The offset to retrieve data from + responses: + '200': + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Create Customer: - value: - status: true - message: Transfer recipient created successfully - data: - active: true - createdAt: 2022-09-16T08:31:43.321Z - currency: NGN - domain: live - id: 38770134 - integration: 463433 - metadata: - referrer_id: 123 - name: Ada Lovelace - recipient_code: RCP_2fl8jmb2v3kbleb - type: nuban - updatedAt: 2022-09-16T08:31:43.321Z - is_deleted: false - isDeleted: false - details: - authorization_code: null - account_number: 0 - account_name: Doe Jane Loren - bank_code: 9 - bank_name: First Bank of Nigeria + $ref: '#/components/schemas/TransferRecipientListResponse' '401': - $ref: '#/paths/~1transfer/post/responses/401' + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' default: description: Server error /transfer: @@ -486,97 +207,100 @@ paths: operationId: transfer_initiate requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1transfer/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - source - - amount - - recipient - properties: - source: - description: Where should we transfer from? Only balance is allowed for now - type: string - example: balance - amount: - description: Amount to transfer in kobo if currency is NGN. pesewas if currency is GHS and cents for ZAR. - type: integer - example: 10234 - recipient: - description: The transfer recipient's code - type: string - example: RCP_CODE - reason: - description: The reason or narration for the transfer. - type: string - example: Good job - currency: - description: Specify the currency of the transfer. Defaults to NGN. - type: string - reference: - description: |- - If specified, the field should be a unique identifier (in lowercase) for the object. - Only -,_ and alphanumeric characters are allowed. - type: string - example: Transfer-123_unique + $ref: '#/components/schemas/TransferInitiate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferInitiate' responses: '200': - description: Request successful + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Initiate Transfer: - value: - status: true - message: Transfer has been queued - data: - reference: on5hyz9poe - integration: 428626 - domain: test - amount: 3794800 - currency: NGN - source: balance - reason: Holiday Flexing - recipient: 6788170 - status: success - transfer_code: TRF_fiyxvgkh71e717b - id: 23070321 - failures: null - source_details: null - request: 654770431 - transferred_at: 2020-05-13T14:22:49.687Z - transfersessionid: [] - createdAt: 2020-05-13T14:22:49.687Z - updatedAt: 2020-05-13T14:22:49.687Z + $ref: '#/components/schemas/TransferCreateResponse' '401': - description: Unauthorized operation + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + get: + tags: + - Transfer + summary: List Transfers + operationId: transfer_list + parameters: + - in: query + name: use_cursor + description: A flag to indicate if cursor based pagination should be used + schema: + type: boolean + - in: query + name: next + description: | + An alphanumeric value returned for every cursor based retrieval, used to retrieve the next set of data + schema: + type: string + - in: query + name: previous + description: | + An alphanumeric value returned for every cursor based retrieval, used to retrieve the previous set of data + schema: + type: string + - in: query + name: per_page + schema: + type: integer + description: The number of records to fetch per request + - in: query + name: page + schema: + type: integer + description: The offset to retrieve data from + - in: query + name: from + description: The start date + schema: + type: string + format: date-time + - in: query + name: to + description: The end date + schema: + type: string + format: date-time + - in: query + name: recipient + description: Filter transfer by the recipient code + schema: + type: string + - in: query + name: status + description: Filter transfer by status + schema: + type: string + default: pending + enum: + - pending + - success + - failed + - otp + - abandoned + - reversed + - blocked + - rejected + - received + responses: + '200': + description: '' content: application/json: - examples: - No-Authorization-Header: - value: - status: false - message: No Authorization Header was found - Bad-Authorization-Header: - value: - status: false - message: 'Format is Authorization Bearer [secret key]' - Invalid-Key: - value: - status: false - message: Invalid key schema: - type: object - properties: - status: - type: boolean - message: - type: string + $ref: '#/components/schemas/TransferListResponse' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' default: description: Server error components: @@ -584,102 +308,282 @@ components: bearerAuth: type: http scheme: bearer + description: Secret key in the format sk_domain_xxxxxx schemas: - Customer: - allOf: - - type: object - required: - - email - properties: - email: - description: Customer's email address - type: string - - type: object - properties: - first_name: - description: Customer's first name - type: string - example: Some - last_name: - description: Customer's last name - type: string - example: Body - phone: - description: Customer's phone number - type: string - example: '+2348123456789' - metadata: - description: Stringified JSON object of custom data - type: string - - type: object - required: - - authorization_code + Currency: + description: List of all support currencies + type: string + enum: + - GHS + - KES + - NGN + - ZAR + - USD + example: GHS + SplitSubaccounts: + type: object + properties: + subaccount: + description: Subaccount code of the customer or partner + type: string + share: + description: The percentage or flat quota of the customer or partner + type: string + SplitCreate: + type: object + description: | + Split configuration for transactions + properties: + name: + description: Name of the transaction split + type: string + type: + description: The type of transaction split you want to create. + type: string + enum: + - percentage + - flat + subaccounts: + description: A list of object containing subaccount code and number of shares + type: array + items: + $ref: '#/components/schemas/SplitSubaccounts' + currency: + description: The transaction currency + type: string + enum: + - NGN + - GHS + - ZAR + - USD + bearer_type: + description: This allows you specify how the transaction charge should be processed + type: string + enum: + - subaccount + - account + - all-proportional + - all + bearer_subaccount: + description: This is the subaccount code of the customer or partner that would bear the transaction charge if you specified subaccount as the bearer type + type: string + required: + - name + - type + - subaccounts + - currency + TransactionInitialize: + description: Initialize a transaction + type: object + required: + - email + - amount + properties: + email: + description: Customer's email address + type: string + amount: + description: | + Amount should be in smallest denomination of the currency. For example if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR + type: integer + currency: + $ref: '#/components/schemas/Currency' + reference: + description: Unique transaction reference. Only -, ., = and alphanumeric characters allowed. + type: string + channels: + description: An array of payment channels to control what channels you want to make available to the user to make a payment with + type: array + items: + type: string + enum: + - card + - bank + - ussd + - qr + - eft + - mobile_money + - bank_transfer + callback_url: + description: | + Fully qualified url, e.g. https://example.com/ to redirect your customers to after a successful payment. Use this to override the callback url provided on the dashboard for this transaction + type: string + plan: + description: | + If transaction is to create a subscription to a predefined plan, provide plan code here. + This would invalidate the value provided in amount + type: string + invoice_limit: + description: Number of times to charge customer during subscription to plan + type: integer + split_code: + description: The split code of the transaction split + type: string + split: + $ref: '#/components/schemas/SplitCreate' + subaccount: + description: The code for the subaccount that owns the payment + type: string + transaction_charge: + description: | + A flat fee to charge the subaccount for a transaction. + This overrides the split percentage set when the subaccount was created + type: string + bearer: + description: The bearer of the transaction charge + type: string + enum: + - account + - subaccount + label: + description: Used to replace the email address shown on the Checkout + type: string + metadata: + description: JSON object of custom data + type: object + example: + email: test@demo.com + amount: 10000 + TransactionInitializeResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object properties: - authorization_code: - description: Customer's authorization code to be deactivated + authorization_url: type: string - - type: object - required: - - customer - properties: - customer: - description: 'Customer''s code, or email address' + access_code: type: string - risk_action: - description: | - One of the possible risk actions [ default, allow, deny ]. allow to whitelist. - deny to blacklist. Customers start with a default risk action. + reference: type: string - enum: - - default - - allow - - deny - - type: object required: - - type - - country - - bvn - - bank_code - - account_number - properties: - type: - description: Predefined types of identification. - type: string - enum: - - bvn - - bank_account - country: - description: Two-letter country code of identification issuer - type: string - example: NG - bvn: - description: Customer's Bank Verification Number - type: integer - example: 0123456789 - bank_code: - description: 'You can get the list of bank codes by calling the List Banks endpoint (https://api.paystack.co/bank).' - type: string - example: '007' - account_number: - description: Customer's bank account number. - type: string - example: '0111111111' - first_name: - description: Customer's first name - type: string - example: Uchenna - last_name: - description: Customer's last name - type: string - example: Okoro + - authorization_url + - access_code + - reference + required: + - status + - message + - data + ErrorMeta: + type: object + description: Extra details to help with a resolution of the error + properties: + nextStep: + type: string + description: A summarised solution for the error + TransactionInitializeBadRequestModel: + type: object + description: | + Error response returned when a transaction is initialized with incorrect parameters + properties: + status: + type: boolean + description: An indicator for the state of the request + message: + type: string + description: A short description of the error + meta: + $ref: '#/components/schemas/ErrorMeta' + type: + type: string + description: A tag to indicate the type of the error + enum: + - validation_error + - processor_error + - api_error + code: + type: string + description: The error code + errorCodeMappingNotFound: + type: boolean + description: An indicator for error mapping for the request + example: + status: false + message: Duplicate Transaction Reference + meta: + nextStep: Try and create the Transaction or Charge with a new reference + type: validation_error + code: duplicate_reference + errorCodeMappingNotFound: false Error: type: object properties: status: type: boolean + description: An indicator for the state of the request message: type: string - Response: + description: A short description of the error + meta: + $ref: '#/components/schemas/ErrorMeta' + type: + type: string + description: A tag to indicate the type of the error + code: + type: string + description: The error code + enum: + - validation_error + - processor_error + - api_error + errorCodeMappingNotFound: + type: boolean + description: An indicator for error mapping for the request + TransactionChargeAuthorization: + type: object + required: + - email + - amount + - authorization_code + properties: + email: + description: Customer's email address + type: string + amount: + description: Amount in the lower denomination of your currency + type: integer + authorization_code: + description: Valid authorization code to charge + type: string + reference: + description: Unique transaction reference. Only -, ., = and alphanumeric characters allowed. + type: string + currency: + $ref: '#/components/schemas/Currency' + split_code: + description: The split code of the transaction split + type: string + split: + $ref: '#/components/schemas/SplitCreate' + subaccount: + description: The code for the subaccount that owns the payment + type: string + transaction_charge: + description: |- + A flat fee to charge the subaccount for a transaction. + This overrides the split percentage set when the subaccount was created + type: string + bearer: + description: The bearer of the transaction charge + type: string + enum: + - account + - subaccount + metadata: + description: Stringified JSON object of custom data + type: string + queue: + description: If you are making a scheduled charge call, it is a good idea to queue them so the processing system does not get overloaded causing transaction processing errors. + type: boolean + example: + email: jb@email.com + amount: 30000 + authorization_code: AUTH_df1l5ehnym + ChargeAuthorizationResponse: type: object properties: status: @@ -688,49 +592,980 @@ components: type: string data: type: object - responses: - Ok: - description: Successful operation - content: - application/json: - schema: - type: object - properties: - status: - type: boolean - message: - type: string - data: - type: object - Created: - description: Resource created - content: - application/json: - schema: - $ref: '#/components/schemas/Response' - NotFound: - description: Entity not found - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - status: false - message: Entity not found - Unauthorized: - description: Unauthorized operation - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - status: false - message: Invalid key - GeneralError: - description: General Error - content: - application/json: + properties: + amount: + type: integer + currency: + type: string + transaction_date: + type: string + status: + type: string + reference: + type: string + domain: + type: string + metadata: + type: string + gateway_response: + type: string + message: + type: string + nullable: true + channel: + type: string + ip_address: + nullable: true + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + nullable: true + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + metadata: + type: object + properties: + calling_code: + type: string + nullable: true + risk_action: + type: string + international_format_phone: + type: string + nullable: true + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + nullable: true + id: + type: integer + required: + - amount + - currency + - transaction_date + - status + - reference + - domain + - metadata + - gateway_response + - message + - channel + - ip_address + - log + - fees + - authorization + - customer + - plan + - id + required: + - status + - message + - data + TransactionPartialDebit: + type: object + required: + - email + - amount + - authorization_code + - currency + properties: + email: + description: Customer's email address + type: string + amount: + description: Specified in the lowest denomination of your currency + type: integer + format: int64 + authorization_code: + description: Valid authorization code to charge + type: string + currency: + $ref: '#/components/schemas/Currency' + at_least: + description: Minimum amount to charge + type: string + reference: + description: Unique transaction reference. Only -, ., = and alphanumeric characters allowed. + type: string + example: + email: tap@email.com + amount: 40510 + authorization_code: AUTH_df1l5ehnym + currency: ZAR + TransactionPartialDebitResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + amount: + type: integer + currency: + type: string + transaction_date: + type: string + status: + type: string + reference: + type: string + domain: + type: string + metadata: + type: string + gateway_response: + type: string + message: + nullable: true + channel: + type: string + ip_address: + nullable: true + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + metadata: + type: object + nullable: true + risk_action: + type: string + international_format_phone: + type: string + nullable: true + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + type: integer + requested_amount: + type: integer + id: + type: integer + required: + - amount + - currency + - transaction_date + - status + - reference + - domain + - gateway_response + - message + - channel + - ip_address + - log + - fees + - authorization + - customer + - metadata + - plan + - requested_amount + - id + required: + - status + - message + - data + VerificationResolveAccountNumberResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + account_number: + type: string + account_name: + type: string + bank_id: + type: integer + required: + - account_number + - account_name + - bank_id + required: + - status + - message + - data + TransferRecipientListResponseArray: + type: object + properties: + active: + type: boolean + createdAt: + type: string + currency: + type: string + description: + type: string + domain: + type: string + email: + type: string + nullable: true + id: + type: integer + integration: + type: integer + metadata: + type: object + nullable: true + name: + type: string + recipient_code: + type: string + type: + type: string + updatedAt: + type: string + is_deleted: + type: boolean + isDeleted: + type: boolean + details: + type: object + properties: + authorization_code: + type: string + nullable: true + account_number: + type: string + nullable: true + account_name: + type: string + nullable: true + bank_code: + type: string + bank_name: + type: string + required: + - authorization_code + - account_number + - account_name + - bank_code + - bank_name + required: + - active + - createdAt + - currency + - description + - domain + - email + - id + - integration + - name + - recipient_code + - type + - updatedAt + - is_deleted + - isDeleted + - details + TransferRecipientListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/TransferRecipientListResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + TransferRecipientCreate: + type: object + required: + - type + - name + - account_number + - bank_code + properties: + type: + description: Recipient Type + default: nuban + type: string + name: + description: Recipient's name + type: string + account_number: + description: Recipient's bank account number + type: string + bank_code: + description: Recipient's bank code. You can get the list of Bank Codes by calling the List Banks endpoint + type: string + description: + description: A description for this recipient + type: string + currency: + description: Currency for the account receiving the transfer + type: string + authorization_code: + description: An authorization code from a previous transaction + type: string + metadata: + description: JSON object of custom data + type: object + TransferRecipientCreateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + active: + type: boolean + createdAt: + type: string + currency: + type: string + description: + type: string + domain: + type: string + email: + type: string + id: + type: integer + integration: + type: integer + metadata: + type: object + nullable: true + name: + type: string + recipient_code: + type: string + type: + type: string + updatedAt: + type: string + is_deleted: + type: boolean + isDeleted: + type: boolean + details: + type: object + properties: + authorization_code: + type: string + nullable: true + account_number: + type: string + nullable: true + account_name: + type: string + nullable: true + bank_code: + type: string + bank_name: + type: string + required: + - authorization_code + - account_number + - account_name + - bank_code + - bank_name + required: + - active + - createdAt + - currency + - description + - domain + - email + - id + - integration + - name + - recipient_code + - type + - updatedAt + - is_deleted + - isDeleted + - details + required: + - status + - message + - data + TransferListResponseArray: + type: object + properties: + amount: + type: integer + createdAt: + type: string + currency: + type: string + domain: + type: string + failures: + nullable: true + id: + type: integer + integration: + type: integer + reason: + type: string + reference: + type: string + source: + type: string + source_details: + nullable: true + status: + type: string + titan_code: + nullable: true + transfer_code: + type: string + request: + type: integer + transferred_at: + nullable: true + updatedAt: + type: string + recipient: + type: object + properties: + active: + type: boolean + createdAt: + type: string + currency: + type: string + description: + type: string + domain: + type: string + email: + type: string + id: + type: integer + integration: + type: integer + metadata: + type: object + nullable: true + name: + type: string + recipient_code: + type: string + type: + type: string + updatedAt: + type: string + is_deleted: + type: boolean + isDeleted: + type: boolean + details: + type: object + properties: + authorization_code: + nullable: true + account_number: + type: string + account_name: + type: string + nullable: true + bank_code: + type: string + bank_name: + type: string + required: + - authorization_code + - account_number + - account_name + - bank_code + - bank_name + required: + - active + - createdAt + - currency + - description + - domain + - email + - id + - integration + - name + - recipient_code + - type + - updatedAt + - is_deleted + - isDeleted + - details + session: + type: object + properties: + provider: + nullable: true + id: + nullable: true + required: + - provider + - id + fee_charged: + type: integer + fees_breakdown: + type: integer + nullable: true + required: + - amount + - createdAt + - currency + - domain + - failures + - id + - integration + - reason + - reference + - source + - source_details + - status + - titan_code + - request + - transfer_code + - transferred_at + - updatedAt + - recipient + - session + - fee_charged + - fees_breakdown + TransferListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/TransferListResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + TransferBase: + type: object + required: + - amount + - recipient + - reference + properties: + amount: + description: Amount to transfer in kobo if currency is NGN and pesewas if currency is GHS. + type: integer + recipient: + description: The transfer recipient's code + type: string + reference: + description: | + To ensure idempotency, you need to provide e a unique identifier for the request. The identifier should be a lowercase alphanumeric string with only -,_ symbols allowed. + type: string + minimum: 16 + reason: + description: The reason or narration for the transfer. + type: string + TransferInitiate: + description: Transfer initiation model + allOf: + - $ref: '#/components/schemas/TransferBase' + - type: object + required: + - source + - amount + - recipient + - reference + properties: + source: + description: The origin of the funds to send from + type: string + default: balance + currency: + description: Specify the currency of the transfer. + type: string + default: NGN + enum: + - NGN + - ZAR + - KES + - GHS + TransferCreateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + transfersessionid: + type: array + items: {} + transfertrials: + type: array + items: {} + domain: + type: string + amount: + type: integer + currency: + type: string + reference: + type: string + source: + type: string + source_details: + nullable: true + reason: + type: string + status: + type: string + failures: + nullable: true + transfer_code: + type: string + titan_code: + nullable: true + transferred_at: + nullable: true + id: + type: integer + integration: + type: integer + request: + type: integer + recipient: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - transfersessionid + - transfertrials + - domain + - amount + - currency + - reference + - source + - source_details + - reason + - status + - failures + - transfer_code + - titan_code + - transferred_at + - id + - integration + - request + - recipient + - createdAt + - updatedAt + required: + - status + - message + - data + responses: + TransactionInitializeBadRequestResponse: + description: Responses from the Transaction Initialize endpoint + content: + application/json: + schema: + $ref: '#/components/schemas/TransactionInitializeBadRequestModel' + Unauthorized: + description: Unauthorized operation + content: + application/json: schema: $ref: '#/components/schemas/Error' -security: - - bearerAuth: [] + example: + status: false + message: Invalid key + VerificationResolveAccountNumberSuccess: + description: Verification Resolve Account Number response + content: + application/json: + schema: + $ref: '#/components/schemas/VerificationResolveAccountNumberResponse' + NotFound: + description: Entity not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + status: false + message: Entity not found diff --git a/dist/marketplace.yaml b/dist/marketplace.yaml index 8165ff1..d9b9a1c 100644 --- a/dist/marketplace.yaml +++ b/dist/marketplace.yaml @@ -1,17 +1,29 @@ openapi: 3.0.1 info: title: Create an online marketplace - description: |- + description: | The OpenAPI specification for creating a marketplace application using the [Paystack API](https://paystack.com/docs/api/). + ### Prerequisites + 1. Sign up on [Paystack](https://paystack.com/signup) to get your secret API key + 2. Set your API key as an environment variable on [Postman](https://learning.postman.com/docs/sending-requests/variables/) - The [Split API](https://paystack.com/docs/payments/split-payments/) is useful in marketplace apps where the transactions are divided between the platform and the vendor. That way, the platform keeps a portion of each transaction. + + The [Split API](https://paystack.com/docs/payments/split-payments/) is useful in marketplace apps where the transactions are divided between the platform and the vendor. + That way, the platform keeps a portion of each transaction. version: 1.0.0 + contact: + email: devrel@paystack.com + license: + name: MIT + url: https://choosealicense.com/licenses/mit/ servers: - - url: 'https://api.paystack.co' + - url: https://api.paystack.co description: Base API endpoint +security: + - bearerAuth: [] paths: /subaccount: post: @@ -19,87 +31,57 @@ paths: - Subaccount summary: Create Subaccount operationId: subaccount_create - description: Create a new subaccount requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1subaccount/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - business_name - - settlement_bank - - account_number - - percentage_charge - properties: - business_name: - description: Name of business for subaccount - type: string - example: Some Subaccount - settlement_bank: - description: Bank code for the bank. You can get the list of Bank Codes by calling the List Banks endpoint. - type: string - example: '011' - account_number: - description: Bank account number - type: string - example: '0000000000' - percentage_charge: - description: Transaction percentage that the subaccount gets - type: number - format: float - example: 0.3 - description: - description: A description for this subaccount - type: string - example: A service provider - primary_contact_email: - description: A contact email for the subaccount - type: string - example: sub@example.com - primary_contact_name: - description: The name of the contact person for this subaccount - type: string - example: person@example.com - primary_contact_phone: - description: A phone number to call for this subaccount - type: string - metadata: - description: Stringified JSON object of custom data - type: object - example: - category: General supplies + $ref: '#/components/schemas/SubaccountCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SubaccountCreate' responses: '201': - description: Subaccount Creation + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/SubaccountCreateResponse' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + get: + tags: + - Subaccount + summary: List Subaccounts + operationId: subaccount_list + parameters: + - in: query + name: perPage + schema: + type: integer + description: Number of records to fetch per request + - in: query + name: page + schema: + type: integer + description: The offset to retrieve data from + - in: query + name: active + schema: + type: boolean + description: Filter by active or inactive subaccounts + responses: + '200': + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Create Subaccount: - value: - status: true - message: Subaccount created - data: - business_name: Cheese Sticks - account_number: 0123456789 - percentage_charge: 0.2 - settlement_bank: Guaranty Trust Bank - integration: 428626 - domain: test - subaccount_code: ACCT_xxxxxxxxxxxxx - is_verified: false - settlement_schedule: AUTO - active: true - migrate: false - id: 37614 - createdAt: 2020-05-19T11:54:20.655Z - updatedAt: 2020-05-19T11:54:20.655Z + $ref: '#/components/schemas/SubaccountListResponse' '401': - $ref: '#/paths/~1split/post/responses/401' + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' default: description: Server error /split: @@ -108,142 +90,80 @@ paths: - Split summary: Create Split operationId: split_create - description: Create a new transaction split requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1split/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - name - - type - - subaccounts - - currency - properties: - name: - description: Name of the transaction split - type: string - example: Testing Accounts - type: - description: The type of transaction split you want to create. - type: string - enum: - - percentage - - flat - subaccounts: - description: A list of object containing subaccount code and number of shares - type: array - items: - type: object - properties: - subaccount: - description: Subaccount code of the customer or partner - type: string - example: ACCT_03tb3u7jgwb4v - share: - description: The percentage or flat quota of the customer or partner - type: string - example: '102' - currency: - description: The transaction currency - type: string - enum: - - NGN - - GHS - - ZAR - - USD - bearer_type: - description: This allows you specify how the transaction charge should be processed - type: string - enum: - - subaccount - - account - - all-proportional - - all - bearer_subaccount: - description: This is the subaccount code of the customer or partner that would bear the transaction charge if you specified subaccount as the bearer type - type: string - example: ACCT_03tb3u7jgwb4 + $ref: '#/components/schemas/SplitCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SplitCreate' responses: '200': - description: Split Creation + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Create Split: - value: - status: true - message: Split created - data: - id: 142 - name: Test Doc - type: percentage - currency: NGN - integration: 428626 - domain: test - split_code: SPL_e7jnRLtzla - active: true - bearer_type: subaccount - bearer_subaccount: 40809 - createdAt: 2020-06-30T11:42:29.150Z - updatedAt: 2020-06-30T11:42:29.150Z - subaccounts: - - subaccount: - id: 40809 - subaccount_code: ACCT_z3x6z3nbo14xsil - business_name: Business Name - description: Business Description - primary_contact_name: null - primary_contact_email: null - primary_contact_phone: null - metadata: null - percentage_charge: 20 - settlement_bank: Business Bank - account_number: 1234567890 - share: 20 - - subaccount: - id: 40809 - subaccount_code: ACCT_pwwualwty4nhq9d - business_name: Business Name - description: Business Description - primary_contact_name: null - primary_contact_email: null - primary_contact_phone: null - metadata: null - percentage_charge: 20 - settlement_bank: Business Bank - account_number: 0123456789 - share: 30 - total_subaccounts: 2 + $ref: '#/components/schemas/SplitCreateResponse' '401': - description: Unauthorized operation + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + get: + tags: + - Split + summary: List Splits + operationId: split_list + parameters: + - name: name + description: The name of the split + in: query + schema: + type: string + - name: active + description: The status of the split + in: query + schema: + type: boolean + - in: query + name: per_page + schema: + type: integer + description: The number of records to fetch per request + - in: query + name: page + schema: + type: integer + description: The offset to retrieve data from + - in: query + name: from + description: The start date + schema: + type: string + format: date-time + - in: query + name: to + description: The end date + schema: + type: string + format: date-time + - in: query + name: subaccount_code + description: Filter by subaccount code + schema: + type: string + example: ACCT_dskvlw3y3dMukmt + responses: + '200': + description: '' content: application/json: - examples: - No-Authorization-Header: - value: - status: false - message: No Authorization Header was found - Bad-Authorization-Header: - value: - status: false - message: 'Format is Authorization Bearer [secret key]' - Invalid-Key: - value: - status: false - message: Invalid key schema: - type: object - properties: - status: - type: boolean - message: - type: string + $ref: '#/components/schemas/SplitListResponse' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' default: description: Server error /transaction/initialize: @@ -255,112 +175,23 @@ paths: description: Create a new transaction requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1transaction~1initialize/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - email - - amount - properties: - email: - description: Customer's email address - type: string - example: person@email.com - amount: - description: 'Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR' - type: integer - example: 10247 - currency: - description: The transaction currency - type: string - enum: - - NGN - - GHS - - ZAR - - USD - reference: - description: 'Unique transaction reference. Only -, ., = and alphanumeric characters allowed.' - type: string - example: 123.uniq=ref- - callback_url: - description: Fully qualified url. Use this to override the callback url provided on the dashboard for this transaction - type: string - example: 'https://example.com/' - plan: - description: |- - If transaction is to create a subscription to a predefined plan, provide plan code here. - This would invalidate the value provided in amount - type: string - example: PLN_123wede - invoice_limit: - description: Number of times to charge customer during subscription to plan - type: integer - example: 10 - metadata: - description: Stringified JSON object of custom data - type: object - example: - metadata: - cart_id: 398 - custom_fields: - - display_name: Invoice ID - variable_name: Invoice ID - value: 209 - - display_name: Cart Items - variable_name: cart_items - value: '3 bananas, 12 mangoes' - channels: - description: An array of payment channels to control what channels you want to make available to the user to make a payment with - type: array - enum: - - card - - bank - - ussd - - qr - - eft - - mobile_money - - bank_transfer - split_code: - description: The split code of the transaction split - type: string - example: SPL_123AbZ - subaccount: - description: The code for the subaccount that owns the payment - type: string - example: ACCT_23abcdefgh - transaction_charge: - description: |- - A flat fee to charge the subaccount for a transaction. - This overrides the split percentage set when the subaccount was created - type: integer - example: 12300 - bearer: - description: The bearer of the transaction charge - type: string - enum: - - account - - subaccount + $ref: '#/components/schemas/TransactionInitialize' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransactionInitialize' responses: '200': - description: Request successful + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Initiailize Transaction: - value: - status: true - message: Authorization URL created - data: - authorization_url: 'https://checkout.paystack.com/spnajmit2hgi2c1' - access_code: spandaoende - reference: ad123ada + $ref: '#/components/schemas/TransactionInitializeResponse' + '400': + $ref: '#/components/responses/TransactionInitializeBadRequestResponse' '401': - $ref: '#/paths/~1split/post/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error /refund: @@ -371,94 +202,54 @@ paths: operationId: refund_create requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1refund/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - transaction - properties: - transaction: - description: Transaction reference or id - type: string - example: T685312322670591 - amount: - description: |- - Amount ( in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR ) to be refunded to the customer. - Amount cannot be more than the original transaction amount - type: integer - example: 10000 - currency: - description: Three-letter ISO currency - type: string - enum: - - NGN - - GHS - - ZAR - - USD - customer_note: - description: Customer reason - type: string - example: Refund for transaction T685312322670591 - merchant_note: - description: Merchant reason - type: string - example: Refund for transaction T685312322670591 by test@me.com + $ref: '#/components/schemas/RefundCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RefundCreate' responses: '200': - description: Request successful - content: - application/json: - schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Create Refund: - value: - status: true - message: Refund has been queued for processing - data: - transaction: - id: 1004723697 - domain: test - reference: T685312322670591 - amount: 10000 - paid_at: '2021-08-20T18:34:11.000Z' - channel: apple_pay - currency: NGN - authorization: - exp_month: null - exp_year: null - account_name: null - customer: - international_format_phone: null - plan: {} - subaccount: - currency: null - split: {} - order_id: null - paidAt: '2021-08-20T18:34:11.000Z' - pos_transaction_data: null - source: null - fees_breakdown: null - integration: 412829 - deducted_amount: 0 - channel: null - merchant_note: Refund for transaction T685312322670591 by test@me.com - customer_note: Refund for transaction T685312322670591 - status: pending - refunded_by: test@me.com - expected_at: '2021-12-16T09:21:17.016Z' - currency: NGN - domain: live - amount: 10000 - fully_deducted: false - id: 3018284 - createdAt: '2021-12-07T09:21:17.122Z' - updatedAt: '2021-12-07T09:21:17.122Z' + $ref: '#/components/responses/RefundCreateSuccess' '401': - $ref: '#/paths/~1split/post/responses/401' + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + get: + tags: + - Refund + summary: List Refunds + operationId: refund_list + parameters: + - in: query + name: perPage + schema: + type: integer + description: Number of records to fetch per page + - in: query + name: page + schema: + type: integer + description: The section to retrieve + - in: query + name: from + schema: + type: string + format: date-time + description: The start date + - in: query + name: to + schema: + type: string + format: date-time + description: The end date + responses: + '200': + $ref: '#/components/responses/RefundListSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' default: description: Server error components: @@ -467,101 +258,805 @@ components: type: http scheme: bearer schemas: - Customer: - allOf: - - type: object + SubaccountListResponseArray: + type: object + properties: + id: + type: integer + subaccount_code: + type: string + business_name: + type: string + description: + type: string + primary_contact_name: + type: string + primary_contact_email: + type: string + primary_contact_phone: + type: string + metadata: + type: string + percentage_charge: + type: number + settlement_bank: + type: string + bank_id: + type: integer + account_number: + type: string + currency: + type: string + active: + type: integer + is_verified: + type: boolean + required: + - id + - subaccount_code + - business_name + - description + - primary_contact_name + - primary_contact_email + - primary_contact_phone + - metadata + - percentage_charge + - settlement_bank + - bank_id + - account_number + - currency + - active + - is_verified + SubaccountListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/SubaccountListResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer required: - - email + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + ErrorMeta: + type: object + description: Extra details to help with a resolution of the error + properties: + nextStep: + type: string + description: A summarised solution for the error + Error: + type: object + properties: + status: + type: boolean + description: An indicator for the state of the request + message: + type: string + description: A short description of the error + meta: + $ref: '#/components/schemas/ErrorMeta' + type: + type: string + description: A tag to indicate the type of the error + code: + type: string + description: The error code + enum: + - validation_error + - processor_error + - api_error + errorCodeMappingNotFound: + type: boolean + description: An indicator for error mapping for the request + SubaccountCreate: + type: object + required: + - business_name + - settlement_bank + - account_number + - percentage_charge + properties: + business_name: + description: Name of business for subaccount + type: string + settlement_bank: + description: Bank code for the bank. You can get the list of Bank Codes by calling the List Banks endpoint. + type: string + account_number: + description: Bank account number + type: string + percentage_charge: + description: Customer's phone number + type: number + format: float + description: + description: A description for this subaccount + type: string + primary_contact_email: + description: A contact email for the subaccount + type: string + primary_contact_name: + description: The name of the contact person for this subaccount + type: string + primary_contact_phone: + description: A phone number to call for this subaccount + type: string + metadata: + description: Stringified JSON object of custom data + type: string + SubaccountCreateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object properties: - email: - description: Customer's email address + business_name: type: string - - type: object - properties: - first_name: - description: Customer's first name + account_name: type: string - example: Some - last_name: - description: Customer's last name + nullable: true + description: type: string - example: Body - phone: - description: Customer's phone number + primary_contact_name: + type: string + primary_contact_email: + type: string + primary_contact_phone: type: string - example: '+2348123456789' metadata: - description: Stringified JSON object of custom data type: string - - type: object - required: - - authorization_code - properties: - authorization_code: - description: Customer's authorization code to be deactivated + account_number: + type: string + percentage_charge: + type: number + settlement_bank: + type: string + currency: + type: string + bank: + type: integer + integration: + type: integer + domain: + type: string + product: + type: string + managed_by_integration: + type: integer + subaccount_code: + type: string + is_verified: + type: boolean + settlement_schedule: + type: string + active: + type: boolean + migrate: + type: boolean + id: + type: integer + createdAt: + type: string + updatedAt: type: string - - type: object required: - - customer + - business_name + - description + - primary_contact_name + - primary_contact_email + - primary_contact_phone + - metadata + - account_number + - percentage_charge + - settlement_bank + - currency + - bank + - integration + - domain + - managed_by_integration + - product + - subaccount_code + - is_verified + - settlement_schedule + - active + - migrate + - id + - createdAt + - updatedAt + required: + - status + - message + - data + SplitSubaccountsArray: + type: object + properties: + subaccount: + type: object properties: - customer: - description: 'Customer''s code, or email address' + id: + type: integer + subaccount_code: + type: string + business_name: + type: string + description: + type: string + primary_contact_name: + type: string + primary_contact_email: + type: string + primary_contact_phone: + type: string + metadata: + type: string + settlement_bank: + type: string + currency: + type: string + account_number: type: string - risk_action: - description: | - One of the possible risk actions [ default, allow, deny ]. allow to whitelist. - deny to blacklist. Customers start with a default risk action. - type: string - enum: - - default - - allow - - deny - - type: object required: - - type - - country - - bvn - - bank_code + - id + - subaccount_code + - business_name + - description + - primary_contact_name + - primary_contact_email + - primary_contact_phone + - metadata + - settlement_bank + - currency - account_number + share: + type: integer + required: + - subaccount + - share + SplitListResponseArray: + type: object + properties: + id: + type: integer + name: + type: string + type: + type: string + currency: + type: string + integration: + type: integer + domain: + type: string + split_code: + type: string + active: + type: boolean + bearer_type: + type: string + bearer_subaccount: + type: integer + nullable: true + createdAt: + type: string + updatedAt: + type: string + is_dynamic: + type: boolean + subaccounts: + type: array + items: + $ref: '#/components/schemas/SplitSubaccountsArray' + total_subaccounts: + type: integer + required: + - id + - name + - type + - currency + - integration + - domain + - split_code + - active + - bearer_type + - bearer_subaccount + - createdAt + - updatedAt + - is_dynamic + - subaccounts + - total_subaccounts + SplitListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/SplitListResponseArray' + meta: + type: object properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + SplitSubaccounts: + type: object + properties: + subaccount: + description: Subaccount code of the customer or partner + type: string + share: + description: The percentage or flat quota of the customer or partner + type: string + SplitCreate: + type: object + description: | + Split configuration for transactions + properties: + name: + description: Name of the transaction split + type: string + type: + description: The type of transaction split you want to create. + type: string + enum: + - percentage + - flat + subaccounts: + description: A list of object containing subaccount code and number of shares + type: array + items: + $ref: '#/components/schemas/SplitSubaccounts' + currency: + description: The transaction currency + type: string + enum: + - NGN + - GHS + - ZAR + - USD + bearer_type: + description: This allows you specify how the transaction charge should be processed + type: string + enum: + - subaccount + - account + - all-proportional + - all + bearer_subaccount: + description: This is the subaccount code of the customer or partner that would bear the transaction charge if you specified subaccount as the bearer type + type: string + required: + - name + - type + - subaccounts + - currency + SplitCreateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + name: + type: string type: - description: Predefined types of identification. type: string - enum: - - bvn - - bank_account - country: - description: Two-letter country code of identification issuer + currency: type: string - example: NG - bvn: - description: Customer's Bank Verification Number + integration: type: integer - example: 0123456789 - bank_code: - description: 'You can get the list of bank codes by calling the List Banks endpoint (https://api.paystack.co/bank).' + domain: type: string - example: '007' - account_number: - description: Customer's bank account number. + split_code: + type: string + active: + type: boolean + bearer_type: type: string - example: '0111111111' + bearer_subaccount: + type: integer + createdAt: + type: string + updatedAt: + type: string + is_dynamic: + type: boolean + subaccounts: + type: array + items: + $ref: '#/components/schemas/SplitSubaccountsArray' + total_subaccounts: + type: integer + required: + - id + - name + - type + - currency + - integration + - domain + - split_code + - active + - bearer_type + - createdAt + - updatedAt + - is_dynamic + - subaccounts + - total_subaccounts + required: + - status + - message + - data + Currency: + description: List of all support currencies + type: string + enum: + - GHS + - KES + - NGN + - ZAR + - USD + example: GHS + TransactionInitialize: + description: Initialize a transaction + type: object + required: + - email + - amount + properties: + email: + description: Customer's email address + type: string + amount: + description: | + Amount should be in smallest denomination of the currency. For example if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR + type: integer + currency: + $ref: '#/components/schemas/Currency' + reference: + description: Unique transaction reference. Only -, ., = and alphanumeric characters allowed. + type: string + channels: + description: An array of payment channels to control what channels you want to make available to the user to make a payment with + type: array + items: + type: string + enum: + - card + - bank + - ussd + - qr + - eft + - mobile_money + - bank_transfer + callback_url: + description: | + Fully qualified url, e.g. https://example.com/ to redirect your customers to after a successful payment. Use this to override the callback url provided on the dashboard for this transaction + type: string + plan: + description: | + If transaction is to create a subscription to a predefined plan, provide plan code here. + This would invalidate the value provided in amount + type: string + invoice_limit: + description: Number of times to charge customer during subscription to plan + type: integer + split_code: + description: The split code of the transaction split + type: string + split: + $ref: '#/components/schemas/SplitCreate' + subaccount: + description: The code for the subaccount that owns the payment + type: string + transaction_charge: + description: | + A flat fee to charge the subaccount for a transaction. + This overrides the split percentage set when the subaccount was created + type: string + bearer: + description: The bearer of the transaction charge + type: string + enum: + - account + - subaccount + label: + description: Used to replace the email address shown on the Checkout + type: string + metadata: + description: JSON object of custom data + type: object + example: + email: test@demo.com + amount: 10000 + TransactionInitializeResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + authorization_url: + type: string + access_code: + type: string + reference: + type: string + required: + - authorization_url + - access_code + - reference + required: + - status + - message + - data + TransactionInitializeBadRequestModel: + type: object + description: | + Error response returned when a transaction is initialized with incorrect parameters + properties: + status: + type: boolean + description: An indicator for the state of the request + message: + type: string + description: A short description of the error + meta: + $ref: '#/components/schemas/ErrorMeta' + type: + type: string + description: A tag to indicate the type of the error + enum: + - validation_error + - processor_error + - api_error + code: + type: string + description: The error code + errorCodeMappingNotFound: + type: boolean + description: An indicator for error mapping for the request + example: + status: false + message: Duplicate Transaction Reference + meta: + nextStep: Try and create the Transaction or Charge with a new reference + type: validation_error + code: duplicate_reference + errorCodeMappingNotFound: false + RefundListResponseArray: + type: object + properties: + integration: + type: integer + transaction: + type: integer + dispute: + nullable: true + settlement: + nullable: true + id: + type: integer + domain: + type: string + currency: + type: string + amount: + type: integer + status: + type: string + refunded_at: + nullable: true + refunded_by: + type: string + customer_note: + type: string + merchant_note: + type: string + deducted_amount: + type: integer + fully_deducted: + type: integer + createdAt: + type: string + bank_reference: + nullable: true + transaction_reference: + type: string + reason: + type: string + customer: + type: object + properties: + id: + type: integer first_name: - description: Customer's first name type: string - example: Uchenna last_name: - description: Customer's last name type: string - example: Okoro - Error: + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + metadata: + type: string + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + refund_type: + type: string + transaction_amount: + type: integer + initiated_by: + type: string + refund_channel: + type: string + session_id: + nullable: true + collect_account_number: + type: boolean + required: + - integration + - transaction + - dispute + - settlement + - id + - domain + - currency + - amount + - status + - refunded_at + - refunded_by + - customer_note + - merchant_note + - deducted_amount + - fully_deducted + - createdAt + - bank_reference + - transaction_reference + - reason + - customer + - refund_type + - transaction_amount + - initiated_by + - refund_channel + - session_id + - collect_account_number + RefundListResponse: type: object properties: status: type: boolean message: type: string - Response: + data: + type: array + items: + $ref: '#/components/schemas/RefundListResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: string + page: + type: integer + pageCount: + type: integer + failedRefundCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + - failedRefundCount + additionalProperties: false + required: + - status + - message + - data + - meta + RefundCreate: + type: object + required: + - transaction + properties: + transaction: + description: Transaction reference or id + type: string + amount: + description: |- + Amount ( in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR ) to be refunded to the customer. + Amount cannot be more than the original transaction amount + type: integer + currency: + description: Three-letter ISO currency. Allowed values are NGN, GHS, ZAR or USD + type: string + customer_note: + description: Customer reason + type: string + merchant_note: + description: Merchant reason + type: string + RefundCreateResponse: type: object properties: status: @@ -570,26 +1065,145 @@ components: type: string data: type: object + properties: + transaction: + type: object + properties: + id: + type: integer + domain: + type: string + reference: + type: string + amount: + type: integer + paid_at: + type: string + channel: + type: string + currency: + type: string + authorization: + type: object + properties: + exp_month: + nullable: true + exp_year: + nullable: true + account_name: + nullable: true + required: + - exp_month + - exp_year + - account_name + customer: + type: object + properties: + international_format_phone: + type: string + nullable: true + required: + - international_format_phone + plan: + type: object + subaccount: + type: object + properties: + currency: + nullable: true + required: + - currency + split: + type: object + order_id: + nullable: true + paidAt: + type: string + pos_transaction_data: + nullable: true + source: + nullable: true + fees_breakdown: + nullable: true + required: + - id + - domain + - reference + - amount + - paid_at + - channel + - currency + - authorization + - customer + - plan + - subaccount + - split + - order_id + - paidAt + - pos_transaction_data + - source + - fees_breakdown + integration: + type: integer + deducted_amount: + type: integer + channel: + nullable: true + merchant_note: + type: string + customer_note: + type: string + status: + type: string + refunded_by: + type: string + expected_at: + type: string + currency: + type: string + domain: + type: string + amount: + type: integer + fully_deducted: + type: boolean + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - transaction + - integration + - deducted_amount + - channel + - merchant_note + - customer_note + - status + - refunded_by + - expected_at + - currency + - domain + - amount + - fully_deducted + - id + - createdAt + - updatedAt + required: + - status + - message + - data responses: - Ok: - description: Successful operation - content: - application/json: - schema: - type: object - properties: - status: - type: boolean - message: - type: string - data: - type: object - Created: - description: Resource created + Unauthorized: + description: Unauthorized operation content: application/json: schema: - $ref: '#/components/schemas/Response' + $ref: '#/components/schemas/Error' + example: + status: false + message: Invalid key NotFound: description: Entity not found content: @@ -599,20 +1213,21 @@ components: example: status: false message: Entity not found - Unauthorized: - description: Unauthorized operation + TransactionInitializeBadRequestResponse: + description: Responses from the Transaction Initialize endpoint content: application/json: schema: - $ref: '#/components/schemas/Error' - example: - status: false - message: Invalid key - GeneralError: - description: General Error + $ref: '#/components/schemas/TransactionInitializeBadRequestModel' + RefundListSuccess: + description: Refund List response content: application/json: schema: - $ref: '#/components/schemas/Error' -security: - - bearerAuth: [] + $ref: '#/components/schemas/RefundListResponse' + RefundCreateSuccess: + description: Refund Create response + content: + application/json: + schema: + $ref: '#/components/schemas/RefundCreateResponse' diff --git a/dist/membership.yaml b/dist/membership.yaml index b7abd7a..92ced42 100644 --- a/dist/membership.yaml +++ b/dist/membership.yaml @@ -1,19 +1,32 @@ openapi: 3.0.1 info: title: Create a membership app - description: |- + description: | The OpenAPI specification for creating a membership application using the [Paystack API](https://paystack.com/docs/api/). + ### Prerequisites + 1. Sign up on [Paystack](https://paystack.com/signup) to get your secret API key + 2. Set your API key as an environment variable on [Postman](https://learning.postman.com/docs/sending-requests/variables/) - When using the [Subscriptions API](https://paystack.com/docs/payments/subscriptions), Paystack automatically charges the customer at the due time. This saves you the need to run scheduled tasks for every customer. + + When using the [Subscriptions API](https://paystack.com/docs/payments/subscriptions), Paystack automatically charges the customer at the due time. + This saves you the need to run scheduled tasks for every customer. + While with the [Charge Authorization API](https://paystack.com/docs/payments/recurring-charges), you send Paystack the charge details at the due time. version: 1.0.0 + contact: + email: devrel@paystack.com + license: + name: MIT + url: https://choosealicense.com/licenses/mit/ servers: - - url: 'https://api.paystack.co' + - url: https://api.paystack.co description: Base API endpoint +security: + - bearerAuth: [] paths: /plan: post: @@ -23,103 +36,64 @@ paths: operationId: plan_create requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1plan/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - name - - amount - - interval - properties: - name: - description: Name of plan - type: string - example: My monthly membership - amount: - description: 'Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR' - type: integer - example: 20000 - interval: - description: 'Interval in words. Valid intervals are daily, weekly, monthly,biannually, annually' - type: string - example: monthly - description: - description: A description for this plan - type: string - example: Monthly membership payment plan - send_invoices: - description: Set to false if you don't want invoices to be sent to your customers - type: boolean - send_sms: - description: Set to false if you don't want text messages to be sent to your customers - type: boolean - currency: - description: 'Currency in which amount is set. Allowed values are NGN, GHS, ZAR or USD' - type: string - example: NGN - invoice_limit: - description: |- - Number of invoices to raise during subscription to this plan. - Can be overridden by specifying an invoice_limit while subscribing. - type: integer - example: 0 + $ref: '#/components/schemas/PlanCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PlanCreate' responses: - '201': - description: Create Plan - content: - application/json: - schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Create Plan: - value: - status: true - message: Plan created - data: - name: My monthly membership - interval: monthly - amount: 20000 - description: Monthly membership payment plan - integration: 463433 - domain: test - currency: NGN - plan_code: PLN_y4y1wkydoptw6zv - invoice_limit: 0 - send_invoices: true - send_sms: true - hosted_page: false - migrate: false - is_archived: false - id: 393872 - createdAt: '2022-09-22T02:15:06.702Z' - updatedAt: '2022-09-22T02:15:06.702Z' + '200': + $ref: '#/components/responses/PlanCreateSuccess' '401': - description: Unauthorized operation - content: - application/json: - examples: - No-Authorization-Header: - value: - status: false - message: No Authorization Header was found - Bad-Authorization-Header: - value: - status: false - message: 'Format is Authorization Bearer [secret key]' - Invalid-Key: - value: - status: false - message: Invalid key - schema: - type: object - properties: - status: - type: boolean - message: - type: string + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + get: + tags: + - Plan + summary: List Plans + operationId: plan_list + parameters: + - in: query + name: perPage + schema: + type: integer + description: Number of records to fetch per page + - in: query + name: page + schema: + type: integer + description: The section to retrieve + - in: query + name: interval + schema: + type: string + description: Specify interval of the plan + - in: query + name: amount + schema: + type: integer + description: The amount on the plans to retrieve + - in: query + name: from + schema: + type: string + format: date-time + description: The start date + - in: query + name: to + schema: + type: string + format: date-time + description: The end date + responses: + '200': + $ref: '#/components/responses/PlanListSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' default: description: Server error /subscription: @@ -130,68 +104,64 @@ paths: operationId: subscription_create requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1subscription/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - customer - - plan - properties: - customer: - description: Customer's email address or customer code - type: string - example: person@example.com - plan: - description: Plan code that the customer should subscribe to - type: string - example: PLN_y4y1wkydoptw6zv - authorization: - description: |- - If customer has multiple authorizations, you can set the desired authorization you wish to use for this subscription here. - If this is not supplied, the customer's most recent authorization would be used - type: string - example: AUTH_Codaad23 - start_date: - description: 'Set the date for the first debit. (ISO 8601 format) e.g. 2017-05-16T00:30:13+01:00' - type: string - format: date-time + $ref: '#/components/schemas/SubscriptionCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SubscriptionCreate' responses: '200': - description: Create Subscription - content: - application/json: - schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Create Subscription: - value: - status: true - message: Subscription successfully created - data: - customer: 89363925 - plan: 393873 - integration: 463433 - domain: test - start: 1663817490 - status: active - quantity: 1 - amount: 20000 - authorization: 374536802 - invoice_limit: 0 - split_code: null - subscription_code: SUB_k0alurkz6l2d3nz - email_token: txyhn3zjzcr9xlo - id: 456933 - cancelledAt: null - createdAt: '2022-09-22T03:31:30.886Z' - updatedAt: '2022-09-22T03:31:30.886Z' - cron_expression: 31 3 22 * * - next_payment_date: '2022-10-22T03:31:00.000Z' + $ref: '#/components/responses/SubscriptionCreateSuccess' '401': - $ref: '#/paths/~1plan/post/responses/401' + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + get: + tags: + - Subscription + summary: List Subscriptions + operationId: subscription_list + parameters: + - in: query + name: perPage + schema: + type: integer + description: Number of records to fetch per page + - in: query + name: page + schema: + type: integer + description: The section to retrieve + - in: query + name: plan + schema: + type: string + description: Plan ID + - in: query + name: customer + schema: + type: string + description: Customer ID + - in: query + name: from + schema: + type: string + format: date-time + description: The start date + - in: query + name: to + schema: + type: string + format: date-time + description: The end date + responses: + '200': + $ref: '#/components/responses/SubscriptionListSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' default: description: Server error /transaction/initialize: @@ -203,112 +173,23 @@ paths: description: Create a new transaction requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1transaction~1initialize/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - email - - amount - properties: - email: - description: Customer's email address - type: string - example: person@email.com - amount: - description: 'Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR' - type: integer - example: 10247 - currency: - description: The transaction currency - type: string - enum: - - NGN - - GHS - - ZAR - - USD - reference: - description: 'Unique transaction reference. Only -, ., = and alphanumeric characters allowed.' - type: string - example: 123.uniq=ref- - callback_url: - description: Fully qualified url. Use this to override the callback url provided on the dashboard for this transaction - type: string - example: 'https://example.com/' - plan: - description: |- - If transaction is to create a subscription to a predefined plan, provide plan code here. - This would invalidate the value provided in amount - type: string - example: PLN_123wede - invoice_limit: - description: Number of times to charge customer during subscription to plan - type: integer - example: 10 - metadata: - description: Stringified JSON object of custom data - type: object - example: - metadata: - cart_id: 398 - custom_fields: - - display_name: Invoice ID - variable_name: Invoice ID - value: 209 - - display_name: Cart Items - variable_name: cart_items - value: '3 bananas, 12 mangoes' - channels: - description: An array of payment channels to control what channels you want to make available to the user to make a payment with - type: array - enum: - - card - - bank - - ussd - - qr - - eft - - mobile_money - - bank_transfer - split_code: - description: The split code of the transaction split - type: string - example: SPL_123AbZ - subaccount: - description: The code for the subaccount that owns the payment - type: string - example: ACCT_23abcdefgh - transaction_charge: - description: |- - A flat fee to charge the subaccount for a transaction. - This overrides the split percentage set when the subaccount was created - type: integer - example: 12300 - bearer: - description: The bearer of the transaction charge - type: string - enum: - - account - - subaccount + $ref: '#/components/schemas/TransactionInitialize' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransactionInitialize' responses: '200': - description: Request successful + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Initiailize Transaction: - value: - status: true - message: Authorization URL created - data: - authorization_url: 'https://checkout.paystack.com/spnajmit2hgi2c1' - access_code: spandaoende - reference: ad123ada + $ref: '#/components/schemas/TransactionInitializeResponse' + '400': + $ref: '#/components/responses/TransactionInitializeBadRequestResponse' '401': - $ref: '#/paths/~1plan/post/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error /transaction/charge_authorization: @@ -319,102 +200,21 @@ paths: operationId: transaction_chargeAuthorization requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1transaction~1charge_authorization/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - email - - amount - - authorization_code - properties: - email: - description: Customer's email address used during the first transaction - type: string - example: person@email.com - amount: - description: 'Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR' - type: integer - example: 10247 - authorization_code: - description: Valid authorization code to charge - type: string - example: AUTH_CODE - reference: - description: 'Unique transaction reference. Only -, ., = and alphanumeric characters allowed.' - type: string - example: 123.uniq=ref-2 - currency: - description: The transaction currency - type: string - enum: - - NGN - - GHS - - ZAR - - USD - metadata: - description: Stringified JSON object of custom data - type: object - example: - cart_id: 398 - custom_fields: - - display_name: Invoice ID - variable_name: Invoice ID - value: 209 - - display_name: Cart Items - variable_name: cart_items - value: '3 bananas, 12 mangoes' - split_code: - description: The split code of the transaction split - type: string - example: SPL_123AbZ - subaccount: - description: The code for the subaccount that owns the payment - type: string - example: ACCT_23abcdefgh - transaction_charge: - description: |- - A flat fee to charge the subaccount for a transaction. - This overrides the split percentage set when the subaccount was created - type: integer - example: 12300 - bearer: - description: The bearer of the transaction charge - type: string - enum: - - account - - subaccount - queue: - description: 'If you are making a scheduled charge call, it is a good idea to queue them so the processing system does not get overloaded causing transaction processing errors.' - type: boolean + $ref: '#/components/schemas/TransactionChargeAuthorization' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransactionChargeAuthorization' responses: '200': - description: Request successful + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Charge Authorization: - value: - status: true - message: Charge attempted - data: - amount: 500000 - currency: NGN - reference: 123.uniq=ref-2 - metadata: - cart_id: 398 - custom_fields: - - display_name: Invoice ID - variable_name: Invoice ID - value: 209 - split_code: SPL_123AbZ - subaccount: ACCT_23abcdefgh + $ref: '#/components/schemas/ChargeAuthorizationResponse' '401': - $ref: '#/paths/~1plan/post/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error components: @@ -423,101 +223,819 @@ components: type: http scheme: bearer schemas: - Customer: - allOf: - - type: object + PlanListResponseArray: + type: object + properties: + subscriptions: + type: array + items: {} + pages: + type: array + items: {} + domain: + type: string + name: + type: string + plan_code: + type: string + description: + nullable: true + amount: + type: integer + interval: + type: string + invoice_limit: + type: integer + send_invoices: + type: boolean + send_sms: + type: boolean + hosted_page: + type: boolean + hosted_page_url: + nullable: true + hosted_page_summary: + nullable: true + currency: + type: string + migrate: + type: boolean + is_deleted: + type: boolean + is_archived: + type: boolean + id: + type: integer + integration: + type: integer + createdAt: + type: string + updatedAt: + type: string + total_subscriptions: + type: integer + active_subscriptions: + type: integer + total_subscriptions_revenue: + type: integer + required: + - subscriptions + - pages + - domain + - name + - plan_code + - description + - amount + - interval + - invoice_limit + - send_invoices + - send_sms + - hosted_page + - hosted_page_url + - hosted_page_summary + - currency + - migrate + - is_deleted + - is_archived + - id + - integration + - createdAt + - updatedAt + - total_subscriptions + - active_subscriptions + - total_subscriptions_revenue + PlanListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/PlanListResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer required: - - email + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + ErrorMeta: + type: object + description: Extra details to help with a resolution of the error + properties: + nextStep: + type: string + description: A summarised solution for the error + Error: + type: object + properties: + status: + type: boolean + description: An indicator for the state of the request + message: + type: string + description: A short description of the error + meta: + $ref: '#/components/schemas/ErrorMeta' + type: + type: string + description: A tag to indicate the type of the error + code: + type: string + description: The error code + enum: + - validation_error + - processor_error + - api_error + errorCodeMappingNotFound: + type: boolean + description: An indicator for error mapping for the request + PlanCreate: + type: object + required: + - name + - amount + - interval + properties: + name: + description: Name of plan + type: string + amount: + description: Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR + type: integer + interval: + description: Interval in words. Valid intervals are daily, weekly, monthly,biannually, annually + type: string + description: + description: A description for this plan + type: string + send_invoices: + description: Set to false if you don't want invoices to be sent to your customers + type: boolean + send_sms: + description: Set to false if you don't want text messages to be sent to your customers + type: boolean + currency: + description: Currency in which amount is set. Allowed values are NGN, GHS, ZAR or USD + type: string + invoice_limit: + description: |- + Number of invoices to raise during subscription to this plan. + Can be overridden by specifying an invoice_limit while subscribing. + type: integer + PlanCreateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object properties: - email: - description: Customer's email address + currency: + type: string + name: + type: string + amount: + type: integer + interval: + type: string + integration: + type: integer + domain: + type: string + plan_code: + type: string + invoice_limit: + type: integer + send_invoices: + type: boolean + send_sms: + type: boolean + hosted_page: + type: boolean + migrate: + type: boolean + is_archived: + type: boolean + id: + type: integer + createdAt: + type: string + updatedAt: type: string - - type: object + required: + - currency + - name + - amount + - interval + - integration + - domain + - plan_code + - invoice_limit + - send_invoices + - send_sms + - hosted_page + - migrate + - is_archived + - id + - createdAt + - updatedAt + required: + - status + - message + - data + SubscriptionListResponseArray: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + start: + type: integer + quantity: + type: integer + subscription_code: + type: string + email_token: + type: string + amount: + type: integer + cron_expression: + type: string + nullable: true + next_payment_date: + type: string + nullable: true + open_invoice: + nullable: true + createdAt: + type: string + integration: + type: integer + plan: + type: object properties: - first_name: - description: Customer's first name + id: + type: integer + domain: type: string - example: Some - last_name: - description: Customer's last name + name: type: string - example: Body - phone: - description: Customer's phone number + plan_code: type: string - example: '+2348123456789' - metadata: - description: Stringified JSON object of custom data + description: + nullable: true + amount: + type: integer + interval: + type: string + send_invoices: + type: boolean + send_sms: + type: boolean + currency: + type: string + integration: + type: integer + createdAt: + type: string + updatedAt: type: string - - type: object required: - - authorization_code + - id + - domain + - name + - plan_code + - description + - amount + - interval + - send_invoices + - send_sms + - currency + - integration + - createdAt + - updatedAt + authorization: + type: object properties: authorization_code: - description: Customer's authorization code to be deactivated type: string - - type: object + bin: + type: string + nullable: true + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + nullable: true + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: integer + signature: + type: string + nullable: true + account_name: + nullable: true required: - - customer + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + customer: + type: object properties: - customer: - description: 'Customer''s code, or email address' + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + metadata: type: string risk_action: - description: | - One of the possible risk actions [ default, allow, deny ]. allow to whitelist. - deny to blacklist. Customers start with a default risk action. - type: string - enum: - - default - - allow - - deny - - type: object + type: string + international_format_phone: + type: string required: - - type - - country - - bvn - - bank_code - - account_number + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + invoice_limit: + type: integer + split_code: + nullable: true + payments_count: + type: integer + most_recent_invoice: + nullable: true + metadata: + type: object + nullable: true + required: + - id + - domain + - status + - start + - quantity + - subscription_code + - email_token + - amount + - cron_expression + - next_payment_date + - open_invoice + - createdAt + - integration + - plan + - authorization + - customer + - invoice_limit + - split_code + - payments_count + - most_recent_invoice + - metadata + SubscriptionListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/SubscriptionListResponseArray' + meta: + type: object properties: - type: - description: Predefined types of identification. - type: string - enum: - - bvn - - bank_account - country: - description: Two-letter country code of identification issuer - type: string - example: NG - bvn: - description: Customer's Bank Verification Number + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: type: integer - example: 0123456789 - bank_code: - description: 'You can get the list of bank codes by calling the List Banks endpoint (https://api.paystack.co/bank).' + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + SubscriptionCreate: + type: object + required: + - customer + - plan + properties: + customer: + description: Customer's email address or customer code + type: string + plan: + description: Plan code + type: string + authorization: + description: |- + If customer has multiple authorizations, you can set the desired authorization you wish to use for this subscription here. + If this is not supplied, the customer's most recent authorization would be used + type: string + start_date: + description: Set the date for the first debit. (ISO 8601 format) e.g. 2017-05-16T00:30:13+01:00 + type: string + format: date-time + SubscriptionCreateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + customer: + type: integer + plan: + type: integer + integration: + type: integer + domain: type: string - example: '007' - account_number: - description: Customer's bank account number. + start: + type: integer + status: type: string - example: '0111111111' - first_name: - description: Customer's first name + quantity: + type: integer + amount: + type: integer + authorization: + type: integer + invoice_limit: + type: integer + split_code: + nullable: true + subscription_code: type: string - example: Uchenna - last_name: - description: Customer's last name + email_token: type: string - example: Okoro - Error: + id: + type: integer + cancelledAt: + nullable: true + createdAt: + type: string + updatedAt: + type: string + cron_expression: + type: string + next_payment_date: + type: string + easy_cron_id: + type: string + nullable: true + open_invoice: + type: string + nullable: true + metadata: + type: object + nullable: true + required: + - customer + - plan + - integration + - domain + - start + - status + - quantity + - amount + - authorization + - invoice_limit + - split_code + - subscription_code + - email_token + - id + - cancelledAt + - createdAt + - updatedAt + - cron_expression + - next_payment_date + - easy_cron_id + - open_invoice + - metadata + required: + - status + - message + - data + Currency: + description: List of all support currencies + type: string + enum: + - GHS + - KES + - NGN + - ZAR + - USD + example: GHS + SplitSubaccounts: + type: object + properties: + subaccount: + description: Subaccount code of the customer or partner + type: string + share: + description: The percentage or flat quota of the customer or partner + type: string + SplitCreate: + type: object + description: | + Split configuration for transactions + properties: + name: + description: Name of the transaction split + type: string + type: + description: The type of transaction split you want to create. + type: string + enum: + - percentage + - flat + subaccounts: + description: A list of object containing subaccount code and number of shares + type: array + items: + $ref: '#/components/schemas/SplitSubaccounts' + currency: + description: The transaction currency + type: string + enum: + - NGN + - GHS + - ZAR + - USD + bearer_type: + description: This allows you specify how the transaction charge should be processed + type: string + enum: + - subaccount + - account + - all-proportional + - all + bearer_subaccount: + description: This is the subaccount code of the customer or partner that would bear the transaction charge if you specified subaccount as the bearer type + type: string + required: + - name + - type + - subaccounts + - currency + TransactionInitialize: + description: Initialize a transaction + type: object + required: + - email + - amount + properties: + email: + description: Customer's email address + type: string + amount: + description: | + Amount should be in smallest denomination of the currency. For example if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR + type: integer + currency: + $ref: '#/components/schemas/Currency' + reference: + description: Unique transaction reference. Only -, ., = and alphanumeric characters allowed. + type: string + channels: + description: An array of payment channels to control what channels you want to make available to the user to make a payment with + type: array + items: + type: string + enum: + - card + - bank + - ussd + - qr + - eft + - mobile_money + - bank_transfer + callback_url: + description: | + Fully qualified url, e.g. https://example.com/ to redirect your customers to after a successful payment. Use this to override the callback url provided on the dashboard for this transaction + type: string + plan: + description: | + If transaction is to create a subscription to a predefined plan, provide plan code here. + This would invalidate the value provided in amount + type: string + invoice_limit: + description: Number of times to charge customer during subscription to plan + type: integer + split_code: + description: The split code of the transaction split + type: string + split: + $ref: '#/components/schemas/SplitCreate' + subaccount: + description: The code for the subaccount that owns the payment + type: string + transaction_charge: + description: | + A flat fee to charge the subaccount for a transaction. + This overrides the split percentage set when the subaccount was created + type: string + bearer: + description: The bearer of the transaction charge + type: string + enum: + - account + - subaccount + label: + description: Used to replace the email address shown on the Checkout + type: string + metadata: + description: JSON object of custom data + type: object + example: + email: test@demo.com + amount: 10000 + TransactionInitializeResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + authorization_url: + type: string + access_code: + type: string + reference: + type: string + required: + - authorization_url + - access_code + - reference + required: + - status + - message + - data + TransactionInitializeBadRequestModel: type: object + description: | + Error response returned when a transaction is initialized with incorrect parameters properties: status: type: boolean + description: An indicator for the state of the request message: type: string - Response: + description: A short description of the error + meta: + $ref: '#/components/schemas/ErrorMeta' + type: + type: string + description: A tag to indicate the type of the error + enum: + - validation_error + - processor_error + - api_error + code: + type: string + description: The error code + errorCodeMappingNotFound: + type: boolean + description: An indicator for error mapping for the request + example: + status: false + message: Duplicate Transaction Reference + meta: + nextStep: Try and create the Transaction or Charge with a new reference + type: validation_error + code: duplicate_reference + errorCodeMappingNotFound: false + TransactionChargeAuthorization: + type: object + required: + - email + - amount + - authorization_code + properties: + email: + description: Customer's email address + type: string + amount: + description: Amount in the lower denomination of your currency + type: integer + authorization_code: + description: Valid authorization code to charge + type: string + reference: + description: Unique transaction reference. Only -, ., = and alphanumeric characters allowed. + type: string + currency: + $ref: '#/components/schemas/Currency' + split_code: + description: The split code of the transaction split + type: string + split: + $ref: '#/components/schemas/SplitCreate' + subaccount: + description: The code for the subaccount that owns the payment + type: string + transaction_charge: + description: |- + A flat fee to charge the subaccount for a transaction. + This overrides the split percentage set when the subaccount was created + type: string + bearer: + description: The bearer of the transaction charge + type: string + enum: + - account + - subaccount + metadata: + description: Stringified JSON object of custom data + type: string + queue: + description: If you are making a scheduled charge call, it is a good idea to queue them so the processing system does not get overloaded causing transaction processing errors. + type: boolean + example: + email: jb@email.com + amount: 30000 + authorization_code: AUTH_df1l5ehnym + ChargeAuthorizationResponse: type: object properties: status: @@ -526,26 +1044,201 @@ components: type: string data: type: object + properties: + amount: + type: integer + currency: + type: string + transaction_date: + type: string + status: + type: string + reference: + type: string + domain: + type: string + metadata: + type: string + gateway_response: + type: string + message: + type: string + nullable: true + channel: + type: string + ip_address: + nullable: true + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + nullable: true + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + metadata: + type: object + properties: + calling_code: + type: string + nullable: true + risk_action: + type: string + international_format_phone: + type: string + nullable: true + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + nullable: true + id: + type: integer + required: + - amount + - currency + - transaction_date + - status + - reference + - domain + - metadata + - gateway_response + - message + - channel + - ip_address + - log + - fees + - authorization + - customer + - plan + - id + required: + - status + - message + - data responses: - Ok: - description: Successful operation + PlanListSuccess: + description: Plan List response content: application/json: schema: - type: object - properties: - status: - type: boolean - message: - type: string - data: - type: object - Created: - description: Resource created + $ref: '#/components/schemas/PlanListResponse' + Unauthorized: + description: Unauthorized operation content: application/json: schema: - $ref: '#/components/schemas/Response' + $ref: '#/components/schemas/Error' + example: + status: false + message: Invalid key NotFound: description: Entity not found content: @@ -555,20 +1248,27 @@ components: example: status: false message: Entity not found - Unauthorized: - description: Unauthorized operation + PlanCreateSuccess: + description: Plan Create response content: application/json: schema: - $ref: '#/components/schemas/Error' - example: - status: false - message: Invalid key - GeneralError: - description: General Error + $ref: '#/components/schemas/PlanCreateResponse' + SubscriptionListSuccess: + description: Subscription List response content: application/json: schema: - $ref: '#/components/schemas/Error' -security: - - bearerAuth: [] + $ref: '#/components/schemas/SubscriptionListResponse' + SubscriptionCreateSuccess: + description: Subscription Create response + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriptionCreateResponse' + TransactionInitializeBadRequestResponse: + description: Responses from the Transaction Initialize endpoint + content: + application/json: + schema: + $ref: '#/components/schemas/TransactionInitializeBadRequestModel' diff --git a/dist/paystack.yaml b/dist/paystack.yaml index 23db360..15a66b9 100644 --- a/dist/paystack.yaml +++ b/dist/paystack.yaml @@ -3,30 +3,126 @@ info: title: Paystack description: The OpenAPI specification of the Paystack API that merchants and developers can harness to build financial solutions in Africa. version: 1.0.0 + contact: + email: techsupport@paystack.com servers: - - url: 'https://api.paystack.co' + - url: https://api.paystack.co description: Base API endpoint +security: + - bearerAuth: [] tags: - name: Transaction + description: | + A collection of endpoints for managing payments + x-product-name: Transactions + - name: Charge + description: | + A collection of endpoints for configuring and managing the payment channels when initiating a payment + x-product-name: Charges + - name: Bulk Charge + description: | + A collection of endpoints for creating and managing multiple recurring payments + x-product-name: Bulk Charges + - name: Subaccount + description: | + A collection of endpoints for creating and managing accounts for sharing a + transaction with + x-product-name: Subaccounts - name: Split + description: | + A collection of endpoints for spliting a transaction and managing the splits + x-product-name: Transaction Splits + - name: Terminal + description: | + A collection of endpoints for building delightful in-person payment experiences + x-product-name: Terminal + - name: Virtual Terminal + description: | + A collection of endpoints for building in-person payments without a physical terminal + x-product-name: Virtual Terminal - name: Customer + description: | + A collection of endpoints for creating and managing customers on an integration + x-product-name: Customers + - name: Direct Debit + description: | + A collection of endpoints for managing Direct Debit + x-product-name: Direct Debit - name: Dedicated Virtual Account - - name: Subaccount + description: | + A collection of endpoints for creating and managing payment accounts for customers + x-product-name: Dedicated Virtual Accounts + - name: Apple Pay + description: | + A collection of endpoints for managing application's top-level domain or subdomain accepting payment via Apple Pay + x-product-name: Apple Pay - name: Plan + description: | + A collection of endpoints for creating and managing recurring payment + configuration + x-product-name: Plans - name: Subscription + description: | + A collection of endpoints for creating and managing recurring payments + x-product-name: Subscriptions + - name: Transfer Recipient + description: | + A collection of endpoints for creating and managing beneficiaries that you send money to + x-product-name: Transfer Recipients + - name: Transfer + description: | + A collection of endpoints for automating sending money to beneficiaries + x-product-name: Transfers - name: Product + description: | + A collection of endpoints for creating and managing inventories + x-product-name: Products + - name: Storefront + description: | + A collection of endpoints for creating and managing storefronts + x-product-name: Storefronts + - name: Order + description: | + A collection of endpoints for creating and managing orders + x-product-name: Orders - name: Page + description: | + A collection of endpoints for creating and managing links for the + collection of payment for products + x-product-name: Payment Pages - name: Payment Request + description: | + A collection of endpoints for managing invoices for the payment of goods + and services + x-product-name: Payment Requests - name: Settlement - - name: Transfer Recipient - - name: Transfer + description: | + A collection of endpoints for gaining insights into payouts + x-product-name: Settlements - name: Balance - - name: Charge - - name: Bulk Charge + description: | + A collection of endpoints gaining insights into the amount on an integration + x-product-name: Balance - name: Integration + description: | + A collection of endpoints for managing some settings on an integration + x-product-name: Integration - name: Refund + description: | + A collection of endpoints for creating and managing transaction reimbursement + x-product-name: Refunds - name: Dispute - - name: Verification + description: | + A collection of endpoints for managing transactions complaint made by customers + x-product-name: Disputes + - name: Bank + description: | + A collection of endpoints for managing bank details + x-product-name: Banks + - name: Miscellaneous + description: | + A collection of endpoints that provides utility functions + x-product-name: Miscellaneous paths: /transaction/initialize: post: @@ -37,120 +133,84 @@ paths: description: Create a new transaction requestBody: content: + application/json: + schema: + $ref: '#/components/schemas/TransactionInitialize' application/x-www-form-urlencoded: schema: - $ref: '#/paths/~1transaction~1initialize/post/requestBody/content/application~1json/schema' + $ref: '#/components/schemas/TransactionInitialize' + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TransactionInitializeResponse' + '400': + $ref: '#/components/responses/TransactionInitializeBadRequestResponse' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + /transaction/charge_authorization: + post: + tags: + - Transaction + summary: Charge Authorization + operationId: transaction_chargeAuthorization + description: Charge all authorizations marked as reusable with this endpoint whenever you need to receive payments + requestBody: + content: application/json: schema: - type: object - required: - - email - - amount - properties: - email: - description: Customer's email address - type: string - example: person@email.com - amount: - description: 'Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR' - type: integer - example: 10247 - currency: - description: The transaction currency - type: string - enum: - - NGN - - GHS - - ZAR - - USD - reference: - description: 'Unique transaction reference. Only -, ., = and alphanumeric characters allowed.' - type: string - example: 123.uniq=ref- - callback_url: - description: Fully qualified url. Use this to override the callback url provided on the dashboard for this transaction - type: string - example: 'https://example.com/' - plan: - description: |- - If transaction is to create a subscription to a predefined plan, provide plan code here. - This would invalidate the value provided in amount - type: string - example: PLN_123wede - invoice_limit: - description: Number of times to charge customer during subscription to plan - type: integer - example: 10 - metadata: - description: Stringified JSON object of custom data - type: object - example: - metadata: - cart_id: 398 - custom_fields: - - display_name: Invoice ID - variable_name: Invoice ID - value: 209 - - display_name: Cart Items - variable_name: cart_items - value: '3 bananas, 12 mangoes' - channels: - description: An array of payment channels to control what channels you want to make available to the user to make a payment with - type: array - enum: - - card - - bank - - ussd - - qr - - eft - - mobile_money - - bank_transfer - split_code: - description: The split code of the transaction split - type: string - example: SPL_123AbZ - subaccount: - description: The code for the subaccount that owns the payment - type: string - example: ACCT_23abcdefgh - transaction_charge: - description: |- - A flat fee to charge the subaccount for a transaction. - This overrides the split percentage set when the subaccount was created - type: integer - example: 12300 - bearer: - description: The bearer of the transaction charge - type: string - enum: - - account - - subaccount + $ref: '#/components/schemas/TransactionChargeAuthorization' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransactionChargeAuthorization' + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ChargeAuthorizationResponse' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + /transaction/partial_debit: + post: + tags: + - Transaction + summary: Partial Debit + operationId: transaction_partialDebit + description: Retrieve part of a payment from a customer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TransactionPartialDebit' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransactionPartialDebit' responses: '200': - description: Request successful + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Initiailize Transaction: - value: - status: true - message: Authorization URL created - data: - authorization_url: 'https://checkout.paystack.com/spnajmit2hgi2c1' - access_code: spandaoende - reference: ad123ada + $ref: '#/components/schemas/TransactionPartialDebitResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error - '/transaction/verify/{reference}': + /transaction/verify/{reference}: get: tags: - Transaction summary: Verify Transaction operationId: transaction_verify + description: Verify a previously initiated transaction using it's reference parameters: - name: reference in: path @@ -158,13 +218,18 @@ paths: required: true schema: type: string + example: re4lyvq3s3 responses: '200': - $ref: '#/paths/~1product/post/responses/201' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/VerifyResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error /transaction: @@ -173,79 +238,186 @@ paths: - Transaction summary: List Transactions operationId: transaction_list + description: List transactions that has occurred on your integration parameters: - in: query - name: perPage + name: use_cursor + description: A flag to indicate if cursor based pagination should be used + schema: + type: boolean + example: true + - in: query + name: next + description: | + An alphanumeric value returned for every cursor based retrieval, used to retrieve the next set of data + schema: + type: string + - in: query + name: previous + description: | + An alphanumeric value returned for every cursor based retrieval, used to retrieve the previous set of data + schema: + type: string + - in: query + name: per_page schema: type: integer - description: Number of records to fetch per page + description: The number of records to fetch per request - in: query name: page schema: type: integer - description: The section to retrieve + description: The offset to retrieve data from - in: query name: from + description: The start date schema: type: string format: date-time - description: The start date - in: query name: to + description: The end date schema: type: string format: date-time - description: The end date + - in: query + name: status + description: Filter transaction by status + schema: + type: string + enum: + - success + - failed + - abandoned + - reversed + - in: query + name: source + description: The origin of the payment + schema: + type: string + enum: + - merchantApi + - checkout + - pos + - virtualTerminal + - in: query + name: terminal_id + description: Filter transactions by a terminal ID + schema: + type: string + - in: query + name: virtual_account_number + description: Filter transactions by a virtual account number + schema: + type: string + - in: query + name: customer_code + description: Filter transactions by a customer code + schema: + type: string + - in: query + name: amount + description: Filter transactions by a specific amount + schema: + type: integer + format: int64 + - in: query + name: settlement + description: The settlement ID to filter for settled transactions + schema: + type: integer + format: int64 + - in: query + name: channel + description: The payment method the customer used to complete the transaction + schema: + type: string + enum: + - card + - pos + - bank + - dedicated_nuban + - ussd + - bank_transfer + - in: query + name: subaccount_code + description: Filter transaction by subaccount code + schema: + type: string + - in: query + name: split_code + description: Filter transaction by split code + schema: + type: string responses: '200': - $ref: '#/paths/~1product/post/responses/201' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TransactionListResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - '/transaction/{id}': + /transaction/{id}: get: tags: - Transaction summary: Fetch Transaction operationId: transaction_fetch + description: Fetch a transaction to get its details parameters: - name: id in: path description: The ID of the transaction to fetch required: true schema: - type: string + type: integer + format: int64 + example: 4099260516 responses: '200': - $ref: '#/paths/~1product/post/responses/201' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TransactionFetchResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - '/transaction/timeline/{id_or_reference}': + /transaction/timeline/{id}: get: tags: - Transaction summary: Fetch Transaction Timeline operationId: transaction_timeline + description: Fetch the steps taken from the initiation to the completion of a transaction parameters: - - name: id_or_reference + - name: id in: path required: true + description: The ID of the transaction to fetch schema: - type: string + type: integer + format: int64 + example: 3936799950 responses: '200': - $ref: '#/paths/~1product/post/responses/201' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TransactionTimelineResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error /transaction/totals: @@ -254,36 +426,33 @@ paths: - Transaction summary: Transaction Totals operationId: transaction_totals + description: Get the total amount of all transactions parameters: - in: query - name: perPage - schema: - type: integer - description: Number of records to fetch per page - - in: query - name: page - schema: - type: integer - description: The section to retrieve - - in: query + description: The start date name: from schema: type: string format: date-time - description: The start date + example: '2024-06-01T00:00:01Z' - in: query name: to + description: The end date schema: type: string format: date-time - description: The end date + example: '2024-06-30T13:36:54Z' responses: '200': - $ref: '#/paths/~1product/post/responses/201' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TransactionTotalsResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error /transaction/export: @@ -291,2643 +460,2305 @@ paths: tags: - Transaction summary: Export Transactions - operationId: transaction_download + operationId: transaction_export + x-operationId: transaction_exportTransaction + description: Download transactions that occurred on your integration for a specific timeframe parameters: - - in: query - name: perPage - schema: - type: integer - description: Number of records to fetch per page - - in: query - name: page - schema: - type: integer - description: The section to retrieve - in: query name: from + description: The start date schema: type: string format: date-time - description: The start date + example: '2024-06-01T00:00:01Z' - in: query name: to + description: The end date schema: type: string format: date-time - description: The end date + example: '2024-06-30T13:36:54Z' + - in: query + name: status + description: Filter by the status of the transaction + schema: + type: string + enum: + - success + - failed + - abandoned + - reversed + - all + example: success + - in: query + name: customer + description: Filter by customer ID + schema: + type: number + example: 123172416 + - in: query + name: subaccount_code + description: Filter by subaccount code + schema: + type: string + example: ACCT_dskvlw3y3dMukmt + - in: query + name: settlement + description: Filter by the settlement ID + schema: + type: integer + format: int64 + example: 5687910 responses: '200': - $ref: '#/paths/~1product/post/responses/201' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TransactionExportResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - /transaction/charge_authorization: + /charge: post: tags: - - Transaction - summary: Charge Authorization - operationId: transaction_chargeAuthorization + - Charge + summary: Create Charge + operationId: charge_create + description: Initiate a payment by integrating the payment channel of your choice. requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1transaction~1charge_authorization/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - email - - amount - - authorization_code - properties: - email: - description: Customer's email address used during the first transaction - type: string - example: person@email.com - amount: - description: 'Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR' - type: integer - example: 10247 - authorization_code: - description: Valid authorization code to charge - type: string - example: AUTH_CODE - reference: - description: 'Unique transaction reference. Only -, ., = and alphanumeric characters allowed.' - type: string - example: 123.uniq=ref-2 - currency: - description: The transaction currency - type: string - enum: - - NGN - - GHS - - ZAR - - USD - metadata: - description: Stringified JSON object of custom data - type: object - example: - cart_id: 398 - custom_fields: - - display_name: Invoice ID - variable_name: Invoice ID - value: 209 - - display_name: Cart Items - variable_name: cart_items - value: '3 bananas, 12 mangoes' - split_code: - description: The split code of the transaction split - type: string - example: SPL_123AbZ - subaccount: - description: The code for the subaccount that owns the payment - type: string - example: ACCT_23abcdefgh - transaction_charge: - description: |- - A flat fee to charge the subaccount for a transaction. - This overrides the split percentage set when the subaccount was created - type: integer - example: 12300 - bearer: - description: The bearer of the transaction charge - type: string - enum: - - account - - subaccount - queue: - description: 'If you are making a scheduled charge call, it is a good idea to queue them so the processing system does not get overloaded causing transaction processing errors.' - type: boolean - responses: - '200': - description: Request successful - content: - application/json: - schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Charge Authorization: - value: - status: true - message: Charge attempted - data: - amount: 500000 - currency: NGN - reference: 123.uniq=ref-2 - metadata: - cart_id: 398 - custom_fields: - - display_name: Invoice ID - variable_name: Invoice ID - value: 209 - split_code: SPL_123AbZ - subaccount: ACCT_23abcdefgh - '401': - $ref: '#/paths/~1page/get/responses/401' - default: - description: Server error - /transaction/check_authorization: - post: - tags: - - Transaction - summary: Check Authorization - operationId: transaction_checkAuthorization - requestBody: - content: + allOf: + - $ref: '#/components/schemas/ChargeCreate' + - type: object + properties: + bank: + $ref: '#/components/schemas/Bank' + - type: object + properties: + mobile_money: + $ref: '#/components/schemas/MobileMoney' + - type: object + properties: + ussd: + $ref: '#/components/schemas/USSD' + - type: object + properties: + eft: + $ref: '#/components/schemas/EFT' application/x-www-form-urlencoded: schema: - $ref: '#/paths/~1transaction~1check_authorization/post/requestBody/content/application~1json/schema' + allOf: + - $ref: '#/components/schemas/ChargeCreate' + - type: object + properties: + bank: + $ref: '#/components/schemas/Bank' + - type: object + properties: + mobile_money: + $ref: '#/components/schemas/MobileMoney' + - type: object + properties: + ussd: + $ref: '#/components/schemas/USSD' + - type: object + properties: + eft: + $ref: '#/components/schemas/EFT' + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ChargeCreateResponse' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + /charge/submit_pin: + post: + tags: + - Charge + summary: Submit PIN + operationId: charge_submitPin + description: Submit PIN to continue a charge + requestBody: + content: application/json: schema: - type: object - required: - - email - - amount - properties: - email: - description: Customer's email address - type: string - example: person@example.com - amount: - description: 'Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR' - type: integer - example: 10245 - authorization_code: - description: Valid authorization code to charge - type: string - example: AUTH_CODE - currency: - description: The transaction currency - type: string - enum: - - NGN - - GHS - - ZAR - - USD + $ref: '#/components/schemas/ChargeSubmitPin' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ChargeSubmitPin' responses: '200': - $ref: '#/paths/~1page/get/responses/200' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ChargeSubmitPinResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error - /transaction/partial_debit: + /charge/submit_otp: post: tags: - - Transaction - summary: Partial Debit - operationId: transaction_partialDebit + - Charge + summary: Submit OTP + operationId: charge_submitOtp + description: Submit OTP to complete a charge requestBody: content: + application/json: + schema: + $ref: '#/components/schemas/ChargeSubmitOTP' application/x-www-form-urlencoded: schema: - $ref: '#/paths/~1transaction~1partial_debit/post/requestBody/content/application~1json/schema' + $ref: '#/components/schemas/ChargeSubmitOTP' + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ChargeSubmitOtpResponse' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + /charge/submit_phone: + post: + tags: + - Charge + summary: Submit Phone + operationId: charge_submitPhone + description: Submit phone number when requested + requestBody: + content: application/json: schema: - type: object - required: - - email - - amount - - authorization_code - - currency - properties: - email: - description: Customer's email address - type: string - example: person@email.com - amount: - description: 'Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR' - type: integer - example: 10247 - authorization_code: - description: Valid authorization code to charge - type: string - example: AUTH_CODE - currency: - description: The transaction currency - type: string - enum: - - NGN - - GHS - - ZAR - - USD - reference: - description: 'Unique transaction reference. Only -, ., = and alphanumeric characters allowed.' - type: string - example: 123.uniq=ref-3 - at_least: - description: Minimum amount to charge - type: integer - example: 5500 + $ref: '#/components/schemas/ChargeSubmitPhone' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ChargeSubmitPhone' responses: '200': - description: Request successful + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Partial Debit: - value: - status: true - message: Charge attempted - data: - amount: 10247 - currency: NGN - transaction_date: '2022-09-22T07:36:03.000Z' - status: success - reference: dycmjmd23f1hygq - domain: test - metadata: '' - gateway_response: Approved - message: null - channel: card - ip_address: null - log: null - fees: 52 - authorization: - authorization_code: AUTH_15qn6qmeip - bin: '408408' - last4: '4081' - exp_month: '12' - exp_year: '2030' - channel: card - card_type: 'visa ' - bank: TEST BANK - country_code: NG - brand: visa - reusable: true - signature: SIG_yEXu7dLBeqG0kU7g95Ke - account_name: null - customer: - id: 54219771 - first_name: null - last_name: null - email: some.other@body.com - customer_code: CUS_toq66lmva87v66g - phone: null - metadata: null - risk_action: default - international_format_phone: null - plan: 0 - requested_amount: 10247 - id: 2122110499 - '401': - $ref: '#/paths/~1page/get/responses/401' - default: - description: Server error - '/transaction/{id}/event': - get: + $ref: '#/components/schemas/ChargeSubmitPhoneResponse' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + /charge/submit_birthday: + post: tags: - - Transaction - summary: Get Transaction Event - operationId: transaction_event - parameters: - - name: id - in: path - required: true - schema: - type: string + - Charge + summary: Submit Birthday + operationId: charge_submitBirthday + description: Submit the customer's birthday when requested + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ChargeSubmitBirthday' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ChargeSubmitBirthday' responses: '200': - $ref: '#/paths/~1product/post/responses/201' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ChargeSubmitBirthdayResponse' '401': - $ref: '#/paths/~1page/get/responses/401' - '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + /charge/submit_address: + post: + tags: + - Charge + summary: Submit Address + operationId: charge_submitAddress + description: Send the details of the customer's address for address verification + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ChargeSubmitAddress' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ChargeSubmitAddress' + responses: + '200': + $ref: '#/components/responses/Ok' + '401': + $ref: '#/components/responses/Unauthorized' default: description: Server error - '/transaction/{id}/session': + /charge/{reference}: get: tags: - - Transaction - summary: Get Transaction Session - operationId: transaction_session + - Charge + summary: Check pending charge + operationId: charge_check + description: | + When you get `pending` as a charge status or if there was an exception when calling any of the `/charge` endpoints, wait 10 seconds or more, then make a check to see if its status has changed. Don't call too early as you may get a lot more pending than you should. parameters: - - name: id + - name: reference in: path required: true + description: The reference of the ongoing transaction schema: type: string + example: 5bwib5v6anhe9xa responses: '200': - $ref: '#/paths/~1product/post/responses/201' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ChargeCheckPendingResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - /split: + /bulkcharge: post: tags: - - Split - summary: Create Split - operationId: split_create - description: Create a new transaction split + - Bulk Charge + summary: Initiate Bulk Charge + operationId: bulkCharge_initiate + description: Charge multiple customers in batches requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1split/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - name - - type - - subaccounts - - currency - properties: - name: - description: Name of the transaction split - type: string - example: Testing Accounts - type: - description: The type of transaction split you want to create. - type: string - enum: - - percentage - - flat - subaccounts: - description: A list of object containing subaccount code and number of shares - type: array - items: - $ref: '#/paths/~1split~1%7Bid%7D~1subaccount~1add/post/requestBody/content/application~1json/schema' - currency: - description: The transaction currency - type: string - enum: - - NGN - - GHS - - ZAR - - USD - bearer_type: - description: This allows you specify how the transaction charge should be processed - type: string - enum: - - subaccount - - account - - all-proportional - - all - bearer_subaccount: - description: This is the subaccount code of the customer or partner that would bear the transaction charge if you specified subaccount as the bearer type - type: string - example: ACCT_03tb3u7jgwb4 + type: array + items: + $ref: '#/components/schemas/BulkChargeInitiate' + application/x-www-form-urlencoded: + schema: + type: array + items: + $ref: '#/components/schemas/BulkChargeInitiate' responses: '200': - description: Split Creation + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Create Split: - value: - status: true - message: Split created - data: - id: 142 - name: Test Doc - type: percentage - currency: NGN - integration: 428626 - domain: test - split_code: SPL_e7jnRLtzla - active: true - bearer_type: subaccount - bearer_subaccount: 40809 - createdAt: 2020-06-30T11:42:29.150Z - updatedAt: 2020-06-30T11:42:29.150Z - subaccounts: - - subaccount: - id: 40809 - subaccount_code: ACCT_z3x6z3nbo14xsil - business_name: Business Name - description: Business Description - primary_contact_name: null - primary_contact_email: null - primary_contact_phone: null - metadata: null - percentage_charge: 20 - settlement_bank: Business Bank - account_number: 1234567890 - share: 20 - - subaccount: - id: 40809 - subaccount_code: ACCT_pwwualwty4nhq9d - business_name: Business Name - description: Business Description - primary_contact_name: null - primary_contact_email: null - primary_contact_phone: null - metadata: null - percentage_charge: 20 - settlement_bank: Business Bank - account_number: 0123456789 - share: 30 - total_subaccounts: 2 - '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/schemas/BulkChargeInitiateResponse' + '401': + $ref: '#/components/responses/Unauthorized' default: description: Server error get: tags: - - Split - summary: List Splits - operationId: split_list + - Bulk Charge + summary: List Bulk Charge Batches + operationId: bulkCharge_list + description: List all bulk charge batches. parameters: - - name: name - in: query - schema: - type: string - - name: active - in: query - schema: - type: string - - name: sort_by - in: query - schema: - type: string - - name: from - in: query - schema: - type: string - - name: to - in: query + - in: query + name: perPage + description: Number of records to fetch per page schema: - type: string - - name: perPage - in: query + type: integer + - in: query + name: page + description: The offset to retrieve data from schema: - type: string - - name: page - in: query + type: integer + - in: query + name: status + description: Filter by the status of the charges schema: type: string + enum: + - active + - paused + - complete responses: '200': - $ref: '#/paths/~1product/post/responses/201' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/BulkChargeListResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - '/split/{id}': + /bulkcharge/{code}: parameters: - - name: id + - name: code + description: The code for the charge whose batches you want to retrieve in: path required: true schema: type: string + example: BCH_180tl7oq7cayggh get: tags: - - Split - summary: Fetch Split - operationId: split_fetch + - Bulk Charge + summary: Fetch Bulk Charge Batch + operationId: bulkCharge_fetch + description: | + This endpoint retrieves a specific batch code. It also returns useful information on its progress by + way of the `total_charges` and `pending_charges` attributes. responses: '200': - $ref: '#/paths/~1product/post/responses/201' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/BulkChargeFetchResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - put: + /bulkcharge/{code}/charges: + get: tags: - - Split - summary: Update Split - operationId: split_update - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1split~1%7Bid%7D/put/requestBody/content/application~1json/schema' - application/json: - schema: - type: object - properties: - name: - description: Name of the transaction split - type: string - active: - description: 'Toggle status of split. When true, the split is active, else it''s inactive' - type: boolean - bearer_type: - description: This allows you specify how the transaction charge should be processed - type: string - enum: - - subaccount - - account - - all-proportional - - all - bearer_subaccount: - description: This is the subaccount code of the customer or partner that would bear the transaction charge if you specified subaccount as the bearer type - type: string + - Bulk Charge + summary: List Charges in a Batch + operationId: bulkCharge_charges + description: This endpoint retrieves the charges associated with a specified batch code + parameters: + - name: code + description: An code for the batch whose charges you want to retrieve + in: path + required: true + schema: + type: string + example: BCH_180tl7oq7cayggh + - in: query + name: perPage + description: Number of records to fetch per page + schema: + type: integer + - in: query + name: page + description: The offset to retrieve data from + schema: + type: integer + - in: query + name: status + description: Filter by the status of the charges + schema: + type: string + enum: + - success + - failed + - pending + - error + - inactive_authorization responses: '200': - $ref: '#/paths/~1page/get/responses/200' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/BulkChargeFetchBulkBatchChargesResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - '/split/{id}/subaccount/add': - post: + /bulkcharge/pause/{code}: + get: tags: - - Split - summary: Add Subaccount to Split - operationId: split_addSubaccount - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1split~1%7Bid%7D~1subaccount~1add/post/requestBody/content/application~1json/schema' - application/json: - schema: - type: object - properties: - subaccount: - description: Subaccount code of the customer or partner - type: string - example: ACCT_03tb3u7jgwb4v - share: - description: The percentage or flat quota of the customer or partner - type: string - example: '102' + - Bulk Charge + summary: Pause Bulk Charge Batch + operationId: bulkCharge_pause + description: Pause the processing of a charge batch parameters: - - name: id + - name: code + description: The batch code for the bulk charge you want to pause in: path required: true schema: type: string - example: application/json + example: BCH_180tl7oq7cayggh responses: '200': - $ref: '#/paths/~1page/get/responses/200' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/BulkChargePauseResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' default: description: Server error - '/split/{id}/subaccount/remove': - post: + /bulkcharge/resume/{code}: + get: tags: - - Split - summary: Remove Subaccount from split - operationId: split_removeSubaccount - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1split~1%7Bid%7D~1subaccount~1add/post/requestBody/content/application~1json/schema' - application/json: - schema: - $ref: '#/paths/~1split~1%7Bid%7D~1subaccount~1add/post/requestBody/content/application~1json/schema' + - Bulk Charge + summary: Resume Bulk Charge Batch + operationId: bulkCharge_resume + description: Resume the processing of a previously paused charge batch parameters: - - name: id + - name: code + description: The batch code for the bulk charge you want to pause in: path required: true schema: type: string - example: application/json + example: BCH_180tl7oq7cayggh responses: '200': - $ref: '#/paths/~1page/get/responses/200' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/BulkChargeResumeResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' default: description: Server error - /customer: + /subaccount: post: tags: - - Customer - summary: Create Customer - operationId: customer_create + - Subaccount + summary: Create Subaccount + operationId: subaccount_create + description: Create a subacount for a partner requestBody: content: - application/x-www-form-urlencoded: - schema: - allOf: - - $ref: '#/components/schemas/Customer/allOf/0' - - $ref: '#/components/schemas/Customer/allOf/1' application/json: schema: - allOf: - - $ref: '#/components/schemas/Customer/allOf/0' - - $ref: '#/components/schemas/Customer/allOf/1' + $ref: '#/components/schemas/SubaccountCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SubaccountCreate' responses: - '200': - description: Customer Created + '201': + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Create Customer: - value: - status: true - message: Customer created - data: - transactions: [] - subscriptions: [] - authorizations: [] - email: somebody@example.com - first_name: Some - last_name: Body - phone: '+2348123456789' - integration: 463433 - domain: test - metadata: {} - customer_code: CUS_pztcpsx5kng2fbk - risk_action: default - id: 95485991 - createdAt: '2022-09-20T12:52:10.583Z' - updatedAt: '2022-09-20T12:52:10.583Z' - identified: false - identifications: [] - '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/schemas/SubaccountCreateResponse' + '401': + $ref: '#/components/responses/Unauthorized' default: description: Server error get: tags: - - Customer - summary: List Customers - operationId: customer_list - description: List customers on your integration + - Subaccount + summary: List Subaccounts + operationId: subaccount_list + description: List subaccounts available on your integration parameters: - - name: use_cursor - in: query - schema: - type: boolean - - name: next - in: query - schema: - type: string - - name: previous - in: query - schema: - type: string - - name: from - in: query - schema: - type: string - - name: to - in: query + - in: query + name: perPage + description: Number of records to fetch per request schema: - type: string - - name: perPage - in: query + type: integer + default: 50 + - in: query + name: page + description: The offset to retrieve data from schema: - type: string - - name: page - in: query + type: integer + default: 1 + - in: query + name: active + description: Filter by the state of the subaccounts schema: - type: string + type: boolean responses: '200': - $ref: '#/paths/~1product/post/responses/201' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/SubaccountListResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - '/customer/{code}': + /subaccount/{code}: parameters: - name: code in: path + description: The subaccount code you want to fetch required: true schema: type: string + example: ACCT_6uujpqtzmnufzkw get: tags: - - Customer - summary: Fetch Customer - operationId: customer_fetch + - Subaccount + summary: Fetch Subaccount + operationId: subaccount_fetch + description: Get details of a subaccount on your integration responses: '200': - $ref: '#/paths/~1product/post/responses/201' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/SubaccountFetchResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error put: tags: - - Customer - summary: Update Customer - operationId: customer_update - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Customer/allOf/1' - application/json: - schema: - $ref: '#/components/schemas/Customer/allOf/1' - responses: - '200': - $ref: '#/paths/~1page/get/responses/200' - '401': - $ref: '#/paths/~1page/get/responses/401' - '404': - $ref: '#/paths/~1page/get/responses/401' - default: - description: Server error - /customer/set_risk_action: - post: - tags: - - Customer - summary: White/blacklist Customer - description: Set customer's risk action by whitelisting or blacklisting the customer - operationId: customer_riskAction + - Subaccount + summary: Update Subaccount + operationId: subaccount_update + description: Update a subaccount details on your integration requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Customer/allOf/3' application/json: schema: - $ref: '#/components/schemas/Customer/allOf/3' - responses: - '200': - $ref: '#/paths/~1page/get/responses/200' - '401': - $ref: '#/paths/~1page/get/responses/401' - default: - description: Server error - /customer/deactivate_authorization: - post: - tags: - - Customer - summary: Deactivate Authorization - operationId: customer_deactivateAuthorization - description: Deactivate a customer's card - requestBody: - content: + $ref: '#/components/schemas/SubaccountUpdate' application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/Customer/allOf/2' - application/json: - schema: - $ref: '#/components/schemas/Customer/allOf/2' + $ref: '#/components/schemas/SubaccountUpdate' responses: '200': - $ref: '#/paths/~1page/get/responses/200' - '401': - $ref: '#/paths/~1page/get/responses/401' - default: - description: Server error - '/customer/{code}/identification': - parameters: - - name: code - in: path - required: true - schema: - type: string - post: - tags: - - Customer - summary: Validate Customer - operationId: customer_validatte - description: Validate a customer's identity - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Customer/allOf/4' - application/json: - schema: - $ref: '#/components/schemas/Customer/allOf/4' - responses: - '202': - description: Customer Validation + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Validate Customer: - value: - status: true - message: Customer Identification in progress + $ref: '#/components/schemas/SubaccountUpdateResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' default: description: Server error - /dedicated_account: + /split: post: tags: - - Dedicated Virtual Account - summary: Create Dedicated Account - operationId: dedicatedAccount_create + - Split + summary: Create Split + operationId: split_create + description: Create a split configuration for transactions requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1dedicated_account/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - customer - properties: - customer: - description: Customer ID or code - type: string - example: CUS_abc123der - preferred_bank: - description: 'The bank slug for preferred bank. To get a list of available banks, use the List Providers endpoint' - type: string - example: wema-bank - subaccount: - description: Subaccount code of the account you want to split the transaction with - type: string - example: ACCT_123455asdin - split_code: - description: Split code consisting of the lists of accounts you want to split the transaction with - type: string - example: SPL_123asbde + $ref: '#/components/schemas/SplitCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SplitCreate' responses: '200': - description: Creation Successful + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Create Dedicated Account: - value: - status: true - message: NUBAN successfully created - data: - bank: - name: Wema Bank - id: 20 - slug: wema-bank - account_name: KAROKART / RHODA CHURCH - account_number: 9930000737 - assigned: true - currency: NGN - metadata: null - active: true - id: 253 - created_at: 2019-12-12T12:39:04.000Z - updated_at: 2020-01-06T15:51:24.000Z - assignment: - integration: 100043 - assignee_id: 7454289 - assignee_type: Customer - expired: false - account_type: PAY-WITH-TRANSFER-RECURRING - assigned_at: 2020-01-06T15:51:24.764Z - customer: - id: 7454289 - first_name: RHODA - last_name: CHURCH - email: rhodachurch@email.com - customer_code: CUS_kpb3qj71u1m0rw8 - phone: 2349053267565 - risk_action: default - '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/schemas/SplitCreateResponse' + '401': + $ref: '#/components/responses/Unauthorized' default: description: Server error get: tags: - - Dedicated Virtual Account - summary: List Dedicated Accounts - operationId: dedicatedAccount_list + - Split + summary: List Splits + operationId: split_list + description: List the transaction splits available on your integration parameters: - - name: account_number - in: query + - in: query + name: subaccount_code + description: Filter by subaccount code schema: type: string - - name: customer + example: ACCT_dskvlw3y3dMukmt + - name: name + description: The name of the split in: query schema: type: string - name: active + description: The status of the split in: query schema: type: boolean - - name: currency - in: query + - in: query + name: per_page schema: - type: string - - name: provider_slug - in: query + type: integer + description: The number of records to fetch per request + - in: query + name: page schema: - type: string - - name: bank_id - in: query + type: integer + description: The offset to retrieve data from + - in: query + name: from + description: The start date schema: type: string - - name: perPage - in: query - schema: - type: string - - name: page - in: query + format: date-time + - in: query + name: to + description: The end date schema: type: string + format: date-time responses: '200': - $ref: '#/paths/~1page/get/responses/200' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/SplitListResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - '/dedicated_account/{account_id}': - parameters: - - name: account_id - in: path - required: true - schema: - type: string + /split/{id}: get: tags: - - Dedicated Virtual Account - summary: Fetch Dedicated Account - operationId: dedicatedAccount_fetch + - Split + summary: Fetch Split + operationId: split_fetch + description: Get details of a split configuration for a transaction + parameters: + - name: id + in: path + description: The ID of the split configuration to fetch + required: true + schema: + type: integer + example: 4896895 responses: '200': - $ref: '#/paths/~1page/get/responses/200' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/SplitFetchResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - delete: + put: tags: - - Dedicated Virtual Account - summary: Deactivate Dedicated Account - operationId: dedicatedAccount_deactivate + - Split + summary: Update Split + operationId: split_update + description: Update a split configuration for transactions + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SplitUpdate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SplitUpdate' + parameters: + - name: id + in: path + required: true + schema: + type: string responses: '200': - $ref: '#/paths/~1page/get/responses/200' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/SplitUpdateResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - /dedicated_account/available_providers: - get: + /split/{id}/subaccount/add: + post: tags: - - Dedicated Virtual Account - summary: Fetch Bank Providers - operationId: dedicatedAccount_availableProviders + - Split + summary: Add Subaccount to Split + operationId: split_addSubaccount + description: Add a subaccount to a split configuration, or update the share of an existing subaccount + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SplitSubaccounts' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SplitSubaccounts' + parameters: + - name: id + in: path + required: true + description: The ID of the split configuration to fetch + schema: + type: integer + example: 4896895 responses: '200': - $ref: '#/paths/~1page/get/responses/200' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/SplitAddUpdateSubaccountResponse' '401': - $ref: '#/paths/~1page/get/responses/401' - '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error - /dedicated_account/split: + /split/{id}/subaccount/remove: post: tags: - - Dedicated Virtual Account - summary: Split Dedicated Account Transaction - operationId: dedicatedAccount_addSplit + - Split + summary: Remove Subaccount from split + operationId: split_removeSubaccount + description: Remove a subaccount from a split configuration requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1dedicated_account~1split/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - account_number - properties: - account_number: - description: Valid Dedicated virtual account - type: string - subaccount: - description: Subaccount code of the account you want to split the transaction with - type: string - split_code: - description: Split code consisting of the lists of accounts you want to split the transaction with - type: string + $ref: '#/components/schemas/SplitSubaccounts' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SplitSubaccounts' + parameters: + - name: id + in: path + description: The ID of the split configuration to fetch + required: true + schema: + type: integer + example: 4896895 responses: '200': - $ref: '#/paths/~1page/get/responses/200' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/SplitRemoveSubaccountResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error - /subaccount: + /terminal/{id}/event: post: tags: - - Subaccount - summary: Create Subaccount - operationId: subaccount_create - description: Create a new subaccount + - Terminal + summary: Send Event + description: Send an event from your application to the Paystack Terminal + operationId: terminal_sendEvent + parameters: + - name: id + in: path + required: true + description: The ID of the Terminal the event should be sent to. + schema: + type: string + example: Z0R4orOU requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1subaccount/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - business_name - - settlement_bank - - account_number - - percentage_charge - properties: - business_name: - description: Name of business for subaccount - type: string - example: Some Subaccount - settlement_bank: - description: Bank code for the bank. You can get the list of Bank Codes by calling the List Banks endpoint. - type: string - example: '011' - account_number: - description: Bank account number - type: string - example: '0000000000' - percentage_charge: - description: Transaction percentage that the subaccount gets - type: number - format: float - example: 0.3 - description: - description: A description for this subaccount - type: string - example: A service provider - primary_contact_email: - description: A contact email for the subaccount - type: string - example: sub@example.com - primary_contact_name: - description: The name of the contact person for this subaccount - type: string - example: person@example.com - primary_contact_phone: - description: A phone number to call for this subaccount - type: string - metadata: - description: Stringified JSON object of custom data - type: object - example: - category: General supplies + $ref: '#/components/schemas/TerminalSendEvent' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TerminalSendEvent' responses: - '201': - description: Subaccount Creation - content: - application/json: - schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Create Subaccount: - value: - status: true - message: Subaccount created - data: - business_name: Cheese Sticks - account_number: 0123456789 - percentage_charge: 0.2 - settlement_bank: Guaranty Trust Bank - integration: 428626 - domain: test - subaccount_code: ACCT_xxxxxxxxxxxxx - is_verified: false - settlement_schedule: AUTO - active: true - migrate: false - id: 37614 - createdAt: 2020-05-19T11:54:20.655Z - updatedAt: 2020-05-19T11:54:20.655Z - '401': - $ref: '#/paths/~1page/get/responses/401' + '200': + $ref: '#/components/responses/Ok' + '401': + $ref: '#/components/responses/Unauthorized' default: description: Server error + /terminal/{terminal_id}/event/{event_id}: get: tags: - - Subaccount - summary: List Subaccounts - operationId: subaccount_list + - Terminal + summary: Fetch Event Status + description: Check the status of an event sent to the Terminal + operationId: terminal_fetchEventStatus parameters: - - in: query - name: perPage + - name: terminal_id + in: path + required: true + description: The ID of the Terminal the event should be sent to. schema: - type: integer - description: Number of records to fetch per page - - in: query - name: page + type: string + example: Z0R4orOU + - name: event_id + in: path + required: true + description: The ID of the event that was sent to the Terminal schema: - type: integer - description: The section to retrieve - - in: query - name: from + type: string + example: 616d721e8c5cd40a0cdd54a6 + responses: + '200': + $ref: '#/components/responses/Ok' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + default: + description: Server error + /terminal/{terminal_id}/presence: + get: + tags: + - Terminal + summary: Fetch Terminal Status + description: Check the availiability of a Terminal before sending an event to it + operationId: terminal_fetchTerminalStatus + parameters: + - name: terminal_id + in: path + required: true + description: The ID of the Terminal the event should be sent to. schema: type: string - format: date-time - description: The start date - - in: query - name: to + example: Z0R4orOU + responses: + '200': + $ref: '#/components/responses/TerminalGetStatusSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + default: + description: Server error + /terminal: + get: + tags: + - Terminal + summary: List Terminals + operationId: terminal_list + description: List the Terminals available on your integration + parameters: + - name: next + in: query + description: A cursor that indicates your place in the list. It can be used to fetch the next page of the list schema: type: string - format: date-time - description: The end date + - name: previous + in: query + description: A cursor that indicates your place in the list. It should be used to fetch the previous page of the list after an intial next request + schema: + type: string + - name: per_page + in: query + description: Specify how many records you want to retrieve per page + schema: + type: integer + default: 50 responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/TerminalListsSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - '/subaccount/{code}': + /terminal/{terminal_id}: parameters: - - name: code + - name: terminal_id in: path + description: The ID of the Terminal the event should be sent to. required: true schema: type: string + example: Z0R4orOU get: tags: - - Subaccount - summary: Fetch Subaccount - operationId: subaccount_fetch + - Terminal + summary: Fetch Terminal + description: Get the details of a Terminal + operationId: terminal_fetch responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/TerminalGetSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error put: tags: - - Subaccount - summary: Update Subaccount - operationId: subaccount_update + - Terminal + summary: Update Terminal + operationId: terminal_update + description: Update the details of a Terminal requestBody: content: + application/json: + schema: + $ref: '#/components/schemas/TerminalUpate' application/x-www-form-urlencoded: schema: - $ref: '#/paths/~1subaccount~1%7Bcode%7D/put/requestBody/content/application~1json/schema' + $ref: '#/components/schemas/TerminalUpate' + responses: + '200': + $ref: '#/components/responses/TerminalUpdateSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + default: + description: Server error + /terminal/commission_device: + post: + tags: + - Terminal + summary: Commission Terminal + description: Activate your debug device by linking it to your integration + operationId: terminal_commission + requestBody: + content: application/json: schema: - type: object - properties: - business_name: - description: Name of business for subaccount - type: string - settlement_bank: - description: Bank code for the bank. You can get the list of Bank Codes by calling the List Banks endpoint. - type: string - account_number: - description: Bank account number - type: string - active: - description: Activate or deactivate a subaccount - type: boolean - percentage_charge: - description: Customer's phone number - type: number - format: float - description: - description: A description for this subaccount - type: string - primary_contact_email: - description: A contact email for the subaccount - type: string - primary_contact_name: - description: The name of the contact person for this subaccount - type: string - primary_contact_phone: - description: A phone number to call for this subaccount - type: string - metadata: - description: Stringified JSON object of custom data - type: string + $ref: '#/components/schemas/TerminalActivationToggle' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TerminalActivationToggle' responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/TerminalCommissionDeviceSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' - '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error - /plan: + /terminal/decommission_device: post: tags: - - Plan - summary: Create Plan - operationId: plan_create + - Terminal + summary: Decommission Terminal + description: Unlink your debug device from your integration + operationId: terminal_decommission requestBody: content: + application/json: + schema: + $ref: '#/components/schemas/TerminalActivationToggle' application/x-www-form-urlencoded: schema: - $ref: '#/paths/~1plan/post/requestBody/content/application~1json/schema' + $ref: '#/components/schemas/TerminalActivationToggle' + responses: + '200': + $ref: '#/components/responses/TerminalDecommissionDeviceSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + /virtual_terminal: + post: + tags: + - Virtual Terminal + summary: Create Virtual Terminal + description: Create a Virtual Terminal on your integration + operationId: virtualTerminal_create + requestBody: + content: application/json: schema: - type: object - required: - - name - - amount - - interval - properties: - name: - description: Name of plan - type: string - example: My monthly membership - amount: - description: 'Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR' - type: integer - example: 20000 - interval: - description: 'Interval in words. Valid intervals are daily, weekly, monthly,biannually, annually' - type: string - example: monthly - description: - description: A description for this plan - type: string - example: Monthly membership payment plan - send_invoices: - description: Set to false if you don't want invoices to be sent to your customers - type: boolean - send_sms: - description: Set to false if you don't want text messages to be sent to your customers - type: boolean - currency: - description: 'Currency in which amount is set. Allowed values are NGN, GHS, ZAR or USD' - type: string - example: NGN - invoice_limit: - description: |- - Number of invoices to raise during subscription to this plan. - Can be overridden by specifying an invoice_limit while subscribing. - type: integer - example: 0 + $ref: '#/components/schemas/VirtualTerminalCreate' responses: - '201': - description: Create Plan - content: - application/json: - schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Create Plan: - value: - status: true - message: Plan created - data: - name: My monthly membership - interval: monthly - amount: 20000 - description: Monthly membership payment plan - integration: 463433 - domain: test - currency: NGN - plan_code: PLN_y4y1wkydoptw6zv - invoice_limit: 0 - send_invoices: true - send_sms: true - hosted_page: false - migrate: false - is_archived: false - id: 393872 - createdAt: '2022-09-22T02:15:06.702Z' - updatedAt: '2022-09-22T02:15:06.702Z' - '401': - $ref: '#/paths/~1page/get/responses/401' + '200': + $ref: '#/components/responses/VirtualTerminalCreateSuccess' + '401': + $ref: '#/components/responses/Unauthorized' default: description: Server error get: tags: - - Plan - summary: List Plans - operationId: plan_list + - Virtual Terminal + summary: List Virtual Terminals + description: List Virtual Terminals on your integration + operationId: virtualTerminal_list parameters: - - in: query - name: perPage - schema: - type: integer - description: Number of records to fetch per page - - in: query - name: page + - name: perPage + in: query + description: The number of records to fetch per request schema: type: integer - description: The section to retrieve - - in: query - name: interval - schema: - type: string - description: Specify interval of the plan - - in: query - name: amount + example: 75 + - name: page + in: query + description: The offset to retrieve data from schema: type: integer - description: The amount on the plans to retrieve - - in: query - name: from - schema: - type: string - format: date-time - description: The start date - - in: query - name: to - schema: - type: string - format: date-time - description: The end date responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/VirtualTerminalListSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' - '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error - '/plan/{code}': + /virtual_terminal/{code}: parameters: - name: code in: path + description: Code of the Virtual Terminal required: true schema: type: string + example: VT_MCK5292Z get: tags: - - Plan - summary: Fetch Plan - operationId: plan_fetch + - Virtual Terminal + summary: Fetch Virtual Terminal + description: Fetch a Virtual Terminal on your integration + operationId: virtualTerminal_fetch responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/VirtualTerminalFetchSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' - '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error put: tags: - - Plan - summary: Update Plan - operationId: plan_update + - Virtual Terminal + summary: Update Virtual Terminal + description: Update a Virtual Terminal on your integration + operationId: virtualTerminal_update requestBody: content: - application/x-www-form-urlencoded: + application/json: schema: - $ref: '#/paths/~1plan~1%7Bcode%7D/put/requestBody/content/application~1json/schema' + $ref: '#/components/schemas/VirtualTerminalUpdate' + responses: + '200': + $ref: '#/components/responses/VirtualTerminalUpdateSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + /virtual_terminal/{code}/deactivate: + parameters: + - name: code + in: path + description: Code of the Virtual Terminal + required: true + schema: + type: string + example: VT_MCK5292Z + put: + tags: + - Virtual Terminal + summary: Deactivate Virtual Terminal + operationId: virtualTerminal_deactivate + description: Deactivate a Virtual Terminal on your integration + responses: + '200': + $ref: '#/components/responses/VirtualTerminalDeactivateSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + /virtual_terminal/{code}/destination/assign: + parameters: + - name: code + in: path + description: Code of the Virtual Terminal + required: true + schema: + type: string + example: VT_MCK5292Z + post: + tags: + - Virtual Terminal + summary: Assign Destination to Virtual Terminal + operationId: virtualTerminal_destinationAssign + description: Add a destination (WhatsApp number) to a Virtual Terminal on your integration + requestBody: + content: application/json: schema: - type: object - properties: - name: - description: Name of plan - type: string - amount: - description: 'Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR' - type: integer - interval: - description: 'Interval in words. Valid intervals are daily, weekly, monthly,biannually, annually' - type: string - description: - description: A description for this plan - type: string - send_invoices: - description: Set to false if you don't want invoices to be sent to your customers - type: boolean - send_sms: - description: Set to false if you don't want text messages to be sent to your customers - type: boolean - currency: - description: 'Currency in which amount is set. Allowed values are NGN, GHS, ZAR or USD' - type: string - invoice_limit: - description: |- - Number of invoices to raise during subscription to this plan. - Can be overridden by specifying an invoice_limit while subscribing. - type: integer + $ref: '#/components/schemas/VirtualTerminalDestinationAssign' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/VirtualTerminalDestinationAssign' responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/VirtualTerminalDestinationAssignSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' - '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error - /subscription: + /virtual_terminal/{code}/destination/unassign: + parameters: + - name: code + in: path + description: Code of the Virtual Terminal + required: true + schema: + type: string + example: VT_MCK5292Z post: tags: - - Subscription - summary: Create Subscription - operationId: subscription_create + - Virtual Terminal + summary: Unassign Destination from Virtual Terminal + operationId: virtualTerminal_destinationUnassign + description: Unassign a destination (WhatsApp Number) from a Virtual Terminal on your integration + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/VirtualTerminalDestinationUnassign' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/VirtualTerminalDestinationUnassign' + responses: + '200': + $ref: '#/components/responses/VirtualTerminalDestinationUnassignSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + /virtual_terminal/{code}/split_code: + parameters: + - name: code + in: path + description: Code of the Virtual Terminal + required: true + schema: + type: string + example: VT_MCK5292Z + put: + tags: + - Virtual Terminal + summary: Add Split Code to Virtual Terminal + description: Add Split Code to Virtual Terminal + operationId: virtualTerminal_addSplitCode requestBody: content: + application/json: + schema: + $ref: '#/components/schemas/VirtualTerminalAddSplitCode' application/x-www-form-urlencoded: schema: - $ref: '#/paths/~1subscription/post/requestBody/content/application~1json/schema' + $ref: '#/components/schemas/VirtualTerminalAddSplitCode' + responses: + '200': + $ref: '#/components/responses/VirtualTerminalAddSplitCodeSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server Error + delete: + tags: + - Virtual Terminal + summary: Remove Split Code from Virtual Terminal + description: Remove Split Code from Virtual Terminal + operationId: virtualTerminal_deleteSplitCode + requestBody: + content: application/json: schema: - type: object - required: - - customer - - plan - properties: - customer: - description: Customer's email address or customer code - type: string - example: person@example.com - plan: - description: Plan code that the customer should subscribe to - type: string - example: PLN_y4y1wkydoptw6zv - authorization: - description: |- - If customer has multiple authorizations, you can set the desired authorization you wish to use for this subscription here. - If this is not supplied, the customer's most recent authorization would be used - type: string - example: AUTH_Codaad23 - start_date: - description: 'Set the date for the first debit. (ISO 8601 format) e.g. 2017-05-16T00:30:13+01:00' - type: string - format: date-time + $ref: '#/components/schemas/VirtualTerminalDeleteSplitCode' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/VirtualTerminalDeleteSplitCode' + responses: + '200': + $ref: '#/components/responses/VirtualTerminalDeleteSplitCodeSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server Error + /customer: + post: + tags: + - Customer + summary: Create Customer + operationId: customer_create + description: Create a customer on your integration + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CustomerCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CustomerCreate' responses: '200': - description: Create Subscription + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Create Subscription: - value: - status: true - message: Subscription successfully created - data: - customer: 89363925 - plan: 393873 - integration: 463433 - domain: test - start: 1663817490 - status: active - quantity: 1 - amount: 20000 - authorization: 374536802 - invoice_limit: 0 - split_code: null - subscription_code: SUB_k0alurkz6l2d3nz - email_token: txyhn3zjzcr9xlo - id: 456933 - cancelledAt: null - createdAt: '2022-09-22T03:31:30.886Z' - updatedAt: '2022-09-22T03:31:30.886Z' - cron_expression: 31 3 22 * * - next_payment_date: '2022-10-22T03:31:00.000Z' - '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/schemas/CustomerCreateResponse' + '401': + $ref: '#/components/responses/Unauthorized' default: description: Server error get: tags: - - Subscription - summary: List Subscriptions - operationId: subscription_list + - Customer + summary: List Customers + operationId: customer_list + description: List customers on your integration parameters: - - in: query - name: perPage - schema: - type: integer - description: Number of records to fetch per page - - in: query - name: page + - name: use_cursor + description: A flag to indicate if cursor based pagination should be used + in: query schema: - type: integer - description: The section to retrieve - - in: query - name: plan + type: boolean + - name: next + description: | + An alphanumeric value returned for every cursor based retrieval, used to retrieve the next set of data + in: query schema: type: string - description: Plan ID - - in: query - name: customer + - name: previous + description: | + An alphanumeric value returned for every cursor based retrieval, used to retrieve the previous set of data + in: query schema: type: string - description: Customer ID - - in: query - name: from + - name: from + description: The start date + in: query schema: type: string format: date-time - description: The start date - - in: query - name: to + - name: to + description: The end date + in: query schema: type: string format: date-time - description: The end date + - name: perPage + description: The number of records to fetch per request + in: query + schema: + type: string + - name: page + in: query + description: The offset to retrieve data from + schema: + type: string responses: '200': - $ref: '#/paths/~1product/post/responses/201' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/CustomerListResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - '/subscription/{code}': + /customer/{code}: parameters: - name: code in: path required: true + description: The code for the customer gotten from the response of the customer creation schema: type: string + example: CUS_c6wqvwmvwopw4ms get: tags: - - Subscription - summary: Fetch Subscription - operationId: subscription_fetch + - Customer + summary: Fetch Customer + operationId: customer_fetch + description: Get details of a customer on your integration. responses: '200': - $ref: '#/paths/~1page/get/responses/200' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/CustomerFetchResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - /subscription/disable: - post: + put: tags: - - Subscription - summary: Disable Subscription - operationId: subscription_disable + - Customer + summary: Update Customer + operationId: customer_update + description: Update a customer's details on your integration requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1subscription~1enable/post/requestBody/content/application~1json/schema' application/json: schema: - $ref: '#/paths/~1subscription~1enable/post/requestBody/content/application~1json/schema' + $ref: '#/components/schemas/CustomerUpdate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CustomerUpdate' responses: '200': - $ref: '#/paths/~1page/get/responses/200' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/CustomerUpdateResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' default: description: Server error - /subscription/enable: + /customer/set_risk_action: post: tags: - - Subscription - summary: Enable Subscription - operationId: subscription_enable + - Customer + summary: Set Risk Action + description: Set customer's risk action by whitelisting or blacklisting the customer + operationId: customer_riskAction requestBody: content: + application/json: + schema: + $ref: '#/components/schemas/CustomerRiskAction' application/x-www-form-urlencoded: schema: - $ref: '#/paths/~1subscription~1enable/post/requestBody/content/application~1json/schema' + $ref: '#/components/schemas/CustomerRiskAction' + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/CustomerWhitelistBlacklistResponse' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + /customer/{code}/identification: + parameters: + - name: code + in: path + required: true + description: The code for the customer gotten from the response of the customer creation + schema: + type: string + example: CUS_c6wqvwmvwopw4ms + post: + tags: + - Customer + summary: Validate Customer + operationId: customer_validate + description: Validate a customer's identity + requestBody: + content: application/json: schema: - type: object - required: - - code - - token - - authorization - properties: - code: - description: Subscription code - type: string - token: - description: Email token - type: string + $ref: '#/components/schemas/CustomerValidate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CustomerValidate' responses: - '200': - $ref: '#/paths/~1page/get/responses/200' + '202': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/CustomerValidateResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error - '/subscription/{code}/manage/link': - get: + /customer/authorization/initialize: + post: tags: - - Subscription - summary: Generate Update Subscription Link - operationId: subscription_manageLink - parameters: - - name: code - in: path - required: true - schema: - type: string + - Customer + summary: Initialize Authorization + description: Initiate a request to create a reusable authorization code for recurring transactions + operationId: customer_initializeAuthorization + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CustomerAuthorizationInitializeRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CustomerAuthorizationInitializeRequest' responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/CustomerAuthorizationInitializeSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error - '/subscription/{code}/manage/email': - post: + /customer/authorization/verify/{reference}: + get: tags: - - Subscription - summary: Send Update Subscription Link - operationId: subscription_manageEmail + - Customer + summary: Verify Authorization + description: Check the status of an authorization request + operationId: customer_verifyAuthorization parameters: - - name: code + - name: reference in: path + description: The reference returned in the initialization response required: true schema: type: string + example: dfbzfotsrbv4n5s82t4mp5b5mfn51h responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/CustomerAuthorizationVerifySuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' default: description: Server error - /product: + /customer/authorization/deactivate: post: tags: - - Product - summary: Create Product - operationId: product_create + - Customer + summary: Deactivate Authorization + operationId: customer_deactivateAuthorization + description: Deactivate an authorization for any payment channel. requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1product/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - name - - description - - price - - currency - properties: - name: - description: Name of product - type: string - description: - description: The description of the product - type: string - price: - description: 'Price should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR' - type: integer - currency: - description: 'Currency in which price is set. Allowed values are: NGN, GHS, ZAR or USD' - type: string - limited: - description: Set to true if the product has limited stock. Leave as false if the product has unlimited stock - type: boolean - quantity: - description: Number of products in stock. Use if limited is true - type: integer + $ref: '#/components/schemas/CustomerDeactivateAuthorization' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CustomerDeactivateAuthorization' responses: - '201': - description: Resource created + '200': + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Create Transfer Recipient: - value: - status: true - message: Transfer recipient created successfully - data: - active: true - createdAt: 2022-09-16T08:31:43.321Z - currency: NGN - domain: live - id: 38770134 - integration: 463433 - metadata: - referrer_id: 123 - name: Ada Lovelace - recipient_code: RCP_2fl8jmb2v3kbleb - type: nuban - updatedAt: 2022-09-16T08:31:43.321Z - is_deleted: false - isDeleted: false - details: - authorization_code: null - account_number: 0 - account_name: Doe Jane Loren - bank_code: 9 - bank_name: First Bank of Nigeria - '401': - $ref: '#/paths/~1page/get/responses/401' - default: - description: Server error - get: - tags: - - Product - summary: List Products - operationId: product_list - parameters: - - name: perPage - in: query - schema: - type: integer - - name: page - in: query - schema: - type: integer - - name: active - in: query - schema: - type: boolean - - in: query - name: from - schema: - type: string - format: date-time - description: The start date - - in: query - name: to - schema: - type: string - format: date-time - description: The end date - responses: - '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/schemas/CustomerDeactivateAuthorizationResponse' '401': - $ref: '#/paths/~1page/get/responses/401' - '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error - '/product/{id}': + /customer/{id}/initialize-direct-debit: parameters: - name: id in: path required: true + description: The ID of the customer to initialize the direct debit for schema: - type: string - get: + type: integer + example: 297346561 + post: tags: - - Product - summary: Fetch Product - operationId: product_fetch + - Customer + summary: Initialize Direct Debit + operationId: customer_initializeDirectDebit + description: Initialize the process of linking an account to a customer for Direct Debit transactions + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CustomerInitializeDirectDebitRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CustomerInitializeDirectDebitRequest' responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/CustomerInitializeDirectDebitSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' - '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error + /customer/{id}/directdebit-activation-charge: put: tags: - - Product - summary: Update product - operationId: product_update + - Customer + summary: Direct Debit Activation Charge + operationId: customer_directDebitActivationCharge + description: Trigger an activation charge on an inactive mandate on behalf of your customer + parameters: + - name: id + in: path + required: true + description: The customer ID attached to the authorization + schema: + type: integer + example: 297346561 requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1product~1%7Bid%7D/put/requestBody/content/application~1json/schema' application/json: schema: - type: object - properties: - name: - description: Name of product - type: string - description: - description: The description of the product - type: string - price: - description: 'Price should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR' - type: integer - currency: - description: 'Currency in which price is set. Allowed values are: NGN, GHS, ZAR or USD' - type: string - limited: - description: Set to true if the product has limited stock. Leave as false if the product has unlimited stock - type: boolean - quantity: - description: Number of products in stock. Use if limited is true - type: integer + $ref: '#/components/schemas/CustomerDirectDebitActivationChargeRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CustomerDirectDebitActivationChargeRequest' responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/CustomerDirectDebitActivationChargeSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' - '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error - delete: + /customer/{id}/directdebit-mandate-authorizations: + get: tags: - - Product - summary: Delete Product - operationId: product_delete + - Customer + summary: Fetch Mandate Authorizations + operationId: customer_fetchMandateAuthorizations + description: Get the list of direct debit mandates associated with a customer + parameters: + - name: id + in: path + required: true + description: The customer ID for the authorizations to fetch + schema: + type: integer + example: 297346561 responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/CustomerFetchMandateAuthorizationsSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' - '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error - /page: - post: + /directdebit/activation-charge: + put: tags: - - Page - summary: Create Page - operationId: page_create + - Direct Debit + summary: Trigger Activation Charge + description: Trigger activation charge for specified customers + operationId: directdebit_triggerActivationCharge requestBody: + required: true content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1page/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - name - properties: - name: - description: Name of page - type: string - description: - description: The description of the page - type: string - amount: - description: 'Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR' - type: integer - slug: - description: 'URL slug you would like to be associated with this page. Page will be accessible at https://paystack.com/pay/[slug]' - type: string - metadata: - description: Stringified JSON object of custom data - type: string - redirect_url: - description: 'If you would like Paystack to redirect to a URL upon successful payment, specify the URL here.' - type: string - custom_fields: - description: 'If you would like to accept custom fields, specify them here.' - type: array - items: - type: object + $ref: '#/components/schemas/DirectDebitActivationChargeRequest' responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/DirectDebitActivationChargeSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error + /directdebit/mandate-authorizations: get: tags: - - Page - summary: List Pages - operationId: page_list + - Direct Debit + summary: List Mandate Authorizations + description: Get a list of all the direct debit mandates on your integration + operationId: directdebit_listMandateAuthorizations parameters: - - in: query - name: perPage - schema: - type: integer - description: Number of records to fetch per page - - in: query - name: page - schema: - type: integer - description: The section to retrieve - - in: query - name: from + - name: cursor + in: query + description: The cursor value of the next set of authorizations to fetch. You can get this from the meta object of the response schema: type: string - format: date-time - description: The start date - - in: query - name: to + - name: status + in: query + description: Filter by the authorization status schema: type: string - format: date-time - description: The end date + enum: + - pending + - active + - revoked + - name: per_page + in: query + description: The number of authorizations to fetch per request + schema: + type: integer responses: '200': - description: Request successful - content: - application/json: - schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - List Transfers: - value: - status: true - message: Transfers retrieved - data: - - amount: 1187500 - createdAt: '2024-03-07T16:13:42.000Z' - currency: NGN - domain: live - failures: null - id: 480480480480 - integration: 463433 - reason: transfer demo - reference: demo-transfer - source: balance - source_details: null - status: success - titan_code: null - transfer_code: TRF_57qtrcpodassad - request: 544648484 - transferred_at: '2024-03-07T16:13:43.000Z' - updatedAt: '2024-03-07T16:13:43.000Z' - recipient: - active: true - createdAt: '2024-03-07T16:08:13.000Z' - currency: NGN - description: Demo transfers - domain: live - email: example@example.com - id: 12309312 - integration: 463433 - metadata: null - name: DANTE ALIGHIERI - recipient_code: RCP_67gq8xn0ls58535 - type: nuban - updatedAt: '2024-03-07T16:37:12.000Z' - is_deleted: false - isDeleted: false - details: - authorization_code: null - account_number: '12334567890' - account_name: DANTE ALIGHIERI - bank_code: '999991' - bank_name: PalmPay - session: - provider: nip - id: '110001231091230120391238372113' - fee_charged: 0 - fees_breakdown: null - - amount: 712500 - createdAt: '2024-03-07T16:11:10.000Z' - currency: NGN - domain: live - failures: null - id: 480480480 - integration: 463433 - reason: food - reference: cf20odaindonec892384cas - source: balance - source_details: null - status: success - titan_code: null - transfer_code: TRF_scgho47oei0s578v - request: 5454545545 - transferred_at: '2024-03-07T16:11:12.000Z' - updatedAt: '2024-03-07T16:11:12.000Z' - recipient: - active: true - createdAt: '2024-03-07T16:08:13.000Z' - currency: NGN - description: '4.0' - domain: live - email: ojoojo971@gmail.com - id: 73001094 - integration: 463433 - metadata: null - name: Mwana Kupona - recipient_code: RCP_67gq8xn0ls58535 - type: nuban - updatedAt: '2024-03-07T16:37:12.000Z' - is_deleted: false - isDeleted: false - details: - authorization_code: null - account_number: '0000000000' - account_name: MWANA TAU - bank_code: '011' - bank_name: First Bank of Nigeria - session: - provider: nip - id: '120312192381218312812312312' - fee_charged: 0 - fees_breakdown: null - meta: - total: 30 - skipped: 0 - perPage: 50 - page: 1 - pageCount: 1 - '401': - description: Unauthorized operation - content: - application/json: - examples: - No-Authorization-Header: - value: - status: false - message: No Authorization Header was found - Bad-Authorization-Header: - value: - status: false - message: 'Format is Authorization Bearer [secret key]' - Invalid-Key: - value: - status: false - message: Invalid key - schema: - type: object - properties: - status: - type: boolean - message: - type: string - '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/CustomerFetchMandateAuthorizationsSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + /dedicated_account: + post: + tags: + - Dedicated Virtual Account + summary: Create Dedicated Account + operationId: dedicatedAccount_create + description: Create a dedicated virtual account for an existing customer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DedicatedVirtualAccountCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DedicatedVirtualAccountCreate' + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/DedicatedNubanCreateResponse' + '401': + $ref: '#/components/responses/Unauthorized' default: description: Server error - '/page/{id}': - parameters: - - name: id - in: path - required: true - schema: - type: string get: tags: - - Page - summary: Fetch Page - operationId: page_fetch + - Dedicated Virtual Account + summary: List Dedicated Accounts + operationId: dedicatedAccount_list + description: List dedicated virtual accounts available on your integration. + parameters: + - name: active + in: query + description: Status of the dedicated virtual account + schema: + type: boolean + example: true + - name: customer + in: query + description: The customer's ID + schema: + type: integer + example: 297346561 + - name: currency + in: query + description: The currency of the dedicated virtual account + schema: + type: string + enum: + - NGN + - GHS + - name: provider_slug + in: query + description: The bank's slug in lowercase, without spaces + schema: + type: string + example: titan-paystack + - name: bank_id + in: query + description: The bank's ID + schema: + type: string + example: '035' + - name: perPage + in: query + description: The number of records to fetch per request + schema: + type: integer + default: 50 + - name: page + in: query + description: The offset to retrieve data from + schema: + type: integer + default: 1 responses: '200': - $ref: '#/paths/~1page/get/responses/200' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/DedicatedNubanListResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - put: + /dedicated_account/assign: + post: tags: - - Page - summary: Update Page - operationId: page_update + - Dedicated Virtual Account + summary: Assign Dedicated Account + operationId: dedicatedAccount_assign + description: With this endpoint, you can create a customer, validate the customer, and assign a DVA to the customer. requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1page~1%7Bid%7D/put/requestBody/content/application~1json/schema' application/json: schema: - type: object - properties: - name: - description: Name of page - type: string - description: - description: The description of the page - type: string - amount: - description: 'Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR' - type: integer - active: - description: Set to false to deactivate page url - type: boolean + $ref: '#/components/schemas/DedicatedVirtualAccountAssign' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DedicatedVirtualAccountAssign' responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/Ok' '401': - $ref: '#/paths/~1page/get/responses/401' - '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error - '/page/check_slug_availability/{slug}': + /dedicated_account/{id}: parameters: - - name: slug + - name: id in: path required: true + description: ID of dedicated virtual account schema: type: string get: tags: - - Page - summary: Check Slug Availability - operationId: page_checkSlugAvailability + - Dedicated Virtual Account + summary: Fetch Dedicated Account + operationId: dedicatedAccount_fetch + description: Get details of a dedicated virtual account on your integration. + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/DedicatedNubanFetchResponse' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + default: + description: Server error + delete: + tags: + - Dedicated Virtual Account + summary: Deactivate Dedicated Account + operationId: dedicatedAccount_deactivate + description: Deactivate a dedicated virtual account on your integration. responses: '200': - $ref: '#/paths/~1page/get/responses/200' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/DedicatedNubanDeactivateResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - '/page/{id}/product': + /dedicated_account/requery: parameters: - - name: id - in: path - required: true + - name: account_number + description: Virtual account number to requery + in: query + schema: + type: string + example: '0033322211' + - name: provider_slug + description: The bank's slug in lowercase, without spaces. + in: query + schema: + type: string + example: titan-paystack + - name: date + description: The day the transfer was made + in: query schema: type: string + format: date-time + get: + tags: + - Dedicated Virtual Account + summary: Requery Dedicated Account + operationId: dedicatedAccount_requery + description: Requery Dedicated Virtual Account for new transactions + responses: + '200': + $ref: '#/components/responses/Ok' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + default: + description: Server error + /dedicated_account/split: post: tags: - - Page - summary: Add Products - operationId: page_addProducts + - Dedicated Virtual Account + summary: Split Dedicated Account Transaction + operationId: dedicatedAccount_addSplit + description: Split a dedicated virtual account transaction with one or more accounts requestBody: content: + application/json: + schema: + $ref: '#/components/schemas/DedicatedVirtualAccountSplit' application/x-www-form-urlencoded: schema: - $ref: '#/paths/~1page~1%7Bid%7D~1product/post/requestBody/content/application~1json/schema' + $ref: '#/components/schemas/DedicatedVirtualAccountSplit' + responses: + '200': + $ref: '#/components/responses/Ok' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + delete: + tags: + - Dedicated Virtual Account + summary: Remove Split from Dedicated Account + operationId: dedicatedAccount_removeSplit + description: If you've previously set up split payment for transactions on a dedicated virtual account, you can remove it with this endpoint + requestBody: + content: application/json: schema: - type: object - required: - - product - properties: - product: - description: IDs of all products to add to a page - type: array - items: - type: string + $ref: '#/components/schemas/DedicatedVirtualAccountRemoveSplit' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DedicatedVirtualAccountRemoveSplit' + responses: + '200': + $ref: '#/components/responses/Ok' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + default: + description: Server error + /dedicated_account/available_providers: + get: + tags: + - Dedicated Virtual Account + summary: Fetch Bank Providers + operationId: dedicatedAccount_availableProviders + description: Get available bank providers for a dedicated virtual account responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/Ok' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' default: description: Server error - /paymentrequest: + /apple-pay/domain: post: tags: - - Payment Request - summary: Create Payment Request - operationId: paymentRequest_create + - Apple Pay + summary: Register Domain + description: | + Register a top-level domain or subdomain for your Apple Pay integration. + + > This endpoint can only be called with one domain or subdomain at a time. + operationId: applePay_registerDomain requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1paymentrequest/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - customer - properties: - customer: - description: Customer id or code - type: string - amount: - description: |- - Payment request amount. Only useful if line items and tax values are ignored. - The endpoint will throw a friendly warning if neither is available. - type: integer - currency: - description: 'Specify the currency of the invoice. Allowed values are NGN, GHS, ZAR and USD. Defaults to NGN' - type: string - due_date: - description: ISO 8601 representation of request due date - type: string - format: date-time - description: - description: A short description of the payment request - type: string - line_items: - description: Array of line items - type: array - items: - type: object - tax: - description: Array of taxes - type: array - items: - type: object - send_notification: - description: Indicates whether Paystack sends an email notification to customer. Defaults to true - type: boolean - items: - type: object - draft: - description: Indicate if request should be saved as draft. Defaults to false and overrides send_notification - type: boolean - items: - type: object - has_invoice: - description: |- - Set to true to create a draft invoice (adds an auto incrementing invoice number if none is provided) - even if there are no line_items or tax passed - type: boolean - items: - type: object - invoice_number: - description: |- - Numeric value of invoice. Invoice will start from 1 and auto increment from there. This field is to help - override whatever value Paystack decides. Auto increment for subsequent invoices continue from this point. - type: integer - split_code: - description: The split code of the transaction split. - type: string + $ref: '#/components/schemas/ApplePayParam' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ApplePayParam' responses: - '201': - $ref: '#/paths/~1product/post/responses/201' + '200': + $ref: '#/components/responses/ApplePayOkResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error get: tags: - - Payment Request - summary: List Payment Request - operationId: paymentRequest_list + - Apple Pay + summary: List Domains + description: Lists all registered domains on your integration. Returns an empty array if no domains have been added. + operationId: applePay_listDomain parameters: - - in: query - name: perPage - schema: - type: integer - description: Number of records to fetch per page - - in: query - name: page - schema: - type: integer - description: The section to retrieve - - in: query - name: customer - schema: - type: string - description: Customer ID - - in: query - name: status - schema: - type: string - description: Invoice status to filter - - in: query - name: currency + - name: use_cursor + in: query + description: A flag to indicate if cursor based pagination should be used schema: - type: string - description: 'If your integration supports more than one currency, choose the one to filter' - - in: query - name: from + type: boolean + example: true + - name: next + in: query + description: | + An alphanumeric value returned for every cursor based retrieval, used to retrieve the next set of data schema: type: string - format: date-time - description: The start date - - in: query - name: to + - name: previous + in: query + description: | + An alphanumeric value returned for every cursor based retrieval, used to retrieve the previous set of data schema: type: string - format: date-time - description: The end date responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/Ok' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - '/paymentrequest/{id}': - parameters: - - name: id - in: path - required: true - schema: - type: string - get: + delete: tags: - - Payment Request - summary: Fetch Payment Request - operationId: paymentRequest_fetch + - Apple Pay + summary: Unregister Domain + description: | + Unregister a top-level domain or subdomain previously used for your Apple + Pay integration. + operationId: applePay_unregisterDomain + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ApplePayParam' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ApplePayParam' responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/Ok' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - put: + /plan: + post: tags: - - Payment Request - summary: Update Payment Request - operationId: paymentRequest_update + - Plan + summary: Create Plan + operationId: plan_create + description: Create a plan for recurring payments requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1paymentrequest~1%7Bid%7D/put/requestBody/content/application~1json/schema' application/json: schema: - type: object - properties: - customer: - description: Customer id or code - type: string - amount: - description: |- - Payment request amount. Only useful if line items and tax values are ignored. - The endpoint will throw a friendly warning if neither is available. - type: integer - currency: - description: 'Specify the currency of the invoice. Allowed values are NGN, GHS, ZAR and USD. Defaults to NGN' - type: string - due_date: - description: ISO 8601 representation of request due date - type: string - format: date-time - description: - description: A short description of the payment request - type: string - line_items: - description: Array of line items - type: array - items: - type: object - tax: - description: Array of taxes - type: array - items: - type: object - send_notification: - description: Indicates whether Paystack sends an email notification to customer. Defaults to true - type: boolean - items: - type: object - draft: - description: Indicate if request should be saved as draft. Defaults to false and overrides send_notification - type: boolean - items: - type: object - has_invoice: - description: |- - Set to true to create a draft invoice (adds an auto incrementing invoice number if none is provided) - even if there are no line_items or tax passed - type: boolean - items: - type: object - invoice_number: - description: |- - Numeric value of invoice. Invoice will start from 1 and auto increment from there. This field is to help - override whatever value Paystack decides. Auto increment for subsequent invoices continue from this point. - type: integer - split_code: - description: The split code of the transaction split. - type: string + $ref: '#/components/schemas/PlanCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PlanCreate' responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/PlanCreateSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' - '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error - '/paymentrequest/verify/{id}': - parameters: - - name: id - in: path - required: true - schema: - type: string get: tags: - - Payment Request - summary: Verify Payment Request - operationId: paymentRequest_verify + - Plan + summary: List Plans + operationId: plan_list + description: List all recurring payment plans + parameters: + - in: query + name: perPage + description: Number of records to fetch per page + schema: + type: integer + - in: query + name: page + description: The section to retrieve + schema: + type: integer + - in: query + name: interval + description: Specify interval of the plan + schema: + type: string + enum: + - daily + - weekly + - monthly + - biannually + - annually + - in: query + name: amount + schema: + type: integer + description: The amount on the plans to retrieve + - in: query + name: from + schema: + type: string + format: date-time + description: The start date + - in: query + name: to + schema: + type: string + format: date-time + description: The end date responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/PlanListSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - '/paymentrequest/notify/{id}': + /plan/{code}: parameters: - - name: id + - name: code in: path required: true + description: The plan code you want to fetch schema: type: string - post: - tags: - - Payment Request - summary: Send Notification - operationId: paymentRequest_notify - responses: - '200': - $ref: '#/paths/~1page/get/responses/200' - '401': - $ref: '#/paths/~1page/get/responses/401' - default: - description: Server error - /paymentrequest/totals: + example: PLN_gx2wn530m0i3w3m get: tags: - - Payment Request - summary: Payment Request Total - operationId: paymentRequest_totals + - Plan + summary: Fetch Plan + operationId: plan_fetch + description: Get the details of a payment plan responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/PlanFetchSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - '/paymentrequest/finalize/{id}': - parameters: - - name: id - in: path - required: true - schema: - type: string - post: + put: tags: - - Payment Request - summary: Finalize Payment Request - operationId: paymentRequest_finalize + - Plan + summary: Update Plan + operationId: plan_update + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PlanUpdate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PlanUpdate' responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/PlanUpdateSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' default: description: Server error - '/paymentrequest/archive/{id}': - parameters: - - name: id - in: path - required: true - schema: - type: string + /subscription: post: tags: - - Payment Request - summary: Archive Payment Request - operationId: paymentRequest_archive + - Subscription + summary: Create Subscription + operationId: subscription_create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriptionCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SubscriptionCreate' responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/SubscriptionCreateSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error - /settlement: get: tags: - - Settlement - summary: Fetch Settlements - operationId: settlements_fetch + - Subscription + summary: List Subscriptions + operationId: subscription_list parameters: - - name: perPage - in: query + - in: query + name: perPage schema: type: integer - example: 50 - - name: page - in: query + description: Number of records to fetch per page + - in: query + name: page schema: type: integer - example: 2 + description: The section to retrieve + - in: query + name: plan + schema: + type: string + description: Plan ID + - in: query + name: customer + schema: + type: string + description: Customer ID + - in: query + name: from + schema: + type: string + format: date-time + description: The start date + - in: query + name: to + schema: + type: string + format: date-time + description: The end date responses: '200': - $ref: '#/paths/~1product/post/responses/201' + $ref: '#/components/responses/SubscriptionListSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - '/settlement/{id}/transaction': + /subscription/{code}: parameters: - - name: id + - name: code in: path required: true schema: - type: integer + type: string get: tags: - - Settlement - summary: Settlement Transactions - operationId: settlements_transaction - parameters: - - name: perPage - in: query - schema: - type: integer - example: 50 - - name: page - in: query - schema: - type: integer - example: 2 + - Subscription + summary: Fetch Subscription + operationId: subscription_fetch responses: '200': - $ref: '#/paths/~1product/post/responses/201' + $ref: '#/components/responses/SubscriptionFetchSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - /transferrecipient: + /subscription/disable: post: tags: - - Transfer Recipient - summary: Create Transfer Recipient - operationId: transferrecipient_create + - Subscription + summary: Disable Subscription + operationId: subscription_disable requestBody: content: + application/json: + schema: + $ref: '#/components/schemas/SubscriptionToggle' application/x-www-form-urlencoded: schema: - $ref: '#/paths/~1transferrecipient/post/requestBody/content/application~1json/schema' + $ref: '#/components/schemas/SubscriptionToggle' + responses: + '200': + $ref: '#/components/responses/SubscriptionDisableSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + /subscription/enable: + post: + tags: + - Subscription + summary: Enable Subscription + operationId: subscription_enable + requestBody: + content: application/json: schema: - type: object - required: - - type - - name - - account_number - - bank_code - properties: - type: - description: 'Recipient Type - nuban for NGN, mobile_money for MOMO in GHS, basa for ZAR and authorization for all.' - type: string - enum: - - nuban - - mobile_money - - basa - - authorization - name: - description: Recipient's name - type: string - example: Ada Lovelace - account_number: - description: Recipient's bank account number - type: string - example: '0000000000' - bank_code: - description: Recipient's bank code. You can get the list of Bank Codes by calling the List Banks endpoint - type: string - example: '011' - description: - description: A description for this recipient - type: string - example: Keeps our servers running - currency: - description: Currency for the account receiving the transfer - type: string - enum: - - NGN - - GHS - - ZAR - - KES - authorization_code: - description: An authorization code from a previous transaction - type: string - example: AUTH_CODE - metadata: - description: Stringified JSON object of custom data - type: string - example: | - {referrer_id: 123} + $ref: '#/components/schemas/SubscriptionToggle' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SubscriptionToggle' + responses: + '200': + $ref: '#/components/responses/Ok' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + /subscription/{code}/manage/link: + get: + tags: + - Subscription + summary: Generate Update Subscription Link + operationId: subscription_manageLink + parameters: + - name: code + in: path + required: true + schema: + type: string + responses: + '200': + $ref: '#/components/responses/Ok' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + /subscription/{code}/manage/email: + post: + tags: + - Subscription + summary: Send Update Subscription Link + operationId: subscription_manageEmail + parameters: + - name: code + in: path + required: true + schema: + type: string + responses: + '200': + $ref: '#/components/responses/Ok' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + /transferrecipient: + post: + tags: + - Transfer Recipient + summary: Create Transfer Recipient + operationId: transferrecipient_create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TransferRecipientCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferRecipientCreate' responses: '201': - description: Transfer Recipient Created + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Create Customer: - $ref: '#/paths/~1product/post/responses/201/content/application~1json/examples/Create%20Transfer%20Recipient' + $ref: '#/components/schemas/TransferRecipientCreateResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error get: @@ -2937,34 +2768,43 @@ paths: operationId: transferrecipient_list parameters: - in: query - name: perPage + name: use_cursor + description: A flag to indicate if cursor based pagination should be used schema: - type: integer - description: Number of records to fetch per page + type: boolean - in: query - name: page + name: next + description: | + An alphanumeric value returned for every cursor based retrieval, used to retrieve the next set of data schema: - type: integer - description: The section to retrieve + type: string - in: query - name: from + name: previous + description: | + An alphanumeric value returned for every cursor based retrieval, used to retrieve the previous set of data schema: type: string - format: date-time - description: The start date - in: query - name: to + name: per_page schema: - type: string - format: date-time - description: The end date + type: integer + description: The number of records to fetch per request + - in: query + name: page + schema: + type: integer + description: The offset to retrieve data from responses: '200': - $ref: '#/paths/~1page/get/responses/200' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TransferRecipientListResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error /transferrecipient/bulk: @@ -2975,30 +2815,24 @@ paths: operationId: transferrecipient_bulk requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1transferrecipient~1bulk/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - batch - properties: - batch: - description: |- - A list of transfer recipient object. Each object should contain type, name, and bank_code. - Any Create Transfer Recipient param can also be passed. - type: array - items: - $ref: '#/paths/~1transferrecipient/post/requestBody/content/application~1json/schema' + $ref: '#/components/schemas/TransferRecipientBulk' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferRecipientBulk' responses: '200': - $ref: '#/paths/~1page/get/responses/200' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TransferRecipientBulkCreateResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error - '/transferrecipient/{code}': + /transferrecipient/{code}: parameters: - name: code description: Transfer recipient code @@ -3013,11 +2847,15 @@ paths: operationId: transferrecipient_fetch responses: '200': - $ref: '#/paths/~1page/get/responses/200' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TransferRecipientFetchResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error put: @@ -3027,26 +2865,23 @@ paths: operationId: transferrecipient_update requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1transferrecipient~1%7Bcode%7D/put/requestBody/content/application~1json/schema' application/json: schema: - type: object - properties: - name: - description: Recipient's name - type: string - email: - description: Recipient's email address - type: string + $ref: '#/components/schemas/TransferRecipientUpdate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferRecipientUpdate' responses: '200': - $ref: '#/paths/~1page/get/responses/200' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TransferRecipientUpdateResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error delete: @@ -3056,11 +2891,15 @@ paths: operationId: transferrecipient_delete responses: '200': - $ref: '#/paths/~1page/get/responses/200' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TransferRecipientDeleteResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error /transfer: @@ -3071,47 +2910,21 @@ paths: operationId: transfer_initiate requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1transfer/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - source - - amount - - recipient - properties: - source: - description: Where should we transfer from? Only balance is allowed for now - type: string - example: balance - amount: - description: Amount to transfer in kobo if currency is NGN. pesewas if currency is GHS and cents for ZAR. - type: integer - example: 10234 - recipient: - description: The transfer recipient's code - type: string - example: RCP_CODE - reason: - description: The reason or narration for the transfer. - type: string - example: Good job - currency: - description: Specify the currency of the transfer. Defaults to NGN. - type: string - reference: - description: |- - If specified, the field should be a unique identifier (in lowercase) for the object. - Only -,_ and alphanumeric characters are allowed. - type: string - example: Transfer-123_unique + $ref: '#/components/schemas/TransferInitiate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferInitiate' responses: '200': - $ref: '#/paths/~1transfer~1bulk/post/responses/200' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TransferCreateResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error get: @@ -3121,38 +2934,76 @@ paths: operationId: transfer_list parameters: - in: query - name: perPage + name: use_cursor + description: A flag to indicate if cursor based pagination should be used schema: - type: integer - description: Number of records to fetch per page + type: boolean - in: query - name: page + name: next + description: | + An alphanumeric value returned for every cursor based retrieval, used to retrieve the next set of data schema: - type: integer - description: The section to retrieve + type: string - in: query - name: status + name: previous + description: | + An alphanumeric value returned for every cursor based retrieval, used to retrieve the previous set of data schema: type: string + - in: query + name: per_page + schema: + type: integer + description: The number of records to fetch per request + - in: query + name: page + schema: + type: integer + description: The offset to retrieve data from - in: query name: from + description: The start date schema: type: string format: date-time - description: The start date - in: query name: to + description: The end date schema: type: string format: date-time - description: The end date + - in: query + name: recipient + description: Filter transfer by the recipient code + schema: + type: string + - in: query + name: status + description: Filter transfer by status + schema: + type: string + default: pending + enum: + - pending + - success + - failed + - otp + - abandoned + - reversed + - blocked + - rejected + - received responses: '200': - $ref: '#/paths/~1page/get/responses/200' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TransferListResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error /transfer/finalize_transfer: @@ -3163,29 +3014,17 @@ paths: operationId: transfer_finalize requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1transfer~1finalize_transfer/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - transfer_code - - otp - properties: - transfer_code: - description: The transfer code you want to finalize - type: string - example: TRF_CODE - otp: - description: OTP sent to business phone to verify transfer - type: integer - example: 123456 + $ref: '#/components/schemas/TransferFinalize' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferFinalize' responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/Ok' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error /transfer/bulk: @@ -3196,59 +3035,24 @@ paths: operationId: transfer_bulk requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1transfer~1bulk/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - batch - properties: - source: - description: Where should we transfer from? Only balance is allowed for now - type: string - transfers: - description: 'A list of transfer object. Each object should contain amount, recipient, and reference' - type: array - items: - $ref: '#/paths/~1transfer/post/requestBody/content/application~1json/schema' + $ref: '#/components/schemas/TransferBulk' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferBulk' responses: '200': - description: Request successful + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Initiate Transfer: - value: - status: true - message: Transfer has been queued - data: - reference: on5hyz9poe - integration: 428626 - domain: test - amount: 3794800 - currency: NGN - source: balance - reason: Holiday Flexing - recipient: 6788170 - status: success - transfer_code: TRF_fiyxvgkh71e717b - id: 23070321 - failures: null - source_details: null - request: 654770431 - transferred_at: 2020-05-13T14:22:49.687Z - transfersessionid: [] - createdAt: 2020-05-13T14:22:49.687Z - updatedAt: 2020-05-13T14:22:49.687Z - '401': - $ref: '#/paths/~1page/get/responses/401' - default: - description: Server error - '/transfer/{code}': + $ref: '#/components/schemas/TransferBulkResponse' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + /transfer/{code}: parameters: - name: code description: Transfer code @@ -3263,32 +3067,40 @@ paths: operationId: transfer_fetch responses: '200': - $ref: '#/paths/~1page/get/responses/200' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TransferFetchResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - '/transfer/verify/{reference}': - parameters: - - name: reference - in: path - required: true - schema: - type: string + /transfer/verify/{reference}: get: tags: - Transfer summary: Verify Transfer operationId: transfer_verify + parameters: + - name: reference + in: path + required: true + schema: + type: string responses: '200': - $ref: '#/paths/~1page/get/responses/200' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TransferVerifyResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error /transfer/export: @@ -3296,22 +3108,29 @@ paths: tags: - Transfer summary: Export Transfers - operationId: transfer_download + operationId: transfer_exportTransfer parameters: - in: query - name: perPage - schema: - type: integer - description: Number of records to fetch per page - - in: query - name: page + name: recipient + description: Export transfer by the recipient code schema: - type: integer - description: The section to retrieve + type: string - in: query name: status + description: Export transfer by status schema: type: string + default: pending + enum: + - pending + - success + - failed + - otp + - abandoned + - reversed + - blocked + - rejected + - received - in: query name: from schema: @@ -3326,11 +3145,11 @@ paths: description: The end date responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/Ok' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error /transfer/resend_otp: @@ -3341,68 +3160,63 @@ paths: operationId: transfer_resendOtp requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1transfer~1resend_otp/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - transfer_code - - reason - properties: - transfer_code: - description: The transfer code that requires an OTP validation - type: string - reason: - description: Either resend_otp or transfer - type: string + $ref: '#/components/schemas/TransferResendOTP' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferResendOTP' responses: '200': - $ref: '#/paths/~1page/get/responses/200' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TransferResendsOtpResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error /transfer/disable_otp: post: tags: - Transfer - summary: Disable OTP requirement for Transfers + summary: Disable OTP for Transfers operationId: transfer_disableOtp responses: '200': - $ref: '#/paths/~1page/get/responses/200' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TransferDisablesOtpResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error /transfer/disable_otp_finalize: post: tags: - Transfer - summary: Finalize Disabling of OTP requirement for Transfers + summary: Finalize Disabling OTP for Transfers operationId: transfer_disableOtpFinalize requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1transfer~1disable_otp_finalize/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - otp - properties: - otp: - description: OTP sent to business phone to verify disabling OTP requirement - type: string - example: '123456' + $ref: '#/components/schemas/TransferFinalizeDisableOTP' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferFinalizeDisableOTP' responses: '200': - $ref: '#/paths/~1page/get/responses/200' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TransferFinalizeDisablesOtpResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error /transfer/enable_otp: @@ -3413,44 +3227,54 @@ paths: operationId: transfer_enableOtp responses: '200': - $ref: '#/paths/~1page/get/responses/200' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TransferEnablesOtpResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error - /balance: - get: + /product: + post: tags: - - Balance - summary: Fetch Balance - operationId: balance_fetch - description: Check your Paystack account balance + - Product + summary: Create Product + operationId: product_create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ProductCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ProductCreate' responses: - '200': - $ref: '#/paths/~1page/get/responses/200' + '201': + $ref: '#/components/responses/ProductCreateSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' - '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error - /balance/ledger: get: tags: - - Balance - summary: Balance Ledger - operationId: balance_ledger + - Product + summary: List Products + operationId: product_list parameters: - - in: query - name: perPage + - name: perPage + in: query schema: type: integer - description: Number of records to fetch per page - - in: query - name: page + - name: page + in: query schema: type: integer - description: The section to retrieve + - name: active + in: query + schema: + type: boolean - in: query name: from schema: @@ -3465,615 +3289,331 @@ paths: description: The end date responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/ProductListsSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - /charge: - post: + /product/{id}: + parameters: + - name: id + in: path + required: true + schema: + type: string + get: tags: - - Charge - summary: Create Charge - operationId: charge_create - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1charge/post/requestBody/content/application~1json/schema' - application/json: - schema: - allOf: - - type: object - required: - - email - - amount - properties: - email: - description: Customer's email address - type: string - amount: - description: 'Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR' - type: string - authorization_code: - description: An authorization code to charge. - type: string - pin: - description: 4-digit PIN (send with a non-reusable authorization code) - type: string - reference: - description: 'Unique transaction reference. Only -, .`, = and alphanumeric characters allowed.' - type: string - birthday: - description: The customer's birthday in the format YYYY-MM-DD e.g 2017-05-16 - type: string - format: date-time - device_id: - description: |- - This is the unique identifier of the device a user uses in making payment. - Only -, .`, = and alphanumeric characters are allowed. - type: string - metadata: - description: Stringified JSON object of custom data - type: string - - type: object - properties: - bank: - type: object - properties: - code: - description: Customer's bank code - type: string - account_number: - description: Customer's account number - type: string - - type: object - properties: - mobile_money: - type: object - properties: - phone: - description: Customer's phone number - type: string - provider: - description: | - The telco provider of customer's phone number. - This can be fetched from the List Bank endpoint - type: string - - type: object - properties: - ussd: - type: object - properties: - type: - description: The three-digit USSD code - type: string - enum: - - 737 - - 919 - - 822 - - 966 - - type: object - properties: - eft: - type: object - properties: - provider: - description: The EFT provider - type: string - enum: - - ozow + - Product + summary: Fetch Product + operationId: product_fetch responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/ProductFetchSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' default: description: Server error - /charge/submit_pin: - post: + put: tags: - - Charge - summary: Submit PIN - operationId: charge_submitPin + - Product + summary: Update product + operationId: product_update requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1charge~1submit_pin/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - pin - - reference - properties: - pin: - description: Customer's PIN - type: string - reference: - description: Transaction reference that requires the PIN - type: string + $ref: '#/components/schemas/ProductUpdate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ProductUpdate' responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/ProductUpdateSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' default: description: Server error - /charge/submit_otp: - post: + delete: tags: - - Charge - summary: Submit OTP - operationId: charge_submitOtp - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1charge~1submit_otp/post/requestBody/content/application~1json/schema' - application/json: - schema: - type: object - required: - - otp - - reference - properties: - otp: - description: Customer's OTP - type: string - reference: - description: The reference of the ongoing transaction - type: string + - Product + summary: Delete Product + operationId: product_delete responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/ProductDeleteSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' default: description: Server error - /charge/submit_phone: + /storefront: post: tags: - - Charge - summary: Submit Phone - operationId: charge_submitPhone + - Storefront + summary: Create Storefront + operationId: storefront_create requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1charge~1submit_phone/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - phone - - reference - properties: - phone: - description: Customer's mobile number - type: string - reference: - description: The reference of the ongoing transaction - type: string + $ref: '#/components/schemas/StorefrontCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StorefrontCreate' + responses: + '200': + $ref: '#/components/responses/StorefrontCreateSuccess' + '400': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + get: + tags: + - Storefront + summary: List Storefronts + operationId: storefront_list + parameters: + - name: perPage + in: query + schema: + type: integer + - name: page + in: query + schema: + type: integer + - name: status + in: query + schema: + type: string + enum: + - active + - inactive responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/StorefrontListSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' default: description: Server error - /charge/submit_birthday: - post: + /storefront/{id}: + parameters: + - name: id + in: path + required: true + schema: + type: string + get: tags: - - Charge - summary: Submit Birthday - operationId: charge_submitBirthday - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1charge~1submit_birthday/post/requestBody/content/application~1json/schema' - application/json: - schema: - type: object - required: - - birthday - - reference - properties: - birthday: - description: Customer's birthday in the format YYYY-MM-DD e.g 2016-09-21 - type: string - reference: - description: The reference of the ongoing transaction - type: string + - Storefront + summary: Fetch Storefront + operationId: storefront_fetch responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/StorefrontFetchSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' default: description: Server error - /charge/submit_address: - post: + put: tags: - - Charge - summary: Submit Address - operationId: charge_submitAddress + - Storefront + summary: Update Storefront + operationId: storefront_update requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1charge~1submit_address/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - address - - reference - - city - - state - - zipcode - properties: - address: - description: Customer's address - type: string - city: - description: Customer's city - type: string - state: - description: Customer's state - type: string - zipcode: - description: Customer's zipcode - type: string - reference: - description: The reference of the ongoing transaction - type: string + $ref: '#/components/schemas/StorefrontUpdate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StorefrontUpdate' + responses: + '200': + $ref: '#/components/responses/StorefrontUpdateSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + default: + description: Server error + delete: + tags: + - Storefront + summary: Delete Storefront + operationId: storefront_delete responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/StorefrontDeleteSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' default: description: Server error - '/charge/{reference}': + /storefront/verify/{slug}: + parameters: + - name: slug + in: path + required: true + schema: + type: string get: tags: - - Charge - summary: Check pending charge - operationId: charge_check - parameters: - - name: reference - in: path - required: true - schema: - type: string + - Storefront + summary: Verify Storefront Slug + operationId: storefront_verifySlug responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/Ok' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - /bulkcharge: - post: + /storefront/{id}/order: + get: tags: - - Bulk Charge - summary: Initiate Bulk Charge - operationId: bulkCharge_initiate - requestBody: - content: - application/x-www-form-urlencoded: - schema: - type: array - items: - type: object - required: - - authorization - - amount - properties: - authorization: - description: Customer's card authorization code - type: string - amount: - description: Amount to charge on the authorization - type: string - reference: - description: 'Unique transaction reference. Only -, ., = and alphanumeric characters allowed.' - type: string - application/json: - schema: - type: array - items: - properties: - charges: - title: charges - type: object - items: - $ref: '#/paths/~1bulkcharge/post/requestBody/content/application~1x-www-form-urlencoded/schema/items' - responses: - '200': - $ref: '#/paths/~1page/get/responses/200' - '401': - $ref: '#/paths/~1page/get/responses/401' - default: - description: Server error - get: - tags: - - Bulk Charge - summary: List Bulk Charge Batches - operationId: bulkCharge_list + - Storefront + summary: Fetch Storefront Orders + description: Fetch all orders in your Storefront + operationId: storefront_fetchOrders parameters: - - in: query - name: perPage - schema: - type: integer - description: Number of records to fetch per page - - in: query - name: page - schema: - type: integer - description: The section to retrieve - - in: query - name: from - schema: - type: string - format: date-time - description: The start date - - in: query - name: to + - name: id + in: path + required: true schema: type: string - format: date-time - description: The end date + example: Z0R4orOU responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/Ok' '401': - $ref: '#/paths/~1page/get/responses/401' - '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error - '/bulkcharge/{code}': + /storefront/{id}/product: parameters: - - name: code - description: Batch code + - name: id in: path required: true schema: type: string - get: - tags: - - Bulk Charge - summary: Fetch Bulk Charge Batch - operationId: bulkCharge_fetch - responses: - '200': - $ref: '#/paths/~1page/get/responses/200' - '401': - $ref: '#/paths/~1page/get/responses/401' - '404': - $ref: '#/paths/~1page/get/responses/401' - default: - description: Server error - '/bulkcharge/{code}/charges': - get: + post: tags: - - Bulk Charge - summary: Fetch Charges in a Batch - operationId: bulkCharge_charges - parameters: - - name: code - description: Batch code - in: path - required: true - schema: - type: string + - Storefront + summary: Add Products to Storefront + operationId: storefront_addProducts + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StorefrontAddProducts' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/StorefrontAddProducts' responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/Ok' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - '/bulkcharge/pause/{code}': get: tags: - - Bulk Charge - summary: Pause Bulk Charge Batch - operationId: bulkCharge_pause - parameters: - - name: code - description: Batch code - in: path - required: true - schema: - type: string + - Storefront + summary: List Products in Storefront + operationId: storefront_listProducts responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/Ok' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - '/bulkcharge/resume/{code}': - get: + /storefront/{id}/publish: + parameters: + - name: id + in: path + required: true + schema: + type: string + post: tags: - - Bulk Charge - summary: Resume Bulk Charge Batch - operationId: bulkCharge_resume - parameters: - - name: code - description: Batch code - in: path - required: true - schema: - type: string + - Storefront + summary: Publish Storefront + operationId: storefront_publish responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/Ok' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - /integration/payment_session_timeout: - get: + /storefront/{id}/duplicate: + parameters: + - name: id + in: path + required: true + schema: + type: string + post: tags: - - Integration - summary: Fetch Payment Session Timeout - operationId: integration_fetchPaymentSessionTimeout + - Storefront + summary: Duplicate Storefront + operationId: storefront_duplicate responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/Ok' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - put: + /order: + post: tags: - - Integration - summary: Update Payment Session Timeout - operationId: integration_updatePaymentSessionTimeout + - Order + summary: Create Order + operationId: order_create requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1integration~1payment_session_timeout/put/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - timeout - properties: - timeout: - description: Time in seconds before a transaction becomes invalid - type: string - responses: - '200': - $ref: '#/paths/~1page/get/responses/200' - '401': - $ref: '#/paths/~1page/get/responses/401' - '404': - $ref: '#/paths/~1page/get/responses/401' - default: - description: Server error - /refund: - post: - tags: - - Refund - summary: Create Refund - operationId: refund_create - requestBody: - content: + $ref: '#/components/schemas/OrderCreate' application/x-www-form-urlencoded: schema: - $ref: '#/paths/~1refund/post/requestBody/content/application~1json/schema' - application/json: - schema: - type: object - required: - - transaction - properties: - transaction: - description: Transaction reference or id - type: string - example: T685312322670591 - amount: - description: |- - Amount ( in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR ) to be refunded to the customer. - Amount cannot be more than the original transaction amount - type: integer - example: 10000 - currency: - description: Three-letter ISO currency - type: string - enum: - - NGN - - GHS - - ZAR - - USD - customer_note: - description: Customer reason - type: string - example: Refund for transaction T685312322670591 - merchant_note: - description: Merchant reason - type: string - example: Refund for transaction T685312322670591 by test@me.com + $ref: '#/components/schemas/OrderCreate' responses: '200': - description: Request successful - content: - application/json: - schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Create Refund: - value: - status: true - message: Refund has been queued for processing - data: - transaction: - id: 1004723697 - domain: test - reference: T685312322670591 - amount: 10000 - paid_at: '2021-08-20T18:34:11.000Z' - channel: apple_pay - currency: NGN - authorization: - exp_month: null - exp_year: null - account_name: null - customer: - international_format_phone: null - plan: {} - subaccount: - currency: null - split: {} - order_id: null - paidAt: '2021-08-20T18:34:11.000Z' - pos_transaction_data: null - source: null - fees_breakdown: null - integration: 412829 - deducted_amount: 0 - channel: null - merchant_note: Refund for transaction T685312322670591 by test@me.com - customer_note: Refund for transaction T685312322670591 - status: pending - refunded_by: test@me.com - expected_at: '2021-12-16T09:21:17.016Z' - currency: NGN - domain: live - amount: 10000 - fully_deducted: false - id: 3018284 - createdAt: '2021-12-07T09:21:17.122Z' - updatedAt: '2021-12-07T09:21:17.122Z' - '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/OrderCreateSuccess' + '401': + $ref: '#/components/responses/Unauthorized' default: description: Server error get: tags: - - Refund - summary: List Refunds - operationId: refund_list + - Order + summary: List Orders + operationId: order_list parameters: - in: query name: perPage @@ -4099,66 +3639,113 @@ paths: description: The end date responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/OrderListSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - '/refund/{id}': + /order/{id}: + parameters: + - name: id + in: path + required: true + schema: + type: string get: tags: - - Refund - summary: Fetch Refund - operationId: refund_fetch - parameters: - - name: id - in: path - required: true - schema: - type: string + - Order + summary: Fetch Order + operationId: order_fetch responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/OrderFetchSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - /dispute: + /order/product/{id}: + parameters: + - name: id + in: path + required: true + schema: + type: string get: tags: - - Dispute - summary: List Disputes - operationId: dispute_list + - Order + summary: Fetch Products Order + operationId: order_fetchProducts + responses: + '200': + $ref: '#/components/responses/OrderFetchProductSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + default: + description: Server error + /order/{code}/validate: + parameters: + - name: code + in: path + required: true + schema: + type: string + get: + tags: + - Order + summary: Validate pay for me order + operationId: order_validatePayForMe + responses: + '200': + $ref: '#/components/responses/OrderValidateSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + default: + description: Server error + /page: + post: + tags: + - Page + summary: Create Page + operationId: page_create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PageCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PageCreate' + responses: + '200': + $ref: '#/components/responses/PageCreateSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + get: + tags: + - Page + summary: List Pages + operationId: page_list parameters: - in: query name: perPage - description: Number of records to fetch per page schema: type: integer + description: Number of records to fetch per page - in: query name: page - description: The section to retrieve schema: type: integer - - in: query - name: status - description: Dispute Status. - schema: - type: string - enum: - - awaiting-merchant-feedback - - awaiting-bank-feedback - - pending - - resolved - - in: query - name: transaction - description: Transaction ID - schema: - type: string + description: The section to retrieve - in: query name: from schema: @@ -4173,94 +3760,130 @@ paths: description: The end date responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/PageListSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - '/dispute/{id}': + /page/{id}: parameters: - name: id - description: Dispute ID in: path required: true schema: type: string get: tags: - - Dispute - summary: Fetch Dispute - operationId: dispute_fetch - responses: - '200': - $ref: '#/paths/~1page/get/responses/200' + - Page + summary: Fetch Page + operationId: page_fetch + responses: + '200': + $ref: '#/components/responses/PageFetchSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error put: tags: - - Dispute - summary: Update Dispute - operationId: dispute_update + - Page + summary: Update Page + operationId: page_update requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1dispute~1%7Bid%7D/put/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - refund_amount - properties: - refund_amount: - description: 'The amount to refund, in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR' - type: string - uploaded_filename: - description: Filename of attachment returned via response from the Dispute upload URL - type: string + $ref: '#/components/schemas/PageUpdate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PageUpdate' responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/PageUpdateSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - '/dispute/{id}/upload_url': + /page/check_slug_availability/{slug}: + parameters: + - name: slug + in: path + required: true + schema: + type: string get: tags: - - Dispute - summary: Get Upload URL - operationId: dispute_uploadUrl - parameters: - - name: id - description: Dispute ID - in: path - required: true - schema: - type: string + - Page + summary: Check Slug Availability + operationId: page_checkSlugAvailability responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/PageCheckSlugAvailabilitySuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' + default: + description: Server error + /page/{id}/product: + parameters: + - name: id + in: path + required: true + schema: + type: string + post: + tags: + - Page + summary: Add Products + operationId: page_addProducts + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PageProduct' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PageProduct' + responses: + '200': + $ref: '#/components/responses/PageAddProductsSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + /paymentrequest: + post: + tags: + - Payment Request + summary: Create Payment Request + operationId: paymentRequest_create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRequestCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PaymentRequestCreate' + responses: + '200': + $ref: '#/components/responses/PaymentRequestCreateSuccess' + '401': + $ref: '#/components/responses/Unauthorized' default: description: Server error - /dispute/export: get: tags: - - Dispute - summary: Export Disputes - operationId: dispute_download + - Payment Request + summary: List Payment Request + operationId: paymentRequest_list parameters: - in: query name: perPage @@ -4272,10 +3895,21 @@ paths: schema: type: integer description: The section to retrieve + - in: query + name: customer + schema: + type: string + description: Customer ID - in: query name: status schema: type: string + description: Invoice status to filter + - in: query + name: currency + schema: + type: string + description: If your integration supports more than one currency, choose the one to filter - in: query name: from schema: @@ -4290,427 +3924,14232 @@ paths: description: The end date responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/PaymentRequestListSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - '/dispute/transaction/{id}': + /paymentrequest/{id}: + parameters: + - name: id + in: path + required: true + schema: + type: string get: tags: - - Dispute - summary: List Transaction Disputes - operationId: dispute_transaction - parameters: - - name: id - description: Transaction ID - in: path - required: true - schema: - type: string + - Payment Request + summary: Fetch Payment Request + operationId: paymentRequest_fetch responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/PaymentRequestListSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - '/dispute/{id}/resolve': put: tags: - - Dispute - summary: Resolve a Dispute - operationId: dispute_resolve - parameters: - - name: id - description: Dispute ID - in: path - required: true - schema: - type: string + - Payment Request + summary: Update Payment Request + operationId: paymentRequest_update requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1dispute~1%7Bid%7D~1resolve/put/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - resolution - - message - - refund_amount - - uploaded_filename - properties: - resolution: - description: Dispute resolution. - type: string - enum: - - merchant-accepted - - declined - message: - description: Reason for resolving - type: string - refund_amount: - description: 'The amount to refund, in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR' - type: string - uploaded_filename: - description: Filename of attachment returned via response from the Dispute upload URL - type: string - evidence: - description: Evidence Id for fraud claims - type: integer + $ref: '#/components/schemas/PaymentRequestUpdate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PaymentRequestUpdate' + responses: + '200': + $ref: '#/components/responses/PaymentRequestUpdateSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + default: + description: Server error + /paymentrequest/verify/{id}: + parameters: + - name: id + in: path + required: true + schema: + type: string + get: + tags: + - Payment Request + summary: Verify Payment Request + operationId: paymentRequest_verify responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/PaymentRequestVerifySuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - '/dispute/{id}/evidence': + /paymentrequest/notify/{id}: + parameters: + - name: id + in: path + required: true + schema: + type: string post: tags: - - Dispute - summary: Add Evidence - operationId: dispute_evidence - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1dispute~1%7Bid%7D~1evidence/post/requestBody/content/application~1json/schema' - application/json: - schema: - type: object - required: - - customer_email - - customer_name - - customer_phone - - service_details - properties: - customer_email: - description: Customer email - type: string - customer_name: - description: Customer name - type: string - customer_phone: - description: Customer mobile number - type: string - service_details: - description: Details of service offered - type: string - delivery_address: - description: Delivery address - type: string - delivery_date: - description: ISO 8601 representation of delivery date (YYYY-MM-DD) - type: string - format: date-time - parameters: - - name: id - description: Dispute ID - in: path - required: true - schema: - type: string + - Payment Request + summary: Send Notification + operationId: paymentRequest_notify responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/PaymentRequestSendNotificationSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error - /bank/resolve: + /paymentrequest/totals: get: tags: - - Verification - summary: Resolve Account Number - operationId: verification_resolveAccountNumber - parameters: - - name: account_number - in: query - schema: - type: integer - example: 0022728151 - - name: bank_code - in: query - schema: - type: integer - example: 51 + - Payment Request + summary: Payment Request Total + operationId: paymentRequest_totals responses: '200': - description: Resolve Account Number - content: - application/json: - schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Resolve Bank: - value: - status: true - message: Account number resolved - data: - account_number: 342391 - account_name: Doe Jane Loren - bank_id: 9 - '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/PaymentRequestTotalSuccess' + '401': + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - '/decision/bin/{bin}': - get: + /paymentrequest/finalize/{id}: + parameters: + - name: id + in: path + required: true + schema: + type: string + post: tags: - - Verification - summary: Resolve Card BIN - operationId: verification_resolveCardBin - parameters: - - name: bin - in: path - required: true - schema: - type: string + - Payment Request + summary: Finalize Payment Request + operationId: paymentRequest_finalize responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/PaymentRequestFinalizeSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' - '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error - /country: - get: + /paymentrequest/archive/{id}: + parameters: + - name: id + in: path + required: true + schema: + type: string + post: tags: - - Verification - summary: List Countries - operationId: verification_listCountries + - Payment Request + summary: Archive Payment Request + operationId: paymentRequest_archive responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/PaymentRequestArchiveSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' - '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error - /bank: + /settlement: get: tags: - - Verification - summary: Fetch Banks - operationId: verification_fetchBanks + - Settlement + summary: Fetch Settlements + operationId: settlements_fetch parameters: - - in: query - name: country + - name: perPage + in: query schema: - type: string - - in: query - name: pay_with_bank_transfer + type: integer + example: 50 + - name: page + in: query schema: - type: boolean - - in: query - name: use_cursor + type: integer + example: 2 + responses: + '200': + $ref: '#/components/responses/Ok' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + default: + description: Server error + /settlement/{id}/transaction: + get: + tags: + - Settlement + summary: Settlement Transactions + operationId: settlements_transaction + parameters: + - name: id + in: path + required: true schema: - type: boolean + type: string + responses: + '200': + $ref: '#/components/responses/Ok' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + default: + description: Server error + /balance: + get: + tags: + - Balance + summary: Fetch Balance + operationId: balance_fetch + description: You can only transfer from what you have + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/BalanceCheckResponse' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + default: + description: Server error + /balance/ledger: + get: + tags: + - Balance + summary: Balance Ledger + operationId: balance_ledger + parameters: - in: query name: perPage schema: type: integer + description: Number of records to fetch per page - in: query - name: next + name: page schema: - type: string + type: integer + description: The section to retrieve - in: query - name: previous + name: from schema: type: string + format: date-time + description: The start date - in: query - name: gateway + name: to schema: type: string + format: date-time + description: The end date responses: '200': - $ref: '#/paths/~1page/get/responses/200' + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/BalanceFetchLedgerResponse' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error - /address_verification/states: + /integration/payment_session_timeout: get: tags: - - Verification - summary: List States (AVS) - operationId: verification_avs + - Integration + summary: Fetch Payment Session Timeout + operationId: integration_fetchPaymentSessionTimeout + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ControlPanelFetchPaymentSessionTimeoutResponse' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + default: + description: Server error + put: + tags: + - Integration + summary: Update Payment Session Timeout + operationId: integration_updatePaymentSessionTimeout + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentSession' + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ControlPanelUpdatePaymentSessionTimeoutResponse' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + default: + description: Server error + /refund: + post: + tags: + - Refund + summary: Create Refund + operationId: refund_create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RefundCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/RefundCreate' + responses: + '200': + $ref: '#/components/responses/RefundCreateSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + get: + tags: + - Refund + summary: List Refunds + operationId: refund_list parameters: - in: query - name: type + name: perPage schema: - type: string + type: integer + description: Number of records to fetch per page - in: query - name: country + name: page + schema: + type: integer + description: The section to retrieve + - in: query + name: from schema: type: string + format: date-time + description: The start date - in: query - name: currency + name: to schema: type: string + format: date-time + description: The end date responses: '200': - $ref: '#/paths/~1page/get/responses/200' + $ref: '#/components/responses/RefundListSuccess' '401': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1page/get/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error -components: - securitySchemes: - bearerAuth: - type: http - scheme: bearer - schemas: - Customer: - allOf: - - type: object - required: - - email - properties: - email: - description: Customer's email address - type: string - - type: object - properties: - first_name: - description: Customer's first name - type: string - example: Some - last_name: - description: Customer's last name - type: string - example: Body - phone: - description: Customer's phone number - type: string - example: '+2348123456789' - metadata: - description: Stringified JSON object of custom data - type: string - - type: object - required: - - authorization_code - properties: - authorization_code: - description: Customer's authorization code to be deactivated - type: string - - type: object - required: - - customer - properties: - customer: - description: 'Customer''s code, or email address' - type: string - risk_action: - description: | - One of the possible risk actions [ default, allow, deny ]. allow to whitelist. - deny to blacklist. Customers start with a default risk action. - type: string - enum: - - default - - allow - - deny - - type: object - required: - - type - - country - - bvn - - bank_code - - account_number - properties: - type: - description: Predefined types of identification. - type: string - enum: - - bvn - - bank_account - country: - description: Two-letter country code of identification issuer - type: string - example: NG - bvn: - description: Customer's Bank Verification Number - type: integer - example: 0123456789 - bank_code: - description: 'You can get the list of bank codes by calling the List Banks endpoint (https://api.paystack.co/bank).' - type: string - example: '007' - account_number: - description: Customer's bank account number. - type: string - example: '0111111111' - first_name: - description: Customer's first name - type: string - example: Uchenna - last_name: - description: Customer's last name - type: string - example: Okoro - Error: - type: object - properties: - status: - type: boolean - message: - type: string - Response: - type: object - properties: - status: - type: boolean - message: - type: string - data: - type: object - responses: - Ok: - description: Successful operation - content: - application/json: + /refund/{id}: + get: + tags: + - Refund + summary: Fetch Refund + operationId: refund_fetch + parameters: + - name: id + in: path + required: true schema: - type: object - properties: - status: - type: boolean - message: - type: string - data: - type: object - Created: - description: Resource created - content: - application/json: + type: string + responses: + '200': + $ref: '#/components/responses/RefundFetchSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + default: + description: Server error + /dispute: + get: + tags: + - Dispute + summary: List Disputes + operationId: dispute_list + parameters: + - in: query + name: perPage + description: Number of records to fetch per page schema: - $ref: '#/components/schemas/Response' - NotFound: - description: Entity not found - content: + type: integer + - in: query + name: page + description: The section to retrieve + schema: + type: integer + - in: query + name: status + description: Dispute Status. Acceptable values are awaiting-merchant-feedback, awaiting-bank-feedback, pending, resolved + schema: + type: string + - in: query + name: transaction + description: Transaction ID + schema: + type: string + - in: query + name: from + schema: + type: string + format: date-time + description: The start date + - in: query + name: to + schema: + type: string + format: date-time + description: The end date + responses: + '200': + $ref: '#/components/responses/DisputeListSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + default: + description: Server error + /dispute/{id}: + parameters: + - name: id + description: Dispute ID + in: path + required: true + schema: + type: string + get: + tags: + - Dispute + summary: Fetch Dispute + operationId: dispute_fetch + responses: + '200': + $ref: '#/components/responses/DisputeFetchSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + default: + description: Server error + put: + tags: + - Dispute + summary: Update Dispute + operationId: dispute_update + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DisputeUpdate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DisputeUpdate' + responses: + '200': + $ref: '#/components/responses/DisputeUpdateSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + default: + description: Server error + /dispute/{id}/upload_url: + get: + tags: + - Dispute + summary: Get Upload URL + operationId: dispute_uploadUrl + parameters: + - name: id + description: Dispute ID + in: path + required: true + schema: + type: string + responses: + '200': + $ref: '#/components/responses/DisputeUploadURLSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + default: + description: Server error + /dispute/export: + get: + tags: + - Dispute + summary: Export Disputes + operationId: dispute_download + parameters: + - in: query + name: perPage + schema: + type: integer + description: Number of records to fetch per page + - in: query + name: page + schema: + type: integer + description: The section to retrieve + - in: query + name: status + schema: + type: string + - in: query + name: from + schema: + type: string + format: date-time + description: The start date + - in: query + name: to + schema: + type: string + format: date-time + description: The end date + responses: + '200': + $ref: '#/components/responses/DisputeExportSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + default: + description: Server error + /dispute/transaction/{id}: + get: + tags: + - Dispute + summary: List Transaction Disputes + operationId: dispute_transaction + parameters: + - name: id + description: Transaction ID + in: path + required: true + schema: + type: string + responses: + '200': + $ref: '#/components/responses/DisputeListTransactionSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + default: + description: Server error + /dispute/{id}/resolve: + put: + tags: + - Dispute + summary: Resolve a Dispute + operationId: dispute_resolve + parameters: + - name: id + description: Dispute ID + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DisputeResolve' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DisputeResolve' + responses: + '200': + $ref: '#/components/responses/DisputeResolveSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + default: + description: Server error + /dispute/{id}/evidence: + post: + tags: + - Dispute + summary: Add Evidence + operationId: dispute_evidence + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DisputeEvidence' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DisputeEvidence' + parameters: + - name: id + description: Dispute ID + in: path + required: true + schema: + type: string + responses: + '200': + $ref: '#/components/responses/DisputeAddEvidenceSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + /bank: + get: + tags: + - Bank + summary: List Banks + operationId: bank_list + parameters: + - in: query + name: country + description: | + The country from which to obtain the list of supported banks. + schema: + type: string + enum: + - ghana + - kenya + - nigeria + - south africa + - in: query + name: pay_with_bank_transfer + schema: + type: boolean + - in: query + name: use_cursor + schema: + type: boolean + - in: query + name: perPage + schema: + type: integer + - in: query + name: next + schema: + type: string + - in: query + name: previous + schema: + type: string + - in: query + name: gateway + schema: + type: string + responses: + '200': + $ref: '#/components/responses/MiscellaneousListBanksSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + default: + description: Server error + /bank/resolve: + get: + tags: + - Bank + summary: Resolve Account Number + operationId: bank_resolveAccountNumber + parameters: + - name: account_number + in: query + schema: + type: integer + example: 22728151 + - name: bank_code + in: query + schema: + type: integer + example: 63 + responses: + '200': + $ref: '#/components/responses/VerificationResolveAccountNumberSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + default: + description: Server error + /bank/validate: + post: + tags: + - Bank + summary: Validate Bank Account + operationId: bank_validateAccountNumber + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BankValidateRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/BankValidateRequest' + responses: + '200': + $ref: '#/components/responses/VerificationValidateAccountSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + /decision/bin/{bin}: + get: + tags: + - Miscellaneous + summary: Resolve Card BIN + operationId: miscellaneous_resolveCardBin + parameters: + - name: bin + in: path + required: true + schema: + type: string + responses: + '200': + $ref: '#/components/responses/VerificationResolveCardBINSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + default: + description: Server error + /country: + get: + tags: + - Miscellaneous + summary: List Countries + operationId: miscellaneous_listCountries + responses: + '200': + $ref: '#/components/responses/MiscellaneousListCountriesSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + default: + description: Server error + /address_verification/states: + get: + tags: + - Miscellaneous + summary: List States (AVS) + operationId: miscellaneous_avs + description: Get a list of states for a country for address verification + parameters: + - in: query + name: country + description: The country code of the states to list. It is gotten after the charge request + schema: + type: string + example: CA + responses: + '200': + $ref: '#/components/responses/MiscellaneousListStatesSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + default: + description: Server error +components: + securitySchemes: + bearerAuth: + type: http + scheme: bearer + description: Secret key in the format sk_domain_xxxxxx + schemas: + Currency: + description: List of all support currencies + type: string + enum: + - GHS + - KES + - NGN + - ZAR + - USD + example: GHS + SplitSubaccounts: + type: object + properties: + subaccount: + description: Subaccount code of the customer or partner + type: string + share: + description: The percentage or flat quota of the customer or partner + type: integer + example: + subaccount: ACCT_6uujpqtzmnufzkw + share: 50 + SplitCreate: + type: object + description: | + Split configuration for transactions + required: + - name + - type + - subaccounts + - currency + properties: + name: + description: Name of the transaction split + type: string + type: + description: The type of transaction split you want to create. + type: string + enum: + - percentage + - flat + subaccounts: + description: A list of object containing subaccount code and number of shares + type: array + items: + $ref: '#/components/schemas/SplitSubaccounts' + currency: + description: The transaction currency + type: string + enum: + - NGN + - GHS + - ZAR + - USD + bearer_type: + description: This allows you specify how the transaction charge should be processed + type: string + enum: + - subaccount + - account + - all-proportional + - all + bearer_subaccount: + description: This is the subaccount code of the customer or partner that would bear the transaction charge if you specified subaccount as the bearer type + type: string + example: + name: Halfsies + type: percentage + currency: NGN + subaccounts: + - subaccount: ACCT_6uujpqtzmnufzkw + share: 50 + TransactionInitialize: + description: Initialize a transaction + type: object + required: + - email + - amount + properties: + email: + description: Customer's email address + type: string + amount: + description: | + Amount should be in smallest denomination of the currency. + type: integer + currency: + $ref: '#/components/schemas/Currency' + reference: + description: Unique transaction reference. Only -, ., = and alphanumeric characters allowed. + type: string + channels: + description: An array of payment channels to control what channels you want to make available to the user to make a payment with + type: array + items: + type: string + enum: + - card + - bank + - ussd + - qr + - eft + - mobile_money + - bank_transfer + callback_url: + description: | + Fully qualified url, e.g. https://example.com/ to redirect your customers to after a successful payment. Use this to override the callback url provided on the dashboard for this transaction + type: string + plan: + description: | + If transaction is to create a subscription to a predefined plan, provide plan code here. + This would invalidate the value provided in amount + type: string + invoice_limit: + description: Number of times to charge customer during subscription to plan + type: integer + split_code: + description: The split code of the transaction split + type: string + split: + $ref: '#/components/schemas/SplitCreate' + subaccount: + description: The code for the subaccount that owns the payment + type: string + transaction_charge: + description: | + A flat fee to charge the subaccount for a transaction. + This overrides the split percentage set when the subaccount was created + type: string + bearer: + description: The bearer of the transaction charge + type: string + enum: + - account + - subaccount + label: + description: Used to replace the email address shown on the Checkout + type: string + metadata: + description: JSON object of custom data + type: object + example: + email: test@demo.com + amount: 10000 + TransactionInitializeResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + authorization_url: + type: string + access_code: + type: string + reference: + type: string + required: + - authorization_url + - access_code + - reference + required: + - status + - message + - data + ErrorMeta: + type: object + description: Extra details to help with a resolution of the error + properties: + nextStep: + type: string + description: A summarised solution for the error + TransactionInitializeBadRequestModel: + type: object + description: | + Error response returned when a transaction is initialized with incorrect parameters + properties: + status: + type: boolean + description: An indicator for the state of the request + message: + type: string + description: A short description of the error + meta: + $ref: '#/components/schemas/ErrorMeta' + type: + type: string + description: A tag to indicate the type of the error + enum: + - validation_error + - processor_error + - api_error + code: + type: string + description: The error code + errorCodeMappingNotFound: + type: boolean + description: An indicator for error mapping for the request + example: + status: false + message: Duplicate Transaction Reference + meta: + nextStep: Try and create the Transaction or Charge with a new reference + type: validation_error + code: duplicate_reference + errorCodeMappingNotFound: false + Error: + type: object + properties: + status: + type: boolean + description: An indicator for the state of the request + message: + type: string + description: A short description of the error + meta: + $ref: '#/components/schemas/ErrorMeta' + type: + type: string + description: A tag to indicate the type of the error + code: + type: string + description: The error code + enum: + - validation_error + - processor_error + - api_error + errorCodeMappingNotFound: + type: boolean + description: An indicator for error mapping for the request + TransactionChargeAuthorization: + type: object + required: + - email + - amount + - authorization_code + properties: + email: + description: Customer's email address + type: string + amount: + description: Amount in the lower denomination of your currency + type: integer + authorization_code: + description: Valid authorization code to charge + type: string + reference: + description: Unique transaction reference. Only -, ., = and alphanumeric characters allowed. + type: string + currency: + $ref: '#/components/schemas/Currency' + split_code: + description: The split code of the transaction split + type: string + split: + $ref: '#/components/schemas/SplitCreate' + subaccount: + description: The code for the subaccount that owns the payment + type: string + transaction_charge: + description: |- + A flat fee to charge the subaccount for a transaction. + This overrides the split percentage set when the subaccount was created + type: string + bearer: + description: The bearer of the transaction charge + type: string + enum: + - account + - subaccount + metadata: + description: Stringified JSON object of custom data + type: string + queue: + description: If you are making a scheduled charge call, it is a good idea to queue them so the processing system does not get overloaded causing transaction processing errors. + type: boolean + example: + email: jb@email.com + amount: 30000 + authorization_code: AUTH_df1l5ehnym + ChargeAuthorizationResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + amount: + type: integer + currency: + type: string + transaction_date: + type: string + status: + type: string + reference: + type: string + domain: + type: string + metadata: + type: string + gateway_response: + type: string + message: + type: string + nullable: true + channel: + type: string + ip_address: + nullable: true + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + nullable: true + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + metadata: + type: object + properties: + calling_code: + type: string + nullable: true + risk_action: + type: string + international_format_phone: + type: string + nullable: true + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + nullable: true + id: + type: integer + required: + - amount + - currency + - transaction_date + - status + - reference + - domain + - metadata + - gateway_response + - message + - channel + - ip_address + - log + - fees + - authorization + - customer + - plan + - id + required: + - status + - message + - data + TransactionPartialDebit: + type: object + required: + - email + - amount + - authorization_code + - currency + properties: + email: + description: Customer's email address + type: string + amount: + description: Specified in the lowest denomination of your currency + type: integer + format: int64 + authorization_code: + description: Valid authorization code to charge + type: string + currency: + $ref: '#/components/schemas/Currency' + at_least: + description: Minimum amount to charge + type: string + reference: + description: Unique transaction reference. Only -, ., = and alphanumeric characters allowed. + type: string + example: + email: tap@email.com + amount: 40510 + authorization_code: AUTH_df1l5ehnym + currency: ZAR + TransactionPartialDebitResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + amount: + type: integer + currency: + type: string + transaction_date: + type: string + status: + type: string + reference: + type: string + domain: + type: string + metadata: + type: string + gateway_response: + type: string + message: + nullable: true + channel: + type: string + ip_address: + nullable: true + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + metadata: + type: object + nullable: true + risk_action: + type: string + international_format_phone: + type: string + nullable: true + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + type: integer + requested_amount: + type: integer + id: + type: integer + required: + - amount + - currency + - transaction_date + - status + - reference + - domain + - gateway_response + - message + - channel + - ip_address + - log + - fees + - authorization + - customer + - metadata + - plan + - requested_amount + - id + required: + - status + - message + - data + VerifyResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + receipt_number: + type: string + nullable: true + amount: + type: integer + message: + type: string + nullable: true + gateway_response: + type: string + paid_at: + type: string + nullable: true + created_at: + type: string + channel: + type: string + currency: + type: string + ip_address: + type: string + metadata: + anyOf: + - type: string + - type: object + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + additionalProperties: false + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + nullable: true + fees_split: + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + bin: + nullable: true + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + nullable: true + receiver_bank_account_number: + nullable: true + receiver_bank: + nullable: true + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + metadata: + nullable: true + risk_action: + type: string + international_format_phone: + type: string + nullable: true + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + type: string + nullable: true + split: + type: object + order_id: + nullable: true + paidAt: + type: string + nullable: true + createdAt: + type: string + requested_amount: + type: integer + pos_transaction_data: + nullable: true + source: + nullable: true + fees_breakdown: + nullable: true + connect: + nullable: true + transaction_date: + type: string + plan_object: + type: object + properties: + id: + type: integer + name: + type: string + plan_code: + type: string + description: + nullable: true + amount: + type: integer + interval: + type: string + send_invoices: + type: boolean + send_sms: + type: boolean + currency: + type: string + oneOf: + - allOf: + - minProperties: 0 + - {} + - allOf: + - not: + minProperties: 0 + - required: + - id + - name + - plan_code + - description + - amount + - interval + - send_invoices + - send_sms + - currency + additionalProperties: false + subaccount: + type: object + required: + - id + - domain + - status + - reference + - receipt_number + - amount + - message + - gateway_response + - paid_at + - created_at + - channel + - currency + - ip_address + - metadata + - log + - fees + - fees_split + - authorization + - customer + - plan + - split + - order_id + - paidAt + - createdAt + - requested_amount + - pos_transaction_data + - source + - fees_breakdown + - connect + - transaction_date + - plan_object + - subaccount + required: + - status + - message + - data + TransactionListResponseArray: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + amount: + type: integer + message: + nullable: true + gateway_response: + type: string + paid_at: + type: string + nullable: true + created_at: + type: string + channel: + type: string + currency: + type: string + ip_address: + type: string + nullable: true + metadata: + type: object + nullable: true + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + nullable: true + fees_split: + type: integer + nullable: true + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + phone: + type: string + nullable: true + metadata: + type: object + nullable: true + customer_code: + type: string + risk_action: + type: string + required: + - id + - first_name + - last_name + - email + - phone + - metadata + - customer_code + - risk_action + authorization: + type: object + properties: + authorization_code: + type: string + nullable: true + bin: + type: string + nullable: true + last4: + type: string + nullable: true + exp_month: + type: string + nullable: true + exp_year: + type: string + nullable: true + channel: + type: string + nullable: true + card_type: + type: string + nullable: true + bank: + type: string + nullable: true + country_code: + type: string + nullable: true + brand: + type: string + nullable: true + reusable: + type: boolean + signature: + type: string + nullable: true + account_name: + type: string + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + plan: + type: object + split: + type: object + subaccount: + type: object + order_id: + nullable: true + paidAt: + type: string + createdAt: + type: string + requested_amount: + type: integer + source: + type: object + properties: + source: + type: string + type: + type: string + identifier: + nullable: true + entry_point: + type: string + required: + - source + - type + - identifier + - entry_point + nullable: true + connect: + type: object + nullable: true + pos_transaction_data: + nullable: true + required: + - id + - domain + - status + - reference + - amount + - message + - gateway_response + - paid_at + - created_at + - channel + - currency + - ip_address + - metadata + - log + - fees + - fees_split + - customer + - authorization + - plan + - split + - subaccount + - order_id + - paidAt + - createdAt + - requested_amount + - source + - connect + - pos_transaction_data + TransactionListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/TransactionListResponseArray' + meta: + type: object + properties: + total: + type: integer + total_volume: + type: number + skipped: + type: integer + perPage: + anyOf: + - type: string + - type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - total_volume + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + MetadataCustomFieldsArray: + type: object + properties: + value: + type: string + display_name: + type: string + variable_name: + type: string + required: + - value + - display_name + - variable_name + TransactionFetchResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + receipt_number: + nullable: true + amount: + type: integer + message: + nullable: true + gateway_response: + type: string + helpdesk_link: + nullable: true + paid_at: + type: string + created_at: + type: string + channel: + type: string + currency: + type: string + ip_address: + type: string + metadata: + type: object + properties: + custom_fields: + type: array + items: + $ref: '#/components/schemas/MetadataCustomFieldsArray' + required: + - custom_fields + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + fees_split: + type: integer + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + nullable: true + receiver_bank_account_number: + nullable: true + receiver_bank: + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + - receiver_bank_account_number + - receiver_bank + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + type: object + subaccount: + type: object + split: + type: object + order_id: + nullable: true + paidAt: + type: string + createdAt: + type: string + requested_amount: + type: integer + pos_transaction_data: + nullable: true + source: + type: object + properties: + type: + type: string + source: + type: string + identifier: + nullable: true + required: + - type + - source + - identifier + fees_breakdown: + nullable: true + connect: + nullable: true + required: + - id + - domain + - status + - reference + - receipt_number + - amount + - message + - gateway_response + - helpdesk_link + - paid_at + - created_at + - channel + - currency + - ip_address + - metadata + - log + - fees + - fees_split + - authorization + - customer + - plan + - subaccount + - split + - order_id + - paidAt + - createdAt + - requested_amount + - pos_transaction_data + - source + - fees_breakdown + - connect + required: + - status + - message + - data + TransactionTimelineResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + required: + - status + - message + - data + TransactionTotalVolumeByCurrencyArray: + type: object + properties: + currency: + type: string + amount: + type: integer + required: + - currency + - amount + TransactionPendingTransfersByCurrencyArray: + type: object + properties: + currency: + type: string + amount: + type: integer + required: + - currency + - amount + TransactionTotalsResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + total_transactions: + type: integer + total_volume: + type: integer + total_volume_by_currency: + type: array + items: + $ref: '#/components/schemas/TransactionTotalVolumeByCurrencyArray' + pending_transfers: + type: integer + pending_transfers_by_currency: + type: array + items: + $ref: '#/components/schemas/TransactionPendingTransfersByCurrencyArray' + required: + - total_transactions + - total_volume + - total_volume_by_currency + - pending_transfers + - pending_transfers_by_currency + required: + - status + - message + - data + TransactionExportResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + path: + type: string + expiresAt: + type: string + required: + - path + - expiresAt + required: + - status + - message + - data + ChargeCreate: + type: object + required: + - email + - amount + properties: + email: + description: Customer's email address + type: string + amount: + description: Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR + type: integer + authorization_code: + description: An authorization code to charge. + type: string + pin: + description: 4-digit PIN (send with a non-reusable authorization code) + type: string + reference: + description: Unique transaction reference. Only -, .`, = and alphanumeric characters allowed. + type: string + birthday: + description: The customer's birthday in the format YYYY-MM-DD e.g 2017-05-16 + type: string + format: date + device_id: + description: |- + This is the unique identifier of the device a user uses in making payment. + Only -, .`, = and alphanumeric characters are allowed. + type: string + metadata: + description: JSON object of custom data + type: object + example: + email: customer@email.com + amount: 350000 + authorization_code: AUTH_df1l5ehnym + Bank: + type: object + description: The bank object if charging a bank account + properties: + code: + description: Customer's bank code + type: string + account_number: + description: Customer's account number + type: string + MobileMoney: + type: object + description: Details of the mobile service provider + properties: + phone: + description: Customer's phone number + type: string + provider: + description: The telco provider of customer's phone number. This can be fetched from the List Bank endpoint + type: string + USSD: + type: object + description: The USSD code for the provider to charge + properties: + type: + description: The three-digit USSD code. + type: string + enum: + - '737' + - '919' + - '822' + - '966' + EFT: + type: object + description: Details of the EFT provider + properties: + provider: + description: The EFT provider + type: string + ChargeCreateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + receipt_number: + nullable: true + amount: + type: integer + message: + type: string + nullable: true + gateway_response: + type: string + paid_at: + type: string + created_at: + type: string + channel: + type: string + currency: + type: string + ip_address: + type: string + metadata: + type: object + properties: + custom_fields: + type: array + items: + $ref: '#/components/schemas/MetadataCustomFieldsArray' + required: + - custom_fields + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + fees_split: + type: integer + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + nullable: true + receiver_bank_account_number: + nullable: true + receiver_bank: + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + - receiver_bank_account_number + - receiver_bank + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + nullable: true + split: + type: object + order_id: + nullable: true + paidAt: + type: string + createdAt: + type: string + requested_amount: + type: integer + pos_transaction_data: + nullable: true + source: + nullable: true + fees_breakdown: + nullable: true + connect: + nullable: true + transaction_date: + type: string + plan_object: + type: object + subaccount: + type: object + required: + - id + - domain + - status + - reference + - receipt_number + - amount + - message + - gateway_response + - paid_at + - created_at + - channel + - currency + - ip_address + - metadata + - log + - fees + - fees_split + - authorization + - customer + - plan + - split + - order_id + - paidAt + - createdAt + - requested_amount + - pos_transaction_data + - source + - fees_breakdown + - connect + - transaction_date + - plan_object + - subaccount + required: + - status + - message + - data + ChargeSubmitPin: + type: object + required: + - pin + - reference + properties: + pin: + description: Customer's PIN for the ongoing transaction + type: string + reference: + description: Transaction reference that requires the PIN + type: string + example: + pin: '1234' + reference: 5bwib5v6anhe9xa + ChargeSubmitPinResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + status: + type: string + amount: + type: integer + currency: + type: string + transaction_date: + type: string + reference: + type: string + domain: + type: string + redirect_url: + type: string + nullable: true + metadata: + type: object + gateway_response: + type: string + message: + type: string + nullable: true + channel: + type: string + fees: + type: integer + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + nullable: true + bin: + type: string + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + customer: + type: object + properties: + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + risk_action: + type: string + required: + - first_name + - last_name + - email + - customer_code + - phone + - risk_action + required: + - status + - amount + - currency + - transaction_date + - reference + - domain + - redirect_url + - metadata + - gateway_response + - message + - channel + - fees + - authorization + - customer + required: + - status + - message + - data + ChargeSubmitOTP: + type: object + required: + - otp + - reference + properties: + otp: + description: Customer's OTP for ongoing transaction + type: string + reference: + description: The reference of the ongoing transaction + type: string + example: + otp: '123456' + reference: 5bwib5v6anhe9xa + ChargeSubmitOtpResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + status: + type: string + amount: + type: integer + currency: + type: string + transaction_date: + type: string + reference: + type: string + domain: + type: string + redirect_url: + type: string + nullable: true + metadata: + type: object + gateway_response: + type: string + message: + type: string + nullable: true + channel: + type: string + fees: + type: integer + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + nullable: true + bin: + type: string + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + customer: + type: object + properties: + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + risk_action: + type: string + required: + - first_name + - last_name + - email + - customer_code + - phone + - risk_action + required: + - status + - amount + - currency + - transaction_date + - reference + - domain + - redirect_url + - metadata + - gateway_response + - message + - channel + - fees + - authorization + - customer + required: + - status + - message + - data + ChargeSubmitPhone: + type: object + required: + - phone + - reference + properties: + phone: + description: Customer's mobile number + type: string + reference: + description: The reference of the ongoing transaction + type: string + example: + phone: '08012345678' + reference: 5bwib5v6anhe9xa + ChargeSubmitPhoneResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + status: + type: string + amount: + type: integer + currency: + type: string + transaction_date: + type: string + reference: + type: string + domain: + type: string + redirect_url: + type: string + nullable: true + metadata: + type: object + gateway_response: + type: string + message: + type: string + nullable: true + channel: + type: string + fees: + type: integer + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + nullable: true + bin: + type: string + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + customer: + type: object + properties: + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + risk_action: + type: string + required: + - first_name + - last_name + - email + - customer_code + - phone + - risk_action + display_text: + type: string + required: + - status + - amount + - currency + - transaction_date + - reference + - domain + - redirect_url + - metadata + - gateway_response + - message + - channel + - fees + - authorization + - customer + - display_text + required: + - status + - message + - data + ChargeSubmitBirthday: + type: object + required: + - birthday + - reference + properties: + birthday: + description: Customer's birthday in the format YYYY-MM-DD e.g 2016-09-21 + type: string + format: date + reference: + description: The reference of the ongoing transaction + type: string + example: + birthday: '1961-09-21' + reference: 5bwib5v6anhe9xa + ChargeSubmitBirthdayResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + status: + type: string + display_text: + type: string + required: + - status + - display_text + required: + - status + - message + - data + ChargeSubmitAddress: + type: object + required: + - address + - reference + - city + - state + - zip_code + properties: + address: + description: Customer's address + type: string + city: + description: Customer's city + type: string + state: + description: Customer's state + type: string + zip_code: + description: Customer's zipcode + type: string + reference: + description: The reference of the ongoing transaction + type: string + example: + address: 140 N 2ND ST + city: Stroudsburg + state: PA + zip_code: '18360' + reference: 5bwib5v6anhe9xa + Response: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + ChargeCheckPendingResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + status: + type: string + amount: + type: integer + currency: + type: string + transaction_date: + type: string + reference: + type: string + domain: + type: string + redirect_url: + type: string + nullable: true + metadata: + type: object + gateway_response: + type: string + message: + type: string + nullable: true + channel: + type: string + fees: + type: integer + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + nullable: true + bin: + type: string + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + customer: + type: object + properties: + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + risk_action: + type: string + required: + - first_name + - last_name + - email + - customer_code + - phone + - risk_action + required: + - status + - amount + - currency + - transaction_date + - reference + - domain + - redirect_url + - metadata + - gateway_response + - message + - channel + - fees + - authorization + - customer + required: + - status + - message + - data + BulkChargeListResponseArray: + type: object + properties: + integration: + type: integer + domain: + type: string + batch_code: + type: string + status: + type: string + easy_cron_id: + nullable: true + reference: + type: string + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - integration + - domain + - batch_code + - status + - easy_cron_id + - reference + - id + - createdAt + - updatedAt + BulkChargeListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/BulkChargeListResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + anyOf: + - type: integer + - type: string + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + BulkChargeInitiate: + type: object + description: A list of charge object + required: + - authorization + - amount + properties: + authorization: + description: Customer's card authorization code + type: string + amount: + description: Amount to charge on the authorization + type: integer + reference: + description: | + A unique identifier containing lowercase letters `(a-z)`, digits `(0-9)` and these symbols: dash (`-`), underscore(`_`) + type: string + attempt_partial_debit: + description: A flag to indicate if you want us to try recouping lower amounts when the customer has insufficient fund + type: boolean + at_least: + description: Minimum amount to charge if the attempt_partial_debit flag is set + type: integer + metadata: + description: JSON object of custom data + type: object + example: + authorization: AUTH_ncx8hews93 + amount: 250000 + reference: dam1266638dhhd + BulkChargeInitiateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + batch_code: + type: string + reference: + type: string + id: + type: integer + integration: + type: integer + domain: + type: string + status: + type: string + total_charges: + type: integer + pending_charges: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - batch_code + - reference + - id + - integration + - domain + - status + - total_charges + - pending_charges + - createdAt + - updatedAt + required: + - status + - message + - data + BulkChargeFetchResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + batch_code: + type: string + reference: + type: string + id: + type: integer + integration: + type: integer + domain: + type: string + status: + type: string + total_charges: + type: integer + pending_charges: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - batch_code + - reference + - id + - integration + - domain + - status + - total_charges + - pending_charges + - createdAt + - updatedAt + required: + - status + - message + - data + BulkChargeFetchBulkBatchChargesResponseArray: + type: object + properties: + integration: + type: integer + bulkcharge: + type: integer + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + properties: + calling_code: + type: string + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + domain: + type: string + amount: + type: integer + at_least: + type: integer + currency: + type: string + reference: + type: string + metadata: + type: object + properties: + custom_fields: + type: array + items: + $ref: '#/components/schemas/MetadataCustomFieldsArray' + required: + - custom_fields + status: + type: string + message: + type: string + attempt_partial_debit: + type: boolean + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - integration + - bulkcharge + - customer + - authorization + - domain + - amount + - at_least + - currency + - reference + - metadata + - status + - message + - attempt_partial_debit + - id + - createdAt + - updatedAt + BulkChargeFetchBulkBatchChargesResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/BulkChargeFetchBulkBatchChargesResponseArray' + meta: + type: object + properties: + perPage: + type: string + total: + type: integer + skipped: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - perPage + - total + - skipped + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + BulkChargePauseResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + BulkChargeResumeResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + SubaccountListResponseArray: + type: object + properties: + id: + type: integer + subaccount_code: + type: string + business_name: + type: string + description: + type: string + primary_contact_name: + type: string + primary_contact_email: + type: string + primary_contact_phone: + type: string + metadata: + type: string + percentage_charge: + type: number + settlement_bank: + type: string + bank_id: + type: integer + account_number: + type: string + currency: + type: string + active: + type: integer + is_verified: + type: boolean + required: + - id + - subaccount_code + - business_name + - description + - primary_contact_name + - primary_contact_email + - primary_contact_phone + - metadata + - percentage_charge + - settlement_bank + - bank_id + - account_number + - currency + - active + - is_verified + SubaccountListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/SubaccountListResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + SubaccountCreate: + type: object + required: + - business_name + - settlement_bank + - account_number + - percentage_charge + properties: + business_name: + description: Name of business for subaccount + type: string + settlement_bank: + description: Bank code for the bank. You can get the list of Bank Codes by calling the List Banks endpoint. + type: string + account_number: + description: Bank account number + type: string + percentage_charge: + description: Customer's phone number + type: number + format: float + description: + description: A description for this subaccount + type: string + primary_contact_email: + description: A contact email for the subaccount + type: string + primary_contact_name: + description: The name of the contact person for this subaccount + type: string + primary_contact_phone: + description: A phone number to call for this subaccount + type: string + metadata: + description: Stringified JSON object of custom data + type: string + example: + business_name: Oasis + account_number: '0123456047' + settlement_bank: '058' + percentage_charge: 30 + SubaccountCreateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + business_name: + type: string + account_name: + type: string + nullable: true + description: + type: string + primary_contact_name: + type: string + primary_contact_email: + type: string + primary_contact_phone: + type: string + metadata: + type: string + account_number: + type: string + percentage_charge: + type: number + settlement_bank: + type: string + currency: + type: string + bank: + type: integer + integration: + type: integer + domain: + type: string + product: + type: string + managed_by_integration: + type: integer + subaccount_code: + type: string + is_verified: + type: boolean + settlement_schedule: + type: string + active: + type: boolean + migrate: + type: boolean + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - business_name + - description + - primary_contact_name + - primary_contact_email + - primary_contact_phone + - metadata + - account_number + - percentage_charge + - settlement_bank + - currency + - bank + - integration + - domain + - managed_by_integration + - product + - subaccount_code + - is_verified + - settlement_schedule + - active + - migrate + - id + - createdAt + - updatedAt + required: + - status + - message + - data + SubaccountFetchResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + integration: + type: integer + account_name: + type: string + nullable: true + bank: + type: integer + managed_by_integration: + type: integer + domain: + type: string + subaccount_code: + type: string + business_name: + type: string + description: + type: string + primary_contact_name: + type: string + primary_contact_email: + type: string + primary_contact_phone: + type: string + metadata: + type: string + percentage_charge: + type: number + is_verified: + type: boolean + settlement_bank: + type: string + account_number: + type: string + settlement_schedule: + type: string + active: + type: boolean + migrate: + type: boolean + currency: + type: string + product: + type: string + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - integration + - bank + - managed_by_integration + - domain + - subaccount_code + - business_name + - description + - primary_contact_name + - primary_contact_email + - primary_contact_phone + - metadata + - percentage_charge + - is_verified + - settlement_bank + - account_number + - settlement_schedule + - active + - migrate + - currency + - product + - id + - createdAt + - updatedAt + required: + - status + - message + - data + SubaccountUpdate: + type: object + properties: + business_name: + description: Name of business for subaccount + type: string + settlement_bank: + description: Bank code for the bank. You can get the list of Bank Codes by calling the List Banks endpoint. + type: string + account_number: + description: Bank account number + type: string + active: + description: Activate or deactivate a subaccount + type: boolean + percentage_charge: + description: Customer's phone number + type: number + format: float + description: + description: A description for this subaccount + type: string + primary_contact_email: + description: A contact email for the subaccount + type: string + primary_contact_name: + description: The name of the contact person for this subaccount + type: string + primary_contact_phone: + description: A phone number to call for this subaccount + type: string + metadata: + description: Stringified JSON object of custom data + type: string + example: + business_name: Sandalwood + SubaccountUpdateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + domain: + type: string + subaccount_code: + type: string + account_name: + type: string + nullable: true + business_name: + type: string + description: + type: string + primary_contact_name: + type: string + primary_contact_email: + type: string + primary_contact_phone: + type: string + metadata: + type: string + percentage_charge: + type: number + is_verified: + type: boolean + settlement_bank: + type: string + account_number: + type: string + settlement_schedule: + type: string + active: + type: boolean + migrate: + type: boolean + currency: + type: string + product: + type: string + id: + type: integer + integration: + type: integer + bank: + type: integer + managed_by_integration: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - domain + - subaccount_code + - business_name + - description + - primary_contact_name + - primary_contact_email + - primary_contact_phone + - metadata + - percentage_charge + - is_verified + - settlement_bank + - account_number + - settlement_schedule + - active + - migrate + - currency + - product + - id + - integration + - bank + - managed_by_integration + - createdAt + - updatedAt + required: + - status + - message + - data + SplitSubaccountsArray: + type: object + properties: + subaccount: + type: object + properties: + id: + type: integer + subaccount_code: + type: string + business_name: + type: string + description: + type: string + primary_contact_name: + type: string + primary_contact_email: + type: string + primary_contact_phone: + type: string + metadata: + type: string + settlement_bank: + type: string + currency: + type: string + account_number: + type: string + required: + - id + - subaccount_code + - business_name + - description + - primary_contact_name + - primary_contact_email + - primary_contact_phone + - metadata + - settlement_bank + - currency + - account_number + share: + type: integer + required: + - subaccount + - share + SplitListResponseArray: + type: object + properties: + id: + type: integer + name: + type: string + type: + type: string + currency: + type: string + integration: + type: integer + domain: + type: string + split_code: + type: string + active: + type: boolean + bearer_type: + type: string + bearer_subaccount: + type: integer + nullable: true + createdAt: + type: string + updatedAt: + type: string + is_dynamic: + type: boolean + subaccounts: + type: array + items: + $ref: '#/components/schemas/SplitSubaccountsArray' + total_subaccounts: + type: integer + required: + - id + - name + - type + - currency + - integration + - domain + - split_code + - active + - bearer_type + - bearer_subaccount + - createdAt + - updatedAt + - is_dynamic + - subaccounts + - total_subaccounts + SplitListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/SplitListResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + SplitCreateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + name: + type: string + type: + type: string + currency: + type: string + integration: + type: integer + domain: + type: string + split_code: + type: string + active: + type: boolean + bearer_type: + type: string + bearer_subaccount: + type: integer + createdAt: + type: string + updatedAt: + type: string + is_dynamic: + type: boolean + subaccounts: + type: array + items: + $ref: '#/components/schemas/SplitSubaccountsArray' + total_subaccounts: + type: integer + required: + - id + - name + - type + - currency + - integration + - domain + - split_code + - active + - bearer_type + - createdAt + - updatedAt + - is_dynamic + - subaccounts + - total_subaccounts + required: + - status + - message + - data + SplitFetchResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + name: + type: string + type: + type: string + currency: + type: string + integration: + type: integer + domain: + type: string + split_code: + type: string + active: + type: boolean + bearer_type: + type: string + bearer_subaccount: + type: integer + createdAt: + type: string + updatedAt: + type: string + is_dynamic: + type: boolean + subaccounts: + type: array + items: + $ref: '#/components/schemas/SplitSubaccountsArray' + total_subaccounts: + type: integer + required: + - id + - name + - type + - currency + - integration + - domain + - split_code + - active + - bearer_type + - bearer_subaccount + - createdAt + - updatedAt + - is_dynamic + - subaccounts + - total_subaccounts + required: + - status + - message + - data + SplitUpdate: + type: object + properties: + name: + description: Name of the transaction split + type: string + active: + description: Toggle status of split. When true, the split is active, else it's inactive + type: boolean + bearer_type: + description: This allows you specify how the transaction charge should be processed + type: string + enum: + - subaccount + - account + - all-proportional + - all + bearer_subaccount: + description: This is the subaccount code of the customer or partner that would bear the transaction charge if you specified subaccount as the bearer type + type: string + SplitUpdateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + name: + type: string + type: + type: string + currency: + type: string + integration: + type: integer + domain: + type: string + split_code: + type: string + active: + type: boolean + bearer_type: + type: string + bearer_subaccount: + type: integer + createdAt: + type: string + updatedAt: + type: string + is_dynamic: + type: boolean + subaccounts: + type: array + items: + $ref: '#/components/schemas/SplitSubaccountsArray' + total_subaccounts: + type: integer + required: + - id + - name + - type + - currency + - integration + - domain + - split_code + - active + - bearer_type + - bearer_subaccount + - createdAt + - updatedAt + - is_dynamic + - subaccounts + - total_subaccounts + required: + - status + - message + - data + SplitAddUpdateSubaccountResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + name: + type: string + type: + type: string + currency: + type: string + integration: + type: integer + domain: + type: string + split_code: + type: string + active: + type: boolean + bearer_type: + type: string + bearer_subaccount: + type: integer + createdAt: + type: string + updatedAt: + type: string + is_dynamic: + type: boolean + subaccounts: + type: array + items: + $ref: '#/components/schemas/SplitSubaccountsArray' + total_subaccounts: + type: integer + required: + - id + - name + - type + - currency + - integration + - domain + - split_code + - active + - bearer_type + - bearer_subaccount + - createdAt + - updatedAt + - is_dynamic + - subaccounts + - total_subaccounts + required: + - status + - message + - data + SplitRemoveSubaccountResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + TerminalSendEventData: + type: object + description: The parameters needed to perform the specified action + properties: + id: + description: The invoice or transaction ID you want to push to the Terminal + type: integer + format: int64 + reference: + description: The offline_reference from the Payment Request response + type: string + example: + id: 7895939 + reference: '4634337895939' + TerminalSendEvent: + type: object + properties: + type: + description: The type of event to push + type: string + enum: + - invoice + - transaction + action: + description: | + The action the Terminal needs to perform. For the invoice type, the action can either be process or view. + For the transaction type, the action can either be process or print. + type: string + enum: + - process + - view + - print + data: + $ref: '#/components/schemas/TerminalSendEventData' + example: + type: invoice + action: process + data: + id: 7895939 + reference: '4634337895939' + TerminalGetStatusResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + online: + type: boolean + available: + type: boolean + required: + - online + - available + required: + - status + - message + - data + TerminalListsResponseArray: + type: object + properties: + id: + type: integer + serial_number: + type: string + nullable: true + device_make: + type: string + nullable: true + terminal_id: + type: string + integration: + type: integer + domain: + type: string + name: + type: string + nullable: true + address: + type: string + nullable: true + status: + type: string + required: + - id + - serial_number + - device_make + - terminal_id + - integration + - domain + - name + - address + - status + TerminalListsResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/TerminalListsResponseArray' + meta: + type: object + properties: + next: + type: string + nullable: true + previous: + type: string + nullable: true + perPage: + type: integer + required: + - next + - previous + - perPage + additionalProperties: false + required: + - status + - message + - data + - meta + TerminalGetResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + serial_number: + type: string + device_make: + type: string + nullable: true + terminal_id: + type: string + integration: + type: integer + domain: + type: string + name: + type: string + nullable: true + address: + type: string + nullable: true + status: + type: string + split_code: + type: string + nullable: true + required: + - id + - serial_number + - device_make + - terminal_id + - integration + - domain + - name + - address + - status + - split_code + required: + - status + - message + - data + TerminalUpate: + type: object + properties: + name: + description: The new name for the Terminal + type: string + address: + description: The new address for the Terminal + type: string + example: + name: Oreos + address: Somewhere on earth + TerminalUpdateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + TerminalActivationToggle: + type: object + description: Model for activating and deactivating a debug Terminal + required: + - serial_number + properties: + serial_number: + description: Device Serial Number + type: string + example: + serial_number: '1111150412230003899' + TerminalCommissionDeviceResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + TerminalDecommissionDeviceResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + VirtualTerminalListResponseArray: + type: object + properties: + id: + type: integer + code: + type: string + name: + type: string + integration: + type: integer + domain: + type: string + paymentMethods: + type: array + items: {} + active: + type: boolean + created_at: + type: string + currency: + type: string + required: + - id + - code + - name + - integration + - domain + - paymentMethods + - active + - created_at + - currency + VirtualTerminalListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/VirtualTerminalListResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + anyOf: + - type: string + - type: integer + page: + type: integer + pageCount: + type: integer + VirtualTerminalCreate: + type: object + required: + - name + - destinations + properties: + name: + type: string + description: The name of the virtual terminal + destinations: + type: array + description: Array of objects containing recipients for payment notifications for the Virtual Terminal. + items: + type: object + properties: + target: + type: string + description: The WhatsApp number to receive payment notifications + name: + type: string + description: The name of the associated WhatsApp number + split_code: + type: string + description: Split code to associate with the virtual terminal + metadata: + type: object + description: Additional custom data as key-value pairs + example: + name: Sample Terminal + destinations: + - target: '+2548012345678' + name: John Doe + - target: '+2548098765432' + name: Jane Smith + VirtualTerminalCreateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + name: + type: string + integration: + type: integer + domain: + type: string + code: + type: string + paymentMethods: + type: array + items: {} + active: + type: boolean + metadata: + nullable: true + destinations: + type: array + items: + type: object + properties: + target: + type: string + type: + type: string + name: + type: string + currency: + type: string + required: + - id + - name + - integration + - domain + - code + - paymentMethods + - active + - metadata + - destinations + - currency + required: + - status + - message + - data + VirtualTerminalFetchResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + code: + type: string + name: + type: string + integration: + type: integer + domain: + type: string + paymentMethods: + type: array + items: {} + active: + type: boolean + created_at: + type: string + connect_account_id: + nullable: true + destinations: + type: array + items: + type: object + properties: + target: + type: string + type: + type: string + name: + type: string + created_at: + type: string + currency: + type: string + required: + - id + - code + - name + - integration + - domain + - paymentMethods + - active + - created_at + - connect_account_id + - destinations + - currency + required: + - status + - message + - data + VirtualTerminalUpdate: + type: object + required: + - name + properties: + name: + description: Name of the virtual terminal + type: string + example: + name: Lagos_Mainland_Zone_1 + VirtualTerminalUpdateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + code: + type: string + name: + type: string + integration: + type: integer + domain: + type: string + paymentMethods: + type: array + items: {} + active: + type: boolean + created_at: + type: string + connect_account_id: + nullable: true + destinations: + type: array + items: + type: object + properties: + target: + type: string + type: + type: string + name: + type: string + created_at: + type: string + currency: + type: string + required: + - id + - code + - name + - integration + - domain + - paymentMethods + - active + - created_at + - connect_account_id + - destinations + - currency + required: + - status + - message + - data + VirtualTerminalDeactivateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + VirtualTerminalDestinationAssign: + type: object + required: + - destinations + properties: + destinations: + type: array + description: Array of objects containing recipients for payment notifications for the Virtual Terminal. + items: + type: object + properties: + target: + type: string + description: The WhatsApp number to receive payment notifications + name: + type: string + description: The name of the associated WhatsApp number + required: + - target + - name + example: + destinations: + - target: '+2548012345678' + name: John Doe + - target: '+2548098765432' + name: Jane Smith + VirtualTerminalDestinationAssignResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + type: object + properties: + integration: + type: integer + target: + type: string + name: + type: string + type: + type: string + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - integration + - target + - name + - type + - id + - createdAt + - updatedAt + required: + - status + - message + - data + VirtualTerminalDestinationUnassign: + type: object + properties: + targets: + type: array + description: Array of destination targets to unassign + items: + type: string + required: + - targets + example: + targets: + - '+2548012345678' + - '+2548098765432' + VirtualTerminalDestinationUnassignResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + VirtualTerminalAddSplitCode: + type: object + required: + - split_code + properties: + split_code: + description: The split code to assign to the virtual terminal + type: string + example: + split_code: SPL_1234567890abcdef + VirtualTerminalAddSplitCodeResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + name: + type: string + type: + type: string + currency: + type: string + integration: + type: integer + domain: + type: string + split_code: + type: string + active: + type: boolean + bearer_type: + type: string + bearer_subaccount: + nullable: true + createdAt: + type: string + updatedAt: + type: string + is_dynamic: + type: boolean + subaccounts: + type: array + items: + $ref: '#/components/schemas/SplitSubaccountsArray' + total_subaccounts: + type: integer + required: + - id + - name + - type + - currency + - integration + - domain + - split_code + - active + - bearer_type + - bearer_subaccount + - createdAt + - updatedAt + - is_dynamic + - subaccounts + - total_subaccounts + required: + - status + - message + - data + VirtualTerminalDeleteSplitCode: + type: object + required: + - split_code + properties: + split_code: + description: The split code to assign to the virtual terminal + type: string + example: + split_code: SPL_1234567890abcdef + VirtualTerminalDeleteSplitCodeResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + CustomerListResponseArray: + type: object + properties: + integration: + type: integer + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + phone: + type: string + nullable: true + metadata: + type: object + nullable: true + domain: + type: string + customer_code: + type: string + risk_action: + type: string + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - integration + - first_name + - last_name + - email + - phone + - metadata + - domain + - customer_code + - risk_action + - id + - createdAt + - updatedAt + CustomerListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/CustomerListResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + anyOf: + - type: string + - type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + CustomerCreate: + type: object + required: + - email + properties: + email: + description: Customer's email address + type: string + first_name: + description: Customer's first name + type: string + last_name: + description: Customer's last name + type: string + phone: + description: Customer's phone number + type: string + metadata: + description: Stringified JSON object of custom data + type: string + example: + email: rock@sandy.com + first_name: Rock + last_name: Sandy + CustomerCreateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + transactions: + type: array + items: {} + subscriptions: + type: array + items: {} + authorizations: + type: array + items: {} + email: + type: string + first_name: + type: string + last_name: + type: string + phone: + type: string + integration: + type: integer + domain: + type: string + metadata: + type: object + properties: + calling_code: + type: string + customer_code: + type: string + risk_action: + type: string + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + identified: + type: boolean + identifications: + nullable: true + required: + - transactions + - subscriptions + - authorizations + - email + - first_name + - last_name + - phone + - integration + - domain + - metadata + - customer_code + - risk_action + - id + - createdAt + - updatedAt + - identified + - identifications + required: + - status + - message + - data + CustomerFetchResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + transactions: + type: array + items: {} + subscriptions: + type: array + items: {} + authorizations: + type: array + items: {} + first_name: + type: string + last_name: + type: string + email: + type: string + phone: + type: string + metadata: + type: object + properties: + calling_code: + type: string + domain: + type: string + customer_code: + type: string + risk_action: + type: string + id: + type: integer + integration: + type: integer + createdAt: + type: string + updatedAt: + type: string + created_at: + type: string + updated_at: + type: string + total_transactions: + type: integer + total_transaction_value: + type: array + items: {} + dedicated_account: + nullable: true + dedicated_accounts: + type: array + items: {} + nullable: true + identified: + type: boolean + identifications: + nullable: true + required: + - transactions + - subscriptions + - authorizations + - first_name + - last_name + - email + - phone + - metadata + - domain + - customer_code + - risk_action + - id + - integration + - createdAt + - updatedAt + - created_at + - updated_at + - total_transactions + - total_transaction_value + - dedicated_account + - dedicated_accounts + - identified + - identifications + required: + - status + - message + - data + CustomerUpdate: + type: object + properties: + first_name: + description: Customer's first name + type: string + last_name: + description: Customer's last name + type: string + phone: + description: Customer's phone number + type: string + metadata: + description: Stringified JSON object of custom data + type: string + example: + first_name: Cecilia + last_name: Jones + CustomerUpdateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + first_name: + type: string + last_name: + type: string + email: + type: string + phone: + type: string + metadata: + type: object + domain: + type: string + customer_code: + type: string + risk_action: + type: string + id: + type: integer + integration: + type: integer + createdAt: + type: string + updatedAt: + type: string + identified: + type: boolean + identifications: + nullable: true + required: + - first_name + - last_name + - email + - phone + - metadata + - domain + - customer_code + - risk_action + - id + - integration + - createdAt + - updatedAt + - identified + - identifications + required: + - status + - message + - data + CustomerRiskAction: + type: object + required: + - customer + properties: + customer: + description: The customer code from the response of the customer creation + type: string + risk_action: + description: This determines the fraud rules that should be applied to the customer + type: string + default: default + enum: + - allow + - deny + - default + example: + customer: CUS_c6wqvwmvwopw4ms + risk_action: deny + CustomerWhitelistBlacklistResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + transactions: + type: array + items: {} + subscriptions: + type: array + items: {} + authorizations: + type: array + items: {} + first_name: + type: string + last_name: + type: string + email: + type: string + phone: + type: string + metadata: + type: object + domain: + type: string + customer_code: + type: string + risk_action: + type: string + id: + type: integer + integration: + type: integer + createdAt: + type: string + updatedAt: + type: string + identified: + type: boolean + identifications: + nullable: true + required: + - transactions + - subscriptions + - authorizations + - first_name + - last_name + - email + - phone + - metadata + - domain + - customer_code + - risk_action + - id + - integration + - createdAt + - updatedAt + - identified + - identifications + required: + - status + - message + - data + CustomerValidate: + type: object + required: + - first_name + - last_name + - type + - country + - bvn + - bank_code + - account_number + properties: + first_name: + description: Customer's first name + type: string + middle_name: + description: Customer's middle name + type: string + last_name: + description: Customer's last name + type: string + type: + description: Predefined types of identification. + type: string + default: bank_account + value: + description: Customer's identification number. + type: string + country: + description: Two-letter country code of identification issuer + type: string + bvn: + description: Customer's Bank Verification Number + type: string + bank_code: + description: You can get the list of bank codes by calling the List Banks endpoint (https://api.paystack.co/bank). + type: string + account_number: + description: Customer's bank account number. + type: string + example: + first_name: Jabal + last_name: Cedar + country: NG + type: bank_account + account_number: '0123456789' + bank_code: '007' + bvn: '20012345677' + CustomerValidateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + CustomerAuthorizationInitializeAccount: + type: object + properties: + number: + type: string + description: The customer's account number + example: '0123456789' + bank_code: + type: string + description: The code representing the customer's bank + example: '058' + required: + - number + - bank_code + CustomerAuthorizationInitializeAddress: + type: object + properties: + street: + type: string + description: The customer's street + example: 123 Main Street + city: + type: string + description: The customer's city + example: Lagos + state: + type: string + description: The customer's state + example: Lagos + required: + - street + - city + - state + CustomerAuthorizationInitializeRequest: + type: object + required: + - email + - channel + properties: + email: + type: string + description: Customer's email address + example: ravi@demo.com + channel: + type: string + description: direct_debit is the only supported option for now + enum: + - direct_debit + example: direct_debit + callback_url: + type: string + description: Fully qualified url (e.g. https://example.com/) to redirect your customer to + example: http://test.url.com + account: + $ref: '#/components/schemas/CustomerAuthorizationInitializeAccount' + address: + $ref: '#/components/schemas/CustomerAuthorizationInitializeAddress' + CustomerAuthorizationInitializeResponseData: + type: object + properties: + redirect_url: + type: string + example: https://checkout.paystack.com/82t4mp5b5mfn51h + access_code: + type: string + example: 82t4mp5b5mfn51h + reference: + type: string + example: dfbzfotsrbv4n5s82t4mp5b5mfn51h + required: + - redirect_url + - access_code + - reference + CustomerAuthorizationInitializeResponse: + type: object + properties: + status: + type: boolean + example: true + message: + type: string + example: Authorization initialized + data: + $ref: '#/components/schemas/CustomerAuthorizationInitializeResponseData' + required: + - status + - message + - data + CustomerAuthorizationVerifyResponseCustomer: + type: object + properties: + code: + type: string + example: CUS_24lze1c8i2zl76y + email: + type: string + example: ravi@demo.com + required: + - code + - email + CustomerAuthorizationVerifyResponseData: + type: object + properties: + authorization_code: + type: string + example: AUTH_JV4T9Wawdj + channel: + type: string + example: direct_debit + bank: + type: string + example: Guaranty Trust Bank + active: + type: boolean + example: true + customer: + $ref: '#/components/schemas/CustomerAuthorizationVerifyResponseCustomer' + required: + - authorization_code + - channel + - bank + - active + - customer + CustomerAuthorizationVerifyResponse: + type: object + properties: + status: + type: boolean + example: true + message: + type: string + example: Authorization retrieved successfully + data: + $ref: '#/components/schemas/CustomerAuthorizationVerifyResponseData' + required: + - status + - message + - data + CustomerDeactivateAuthorization: + type: object + required: + - authorization_code + properties: + authorization_code: + description: Authorization code to be deactivated + type: string + example: + authorization_code: AUTH_xxxIjkZVj5 + CustomerDeactivateAuthorizationResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + CustomerInitializeDirectDebitAccount: + type: object + properties: + number: + type: string + description: The customer's account number + example: '0123456789' + bank_code: + type: string + description: The code representing the customer's bank + example: '058' + required: + - number + - bank_code + CustomerInitializeDirectDebitAddress: + type: object + properties: + street: + type: string + description: The customer's street + example: Some Where + city: + type: string + description: The customer's city + example: Ikeja + state: + type: string + description: The customer's state + example: Lagos + required: + - street + - city + - state + CustomerInitializeDirectDebitRequest: + type: object + required: + - account + - address + properties: + account: + $ref: '#/components/schemas/CustomerInitializeDirectDebitAccount' + address: + $ref: '#/components/schemas/CustomerInitializeDirectDebitAddress' + CustomerInitializeDirectDebitResponseData: + type: object + properties: + redirect_url: + type: string + example: https://link.paystack.com/ll6b0szngj1f27k + access_code: + type: string + example: ll6b0szngj1f27k + reference: + type: string + example: 1er945lpy4txyki + required: + - redirect_url + - access_code + - reference + CustomerInitializeDirectDebitResponse: + type: object + properties: + status: + type: boolean + example: true + message: + type: string + example: Authorization initialized + data: + $ref: '#/components/schemas/CustomerInitializeDirectDebitResponseData' + required: + - status + - message + - data + CustomerDirectDebitActivationChargeRequest: + type: object + required: + - authorization_id + properties: + authorization_id: + type: integer + description: The authorization ID gotten from the initiation response + example: 1069309917 + CustomerDirectDebitActivationChargeResponse: + type: object + properties: + status: + type: boolean + example: true + message: + type: string + example: Mandate is queued for retry + required: + - status + - message + CustomerFetchMandateAuthorizationsResponseData: + type: object + properties: + id: + type: integer + example: 164098 + status: + type: string + example: active + mandate_id: + type: integer + example: 512003 + authorization_id: + type: integer + example: 110049014 + authorization_code: + type: string + example: AUTH_8Lol0pNt14 + integration_id: + type: integer + example: 463433 + account_number: + type: string + example: '0123456789' + bank_code: + type: string + example: '032' + bank_name: + type: string + nullable: true + example: null + customer: + type: object + properties: + id: + type: integer + example: 43975700 + customer_code: + type: string + example: CUS_2eusy8uwe34s23fy + email: + type: string + example: customer@email.com + first_name: + type: string + example: Smith + last_name: + type: string + example: Bel + authorized_at: + type: string + format: date-time + example: '2024-09-27T10:57:53.824Z' + required: + - id + - status + - mandate_id + - authorization_id + - authorization_code + - integration_id + - account_number + - bank_code + - customer + - authorized_at + CustomerFetchMandateAuthorizationsResponseMeta: + type: object + properties: + per_page: + type: integer + example: 50 + next: + type: string + nullable: true + example: null + count: + type: integer + example: 1 + total: + type: integer + example: 1 + required: + - per_page + - count + - total + CustomerFetchMandateAuthorizationsResponse: + type: object + properties: + status: + type: boolean + example: true + message: + type: string + example: Mandate authorizations retrieved successfully + data: + type: array + items: + $ref: '#/components/schemas/CustomerFetchMandateAuthorizationsResponseData' + meta: + $ref: '#/components/schemas/CustomerFetchMandateAuthorizationsResponseMeta' + required: + - status + - message + - data + - meta + DirectDebitActivationChargeRequest: + type: object + required: + - customer_ids + properties: + customer_ids: + type: array + description: Array of customer IDs to trigger activation charge for + items: + type: integer + example: + - 28958104 + - 983697220 + DirectDebitActivationChargeResponse: + type: object + properties: + status: + type: boolean + example: true + message: + type: string + example: Mandate is queued for retry + required: + - status + - message + DedicatedNubanListResponseArray: + type: object + properties: + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + risk_action: + type: string + international_format_phone: + type: string + nullable: true + bank: + type: object + properties: + name: + type: string + id: + type: integer + slug: + type: string + required: + - name + - id + - slug + id: + type: integer + account_name: + type: string + account_number: + type: string + created_at: + type: string + updated_at: + type: string + currency: + type: string + split_config: + type: object + properties: + subaccount: + type: string + required: + - subaccount + nullable: true + active: + type: boolean + assigned: + type: boolean + required: + - customer + - bank + - id + - account_name + - account_number + - created_at + - updated_at + - currency + - split_config + - active + - assigned + DedicatedNubanListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/DedicatedNubanListResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + DedicatedVirtualAccountCreate: + type: object + required: + - customer + properties: + customer: + description: The code for the previously created customer + type: string + preferred_bank: + description: The bank slug for preferred bank. To get a list of available banks, use the List Providers endpoint + type: string + subaccount: + description: Subaccount code of the account you want to split the transaction with + type: string + split_code: + description: Split code consisting of the lists of accounts you want to split the transaction with + type: string + example: + customer: CUS_bo732eugpb2qrg6 + preferred_bank: titan-paystack + DedicatedNubanCreateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + bank: + type: object + properties: + name: + type: string + id: + type: integer + slug: + type: string + required: + - name + - id + - slug + account_name: + type: string + account_number: + type: string + assigned: + type: boolean + currency: + type: string + metadata: + nullable: true + active: + type: boolean + id: + type: integer + created_at: + type: string + updated_at: + type: string + assignment: + type: object + properties: + integration: + type: integer + assignee_id: + type: integer + assignee_type: + type: string + expired: + type: boolean + account_type: + type: string + assigned_at: + type: string + expired_at: + nullable: true + required: + - integration + - assignee_id + - assignee_type + - expired + - account_type + - assigned_at + - expired_at + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + nullable: true + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + required: + - bank + - account_name + - account_number + - assigned + - currency + - metadata + - active + - id + - created_at + - updated_at + - assignment + - customer + required: + - status + - message + - data + DedicatedVirtualAccountAssign: + type: object + required: + - email + - first_name + - last_name + - phone + - preferred_bank + - country + properties: + email: + description: Customer's email address + type: string + first_name: + description: Customer's first name + type: string + last_name: + description: Customer's last name + type: string + phone: + description: Customer's phone name + type: string + preferred_bank: + description: | + The bank slug for preferred bank. To get a list of available banks, + use the List Banks endpoint, passing `pay_with_bank_transfer=true` query parameter + type: string + country: + description: The two letter code country + type: string + enum: + - NG + - GH + account_number: + description: Customer's account number + type: string + bvn: + description: Customer's Bank Verification Number + type: string + bank_code: + description: Customer's bank code + type: string + subaccount: + description: Subaccount code of the account you want to split the transaction with + type: string + split_code: + description: Split code consisting of the lists of accounts you want to split the transaction with + type: string + example: + email: salmon.orange@email.com + first_name: Salmon + last_name: Orange + phone: '+2348100000000' + preferred_bank: titan-paystack + country: NG + DedicatedNubanFetchResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + nullable: true + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + bank: + type: object + properties: + name: + type: string + id: + type: integer + slug: + type: string + required: + - name + - id + - slug + id: + type: integer + account_name: + type: string + account_number: + type: string + created_at: + type: string + updated_at: + type: string + currency: + type: string + split_config: + nullable: true + active: + type: boolean + assigned: + type: boolean + required: + - customer + - bank + - id + - account_name + - account_number + - created_at + - updated_at + - currency + - split_config + - active + - assigned + required: + - status + - message + - data + DedicatedNubanDeactivateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + bank: + type: object + properties: + name: + type: string + id: + type: integer + slug: + type: string + required: + - name + - id + - slug + account_name: + type: string + account_number: + type: string + assigned: + type: boolean + currency: + type: string + metadata: + nullable: true + active: + type: boolean + id: + type: integer + created_at: + type: string + updated_at: + type: string + assignment: + type: object + properties: + assignee_id: + type: integer + assignee_type: + type: string + assigned_at: + type: string + integration: + type: integer + account_type: + type: string + required: + - assignee_id + - assignee_type + - assigned_at + - integration + - account_type + required: + - bank + - account_name + - account_number + - assigned + - currency + - metadata + - active + - id + - created_at + - updated_at + - assignment + required: + - status + - message + - data + DedicatedVirtualAccountSplit: + type: object + required: + - account_number + properties: + account_number: + description: Valid Dedicated virtual account + type: string + subaccount: + description: Subaccount code of the account you want to split the transaction with + type: string + split_code: + description: Split code consisting of the lists of accounts you want to split the transaction with + type: string + example: + account_number: '0033322211' + split_code: SPL_e7jnRLtzla + DedicatedVirtualAccountRemoveSplit: + type: object + required: + - account_number + properties: + account_number: + description: Valid Dedicated virtual account + type: string + example: + account_number: '0033322211' + ApplePayParam: + type: object + required: + - domainName + properties: + domainName: + description: The domain or subdomain for your application + type: string + example: + domainName: example.com + ApplePayCreateOkModel: + type: object + properties: + status: + description: An indicator + type: boolean + message: + description: A short description of the response + type: string + example: + status: true + message: Domain successfully registered on Apple Pay + PlanListResponseArray: + type: object + properties: + subscriptions: + type: array + items: {} + pages: + type: array + items: {} + domain: + type: string + name: + type: string + plan_code: + type: string + description: + nullable: true + amount: + type: integer + interval: + type: string + invoice_limit: + type: integer + send_invoices: + type: boolean + send_sms: + type: boolean + hosted_page: + type: boolean + hosted_page_url: + nullable: true + hosted_page_summary: + nullable: true + currency: + type: string + migrate: + type: boolean + is_deleted: + type: boolean + is_archived: + type: boolean + id: + type: integer + integration: + type: integer + createdAt: + type: string + updatedAt: + type: string + total_subscriptions: + type: integer + active_subscriptions: + type: integer + total_subscriptions_revenue: + type: integer + required: + - subscriptions + - pages + - domain + - name + - plan_code + - description + - amount + - interval + - invoice_limit + - send_invoices + - send_sms + - hosted_page + - hosted_page_url + - hosted_page_summary + - currency + - migrate + - is_deleted + - is_archived + - id + - integration + - createdAt + - updatedAt + - total_subscriptions + - active_subscriptions + - total_subscriptions_revenue + PlanListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/PlanListResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + PlanCreate: + type: object + required: + - name + - amount + - interval + properties: + name: + description: Name of plan + type: string + amount: + description: Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR + type: integer + interval: + description: Payment interval + type: string + enum: + - daily + - weekly + - monthly + - biannually + - annually + description: + description: A description for this plan + type: string + send_invoices: + description: Set to false if you don't want invoices to be sent to your customers + type: boolean + send_sms: + description: Set to false if you don't want text messages to be sent to your customers + type: boolean + currency: + description: Currency in which amount is set. Allowed values are NGN, GHS, ZAR or USD + type: string + invoice_limit: + description: |- + Number of invoices to raise during subscription to this plan. + Can be overridden by specifying an invoice_limit while subscribing. + type: integer + example: + name: Basic + amount: 150000 + interval: monthly + PlanCreateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + currency: + type: string + name: + type: string + amount: + type: integer + interval: + type: string + integration: + type: integer + domain: + type: string + plan_code: + type: string + invoice_limit: + type: integer + send_invoices: + type: boolean + send_sms: + type: boolean + hosted_page: + type: boolean + migrate: + type: boolean + is_archived: + type: boolean + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - currency + - name + - amount + - interval + - integration + - domain + - plan_code + - invoice_limit + - send_invoices + - send_sms + - hosted_page + - migrate + - is_archived + - id + - createdAt + - updatedAt + required: + - status + - message + - data + PlanFetchResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + subscriptions: + type: array + items: {} + pages: + type: array + items: {} + domain: + type: string + name: + type: string + plan_code: + type: string + description: + nullable: true + amount: + type: integer + interval: + type: string + invoice_limit: + type: integer + send_invoices: + type: boolean + send_sms: + type: boolean + hosted_page: + type: boolean + hosted_page_url: + nullable: true + hosted_page_summary: + nullable: true + currency: + type: string + migrate: + type: boolean + is_deleted: + type: boolean + is_archived: + type: boolean + id: + type: integer + integration: + type: integer + createdAt: + type: string + updatedAt: + type: string + pages_count: + type: integer + subscribers_count: + type: integer + subscriptions_count: + type: integer + active_subscriptions_count: + type: integer + nullable: true + total_revenue: + type: integer + subscribers: + type: array + items: {} + required: + - subscriptions + - pages + - domain + - name + - plan_code + - description + - amount + - interval + - invoice_limit + - send_invoices + - send_sms + - hosted_page + - hosted_page_url + - hosted_page_summary + - currency + - migrate + - is_deleted + - is_archived + - id + - integration + - createdAt + - updatedAt + - pages_count + - subscribers_count + - subscriptions_count + - active_subscriptions_count + - total_revenue + - subscribers + required: + - status + - message + - data + PlanUpdate: + type: object + properties: + name: + description: Name of plan + type: string + amount: + description: Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR + type: integer + interval: + description: Payment interval + type: string + enum: + - daily + - weekly + - monthly + - biannually + - annually + description: + description: A description for this plan + type: boolean + send_invoices: + description: Set to false if you don't want invoices to be sent to your customers + type: boolean + send_sms: + description: Set to false if you don't want text messages to be sent to your customers + type: boolean + currency: + description: Currency in which amount is set. Allowed values are NGN, GHS, ZAR or USD + type: string + invoice_limit: + description: |- + Number of invoices to raise during subscription to this plan. + Can be overridden by specifying an invoice_limit while subscribing. + type: integer + example: + name: Starter + PlanUpdateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + SubscriptionListResponseArray: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + start: + type: integer + quantity: + type: integer + subscription_code: + type: string + email_token: + type: string + amount: + type: integer + cron_expression: + type: string + nullable: true + next_payment_date: + type: string + nullable: true + open_invoice: + nullable: true + createdAt: + type: string + integration: + type: integer + plan: + type: object + properties: + id: + type: integer + domain: + type: string + name: + type: string + plan_code: + type: string + description: + nullable: true + amount: + type: integer + interval: + type: string + send_invoices: + type: boolean + send_sms: + type: boolean + currency: + type: string + integration: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - id + - domain + - name + - plan_code + - description + - amount + - interval + - send_invoices + - send_sms + - currency + - integration + - createdAt + - updatedAt + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + nullable: true + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + nullable: true + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: integer + signature: + type: string + nullable: true + account_name: + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + metadata: + type: string + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + invoice_limit: + type: integer + split_code: + nullable: true + payments_count: + type: integer + most_recent_invoice: + nullable: true + metadata: + type: object + nullable: true + required: + - id + - domain + - status + - start + - quantity + - subscription_code + - email_token + - amount + - cron_expression + - next_payment_date + - open_invoice + - createdAt + - integration + - plan + - authorization + - customer + - invoice_limit + - split_code + - payments_count + - most_recent_invoice + - metadata + SubscriptionListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/SubscriptionListResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + SubscriptionCreate: + type: object + required: + - customer + - plan + properties: + customer: + description: Customer's email address or customer code + type: string + plan: + description: Plan code + type: string + authorization: + description: |- + If customer has multiple authorizations, you can set the desired authorization you wish to use for this subscription here. + If this is not supplied, the customer's most recent authorization would be used + type: string + start_date: + description: Set the date for the first debit. (ISO 8601 format) e.g. 2017-05-16T00:30:13+01:00 + type: string + format: date-time + SubscriptionCreateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + customer: + type: integer + plan: + type: integer + integration: + type: integer + domain: + type: string + start: + type: integer + status: + type: string + quantity: + type: integer + amount: + type: integer + authorization: + type: integer + invoice_limit: + type: integer + split_code: + nullable: true + subscription_code: + type: string + email_token: + type: string + id: + type: integer + cancelledAt: + nullable: true + createdAt: + type: string + updatedAt: + type: string + cron_expression: + type: string + next_payment_date: + type: string + easy_cron_id: + type: string + nullable: true + open_invoice: + type: string + nullable: true + metadata: + type: object + nullable: true + required: + - customer + - plan + - integration + - domain + - start + - status + - quantity + - amount + - authorization + - invoice_limit + - split_code + - subscription_code + - email_token + - id + - cancelledAt + - createdAt + - updatedAt + - cron_expression + - next_payment_date + - easy_cron_id + - open_invoice + - metadata + required: + - status + - message + - data + SubscriptionFetchResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + subscription_code: + type: string + email_token: + type: string + amount: + type: integer + cron_expression: + type: string + next_payment_date: + type: string + open_invoice: + nullable: true + createdAt: + type: string + cancelledAt: + nullable: true + integration: + type: integer + plan: + type: object + properties: + id: + type: integer + name: + type: string + plan_code: + type: string + description: + nullable: true + amount: + type: integer + interval: + type: string + send_invoices: + type: boolean + send_sms: + type: boolean + currency: + type: string + required: + - id + - name + - plan_code + - description + - amount + - interval + - send_invoices + - send_sms + - currency + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + invoices: + type: array + items: {} + invoices_history: + type: array + items: {} + invoice_limit: + type: integer + split_code: + nullable: true + most_recent_invoice: + nullable: true + payments_count: + type: integer + metadata: + type: object + nullable: true + required: + - id + - domain + - status + - subscription_code + - email_token + - amount + - cron_expression + - next_payment_date + - open_invoice + - createdAt + - cancelledAt + - integration + - plan + - authorization + - customer + - invoices + - invoices_history + - invoice_limit + - split_code + - most_recent_invoice + - payments_count + - metadata + required: + - status + - message + - data + SubscriptionToggle: + type: object + required: + - code + - token + properties: + code: + description: Subscription code + type: string + token: + description: Email token + type: string + SubscriptionDisableResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + TransferRecipientListResponseArray: + type: object + properties: + active: + type: boolean + createdAt: + type: string + currency: + type: string + description: + type: string + domain: + type: string + email: + type: string + nullable: true + id: + type: integer + integration: + type: integer + metadata: + type: object + nullable: true + name: + type: string + recipient_code: + type: string + type: + type: string + updatedAt: + type: string + is_deleted: + type: boolean + isDeleted: + type: boolean + details: + type: object + properties: + authorization_code: + type: string + nullable: true + account_number: + type: string + nullable: true + account_name: + type: string + nullable: true + bank_code: + type: string + bank_name: + type: string + required: + - authorization_code + - account_number + - account_name + - bank_code + - bank_name + required: + - active + - createdAt + - currency + - description + - domain + - email + - id + - integration + - name + - recipient_code + - type + - updatedAt + - is_deleted + - isDeleted + - details + TransferRecipientListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/TransferRecipientListResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + TransferRecipientCreate: + type: object + required: + - type + - name + - account_number + - bank_code + properties: + type: + description: Recipient Type + default: nuban + type: string + name: + description: Recipient's name + type: string + account_number: + description: Recipient's bank account number + type: string + bank_code: + description: Recipient's bank code. You can get the list of Bank Codes by calling the List Banks endpoint + type: string + description: + description: A description for this recipient + type: string + currency: + description: Currency for the account receiving the transfer + type: string + authorization_code: + description: An authorization code from a previous transaction + type: string + metadata: + description: JSON object of custom data + type: object + TransferRecipientCreateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + active: + type: boolean + createdAt: + type: string + currency: + type: string + description: + type: string + domain: + type: string + email: + type: string + id: + type: integer + integration: + type: integer + metadata: + type: object + nullable: true + name: + type: string + recipient_code: + type: string + type: + type: string + updatedAt: + type: string + is_deleted: + type: boolean + isDeleted: + type: boolean + details: + type: object + properties: + authorization_code: + type: string + nullable: true + account_number: + type: string + nullable: true + account_name: + type: string + nullable: true + bank_code: + type: string + bank_name: + type: string + required: + - authorization_code + - account_number + - account_name + - bank_code + - bank_name + required: + - active + - createdAt + - currency + - description + - domain + - email + - id + - integration + - name + - recipient_code + - type + - updatedAt + - is_deleted + - isDeleted + - details + required: + - status + - message + - data + TransferRecipientBulk: + type: object + required: + - batch + properties: + batch: + description: A list of transfer recipient object. + type: array + items: + $ref: '#/components/schemas/TransferRecipientCreate' + ErrorRecordsArray: + type: object + properties: + type: + type: string + name: + type: string + description: + type: string + account_number: + type: string + bank_code: + type: string + currency: + type: string + email: + type: string + required: + - type + - name + - description + - account_number + - bank_code + - currency + - email + TransferRecipientErrorsArray: + type: object + properties: + message: + type: string + records: + type: array + items: + $ref: '#/components/schemas/ErrorRecordsArray' + required: + - message + - records + TransferRecipientBulkCreateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + success: + type: array + items: {} + errors: + type: array + items: + $ref: '#/components/schemas/TransferRecipientErrorsArray' + required: + - success + - errors + required: + - status + - message + - data + TransferRecipientFetchResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + integration: + type: integer + domain: + type: string + type: + type: string + currency: + type: string + name: + type: string + details: + type: object + properties: + account_number: + type: string + nullable: true + account_name: + type: string + nullable: true + bank_code: + type: string + bank_name: + type: string + required: + - account_number + - account_name + - bank_code + - bank_name + description: + type: string + metadata: + type: object + nullable: true + recipient_code: + type: string + active: + type: boolean + recipient_account: + type: string + institution_code: + type: string + email: + type: string + id: + type: integer + isDeleted: + type: boolean + createdAt: + type: string + updatedAt: + type: string + required: + - integration + - domain + - type + - currency + - name + - details + - description + - recipient_code + - active + - recipient_account + - institution_code + - email + - id + - isDeleted + - createdAt + - updatedAt + required: + - status + - message + - data + TransferRecipientUpdate: + type: object + properties: + name: + description: Recipient's name + type: string + email: + description: Recipient's email address + type: string + TransferRecipientUpdateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + TransferRecipientDeleteResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + TransferListResponseArray: + type: object + properties: + amount: + type: integer + createdAt: + type: string + currency: + type: string + domain: + type: string + failures: + nullable: true + id: + type: integer + integration: + type: integer + reason: + type: string + reference: + type: string + source: + type: string + source_details: + nullable: true + status: + type: string + titan_code: + nullable: true + transfer_code: + type: string + request: + type: integer + transferred_at: + nullable: true + updatedAt: + type: string + recipient: + type: object + properties: + active: + type: boolean + createdAt: + type: string + currency: + type: string + description: + type: string + domain: + type: string + email: + type: string + id: + type: integer + integration: + type: integer + metadata: + type: object + nullable: true + name: + type: string + recipient_code: + type: string + type: + type: string + updatedAt: + type: string + is_deleted: + type: boolean + isDeleted: + type: boolean + details: + type: object + properties: + authorization_code: + nullable: true + account_number: + type: string + account_name: + type: string + nullable: true + bank_code: + type: string + bank_name: + type: string + required: + - authorization_code + - account_number + - account_name + - bank_code + - bank_name + required: + - active + - createdAt + - currency + - description + - domain + - email + - id + - integration + - name + - recipient_code + - type + - updatedAt + - is_deleted + - isDeleted + - details + session: + type: object + properties: + provider: + nullable: true + id: + nullable: true + required: + - provider + - id + fee_charged: + type: integer + fees_breakdown: + type: integer + nullable: true + required: + - amount + - createdAt + - currency + - domain + - failures + - id + - integration + - reason + - reference + - source + - source_details + - status + - titan_code + - request + - transfer_code + - transferred_at + - updatedAt + - recipient + - session + - fee_charged + - fees_breakdown + TransferListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/TransferListResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + TransferBase: + type: object + required: + - amount + - recipient + - reference + properties: + amount: + description: Amount to transfer in kobo if currency is NGN and pesewas if currency is GHS. + type: integer + recipient: + description: The transfer recipient's code + type: string + reference: + description: | + To ensure idempotency, you need to provide e a unique identifier for the request. The identifier should be a lowercase alphanumeric string with only -,_ symbols allowed. + type: string + minimum: 16 + reason: + description: The reason or narration for the transfer. + type: string + TransferInitiate: + description: Transfer initiation model + allOf: + - $ref: '#/components/schemas/TransferBase' + - type: object + required: + - source + - amount + - recipient + - reference + properties: + source: + description: The origin of the funds to send from + type: string + default: balance + currency: + description: Specify the currency of the transfer. + type: string + default: NGN + enum: + - NGN + - ZAR + - KES + - GHS + TransferCreateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + transfersessionid: + type: array + items: {} + transfertrials: + type: array + items: {} + domain: + type: string + amount: + type: integer + currency: + type: string + reference: + type: string + source: + type: string + source_details: + nullable: true + reason: + type: string + status: + type: string + failures: + nullable: true + transfer_code: + type: string + titan_code: + nullable: true + transferred_at: + nullable: true + id: + type: integer + integration: + type: integer + request: + type: integer + recipient: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - transfersessionid + - transfertrials + - domain + - amount + - currency + - reference + - source + - source_details + - reason + - status + - failures + - transfer_code + - titan_code + - transferred_at + - id + - integration + - request + - recipient + - createdAt + - updatedAt + required: + - status + - message + - data + TransferFinalize: + type: object + required: + - transfer_code + - otp + properties: + transfer_code: + description: The transfer code you want to finalize + type: string + otp: + description: OTP sent to business phone to verify transfer + type: string + TransferBulk: + type: object + required: + - source + - transfers + properties: + source: + description: Where should we transfer from? Only balance is allowed for now + type: string + currency: + description: Specify the currency of the transfer. + type: string + default: NGN + enum: + - NGN + - ZAR + - KES + - GHS + transfers: + description: A list of transfer object + type: array + items: + $ref: '#/components/schemas/TransferBase' + TransferBulkResponseArray: + type: object + properties: + reference: + type: string + recipient: + type: string + amount: + type: integer + transfer_code: + type: string + currency: + type: string + status: + type: string + required: + - reference + - recipient + - amount + - transfer_code + - currency + - status + TransferBulkResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/TransferBulkResponseArray' + required: + - status + - message + - data + TransferFeesBreakdownArray: + type: object + properties: + amount: + type: string + formula: + nullable: true + type: + type: string + required: + - amount + - formula + - type + TransferFetchResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + amount: + type: integer + createdAt: + type: string + currency: + type: string + domain: + type: string + failures: + nullable: true + id: + type: integer + integration: + type: integer + reason: + type: string + reference: + type: string + source: + type: string + source_details: + nullable: true + status: + type: string + titan_code: + nullable: true + transfer_code: + type: string + request: + type: integer + transferred_at: + nullable: true + updatedAt: + type: string + recipient: + type: object + properties: + active: + type: boolean + createdAt: + type: string + currency: + type: string + description: + type: string + domain: + type: string + email: + type: string + id: + type: integer + integration: + type: integer + metadata: + type: object + nullable: true + name: + type: string + recipient_code: + type: string + type: + type: string + updatedAt: + type: string + is_deleted: + type: boolean + isDeleted: + type: boolean + details: + type: object + properties: + authorization_code: + nullable: true + account_number: + type: string + account_name: + type: string + nullable: true + bank_code: + type: string + bank_name: + type: string + required: + - authorization_code + - account_number + - account_name + - bank_code + - bank_name + required: + - active + - createdAt + - currency + - description + - domain + - email + - id + - integration + - name + - recipient_code + - type + - updatedAt + - is_deleted + - isDeleted + - details + session: + type: object + properties: + provider: + nullable: true + id: + nullable: true + required: + - provider + - id + fee_charged: + type: integer + fees_breakdown: + type: array + items: + $ref: '#/components/schemas/TransferFeesBreakdownArray' + nullable: true + gateway_response: + type: string + nullable: true + required: + - amount + - createdAt + - currency + - domain + - failures + - id + - integration + - reason + - reference + - source + - source_details + - status + - titan_code + - transfer_code + - request + - transferred_at + - updatedAt + - recipient + - session + - fee_charged + - fees_breakdown + - gateway_response + required: + - status + - message + - data + TransferVerifyResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + amount: + type: integer + createdAt: + type: string + currency: + type: string + domain: + type: string + failures: + nullable: true + id: + type: integer + integration: + type: integer + reason: + type: string + reference: + type: string + source: + type: string + source_details: + nullable: true + status: + type: string + titan_code: + nullable: true + transfer_code: + type: string + transferred_at: + nullable: true + updatedAt: + type: string + recipient: + type: object + properties: + active: + type: boolean + createdAt: + type: string + currency: + type: string + description: + type: string + domain: + type: string + email: + type: string + id: + type: integer + integration: + type: integer + metadata: + type: object + nullable: true + name: + type: string + recipient_code: + type: string + type: + type: string + updatedAt: + type: string + is_deleted: + type: boolean + details: + type: object + properties: + authorization_code: + nullable: true + account_number: + type: string + account_name: + type: string + bank_code: + type: string + bank_name: + type: string + required: + - authorization_code + - account_number + - account_name + - bank_code + - bank_name + required: + - active + - createdAt + - currency + - description + - domain + - email + - id + - integration + - name + - recipient_code + - type + - updatedAt + - is_deleted + - details + session: + type: object + properties: + provider: + nullable: true + id: + nullable: true + required: + - provider + - id + gateway_response: + type: string + nullable: true + required: + - amount + - createdAt + - currency + - domain + - failures + - id + - integration + - reason + - reference + - source + - source_details + - status + - titan_code + - transfer_code + - transferred_at + - updatedAt + - recipient + - session + - gateway_response + required: + - status + - message + - data + TransferResendOTP: + type: object + required: + - transfer_code + - reason + properties: + transfer_code: + description: The transfer code that requires an OTP validation + type: string + reason: + description: Specify the flag to indicate the purpose of the OTP + type: string + default: transfer + enum: + - disable_otp + - transfer + TransferResendsOtpResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + TransferDisablesOtpResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + TransferFinalizeDisableOTP: + type: object + required: + - otp + properties: + otp: + description: OTP sent to business phone to verify disabling OTP requirement + type: string + TransferFinalizeDisablesOtpResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + TransferEnablesOtpResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + ProductListsResponseArray: + type: object + properties: + id: + type: integer + name: + type: string + description: + type: string + product_code: + type: string + slug: + type: string + currency: + type: string + price: + type: integer + quantity: + type: integer + quantity_sold: + type: integer + active: + type: boolean + domain: + type: string + type: + type: string + in_stock: + type: boolean + unlimited: + type: boolean + metadata: + type: object + properties: + background_color: + type: string + required: + - background_color + files: + type: array + items: {} + success_message: + nullable: true + redirect_url: + nullable: true + split_code: + nullable: true + notification_emails: + nullable: true + minimum_orderable: + type: integer + maximum_orderable: + nullable: true + createdAt: + type: string + updatedAt: + type: string + digital_assets: + type: array + items: {} + variant_options: + type: array + items: {} + is_shippable: + type: boolean + shipping_fields: + type: object + properties: + delivery_note: + type: string + shipping_address: + type: string + shipping_fees: + type: array + items: {} + required: + - delivery_note + - shipping_address + - shipping_fees + integration: + type: integer + low_stock_alert: + type: integer + required: + - id + - name + - description + - product_code + - slug + - currency + - price + - quantity + - quantity_sold + - active + - domain + - type + - in_stock + - unlimited + - metadata + - files + - success_message + - redirect_url + - split_code + - notification_emails + - minimum_orderable + - maximum_orderable + - createdAt + - updatedAt + - digital_assets + - variant_options + - is_shippable + - shipping_fields + - integration + - low_stock_alert + ProductListsResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/ProductListsResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: string + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + ProductCreate: + type: object + required: + - name + - description + - price + - currency + properties: + name: + description: Name of product + type: string + description: + description: The description of the product + type: string + price: + description: | + Price should be in kobo if currency is NGN, pesewas, if currency is GHS, + and cents, if currency is ZAR + type: integer + currency: + description: | + Currency in which price is set. Allowed values are: NGN, GHS, ZAR or USD + type: string + unlimited: + description: | + Set to true if the product has unlimited stock. Leave as false if the + product has limited stock + type: boolean + quantity: + description: Number of products in stock. Use if limited is true + type: integer + split_code: + description: The split code if sharing the transaction with partners + type: string + metadata: + description: Stringified JSON object of custom data + type: string + ProductCreateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + variants_options: + type: array + items: {} + variants: + type: array + items: {} + name: + type: string + description: + type: string + currency: + type: string + price: + type: integer + quantity: + type: integer + type: + type: string + is_shippable: + type: boolean + unlimited: + type: boolean + files: + type: array + items: {} + shipping_fields: + type: object + properties: + delivery_note: + type: string + shipping_address: + type: string + shipping_fees: + type: array + items: {} + required: + - delivery_note + - shipping_address + - shipping_fees + integration: + type: integer + domain: + type: string + metadata: + type: object + properties: + background_color: + type: string + required: + - background_color + slug: + type: string + product_code: + type: string + quantity_sold: + type: integer + active: + type: boolean + deleted_at: + nullable: true + in_stock: + type: boolean + minimum_orderable: + type: integer + maximum_orderable: + type: integer + nullable: true + redirect_url: + type: string + nullable: true + low_stock_alert: + type: boolean + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - variants_options + - variants + - name + - description + - currency + - price + - quantity + - type + - is_shippable + - unlimited + - files + - shipping_fields + - integration + - domain + - metadata + - slug + - product_code + - quantity_sold + - active + - deleted_at + - in_stock + - minimum_orderable + - maximum_orderable + - low_stock_alert + - id + - createdAt + - updatedAt + required: + - status + - message + - data + ProductFetchResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + digital_assets: + type: array + items: {} + integration: + type: integer + name: + type: string + description: + type: string + product_code: + type: string + price: + type: integer + currency: + type: string + quantity: + type: integer + quantity_sold: + nullable: true + type: + type: string + files: + type: array + items: {} + file_path: + nullable: true + is_shippable: + type: boolean + shipping_fields: + type: object + properties: + delivery_note: + type: string + shipping_address: + type: string + shipping_fees: + type: array + items: {} + required: + - delivery_note + - shipping_address + - shipping_fees + unlimited: + type: boolean + domain: + type: string + active: + type: boolean + features: + nullable: true + in_stock: + type: boolean + metadata: + type: object + properties: + background_color: + type: string + required: + - background_color + slug: + type: string + success_message: + nullable: true + redirect_url: + nullable: true + split_code: + nullable: true + notification_emails: + nullable: true + minimum_orderable: + type: integer + maximum_orderable: + nullable: true + low_stock_alert: + type: boolean + stock_threshold: + nullable: true + expires_in: + nullable: true + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - digital_assets + - integration + - name + - description + - product_code + - price + - currency + - quantity + - quantity_sold + - type + - files + - file_path + - is_shippable + - shipping_fields + - unlimited + - domain + - active + - features + - in_stock + - metadata + - slug + - success_message + - redirect_url + - split_code + - notification_emails + - minimum_orderable + - maximum_orderable + - low_stock_alert + - stock_threshold + - expires_in + - id + - createdAt + - updatedAt + required: + - status + - message + - data + ProductUpdate: + type: object + properties: + name: + description: Name of product + type: string + description: + description: The description of the product + type: string + price: + description: | + Price should be in kobo if currency is NGN, pesewas, if currency is GHS, + and cents, if currency is ZAR + type: integer + currency: + description: | + Currency in which price is set. Allowed values are: NGN, GHS, ZAR or USD + type: string + unlimited: + description: | + Set to true if the product has unlimited stock. Leave as false if the + product has limited stock + type: boolean + quantity: + description: Number of products in stock. Use if limited is true + type: integer + split_code: + description: The split code if sharing the transaction with partners + type: string + metadata: + description: JSON object of custom data + type: object + ProductUpdateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + name: + type: string + description: + type: string + product_code: + type: string + price: + type: integer + currency: + type: string + quantity: + type: integer + quantity_sold: + type: integer + type: + type: string + files: + type: array + items: {} + file_path: + nullable: true + is_shippable: + type: boolean + shipping_fields: + type: object + properties: + delivery_note: + type: string + shipping_address: + type: string + shipping_fees: + type: array + items: {} + required: + - delivery_note + - shipping_address + - shipping_fees + unlimited: + type: boolean + domain: + type: string + active: + type: boolean + features: + nullable: true + in_stock: + type: boolean + metadata: + type: object + properties: + background_color: + type: string + required: + - background_color + slug: + type: string + success_message: + nullable: true + redirect_url: + nullable: true + split_code: + nullable: true + notification_emails: + nullable: true + minimum_orderable: + type: integer + maximum_orderable: + nullable: true + low_stock_alert: + type: boolean + stock_threshold: + nullable: true + expires_in: + nullable: true + id: + type: integer + integration: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - name + - description + - product_code + - price + - currency + - quantity + - quantity_sold + - type + - files + - file_path + - is_shippable + - shipping_fields + - unlimited + - domain + - active + - features + - in_stock + - metadata + - slug + - success_message + - redirect_url + - split_code + - notification_emails + - minimum_orderable + - maximum_orderable + - low_stock_alert + - stock_threshold + - expires_in + - id + - integration + - createdAt + - updatedAt + required: + - status + - message + - data + ProductDeleteResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + StorefrontListResponseArray: + type: object + properties: + id: + type: integer + name: + type: string + slug: + type: string + orders_count: + type: integer + status: + type: string + revenue: + nullable: true + currency: + type: string + products: + type: array + items: {} + contacts: + type: array + items: {} + social_media: + type: array + items: {} + shipping_fees: + type: array + items: {} + required: + - id + - name + - slug + - orders_count + - status + - revenue + - currency + - products + - contacts + - social_media + - shipping_fees + StorefrontListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/StorefrontListResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + StorefrontCreate: + type: object + required: + - name + - slug + - currency + properties: + name: + description: Name of the storefront + type: string + slug: + description: | + A unique identifier to access your store. Once the storefront is created, it can be accessed from + https://paystack.shop/your-slug + type: string + currency: + description: | + Currency for prices of products in your storefront. Allowed values are: `NGN`, `GHS`, `KES`, `ZAR` or `USD` + type: string + description: + description: The description of the storefront + type: string + StorefrontContactsArray: + type: object + properties: + value: + type: string + id: + type: integer + type_name: + nullable: true + type: + type: integer + required: + - value + - id + - type_name + - type + StorefrontCreateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + social_media: + type: array + items: {} + contacts: + type: array + items: + $ref: '#/components/schemas/StorefrontContactsArray' + name: + type: string + slug: + type: string + currency: + type: string + welcome_message: + nullable: true + success_message: + nullable: true + redirect_url: + nullable: true + description: + nullable: true + delivery_note: + type: string + background_color: + type: string + status: + type: string + shippable: + type: boolean + integration: + type: integer + domain: + type: string + digital_product_expiry: + nullable: true + metadata: + type: object + nullable: true + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + products: + type: array + items: {} + shipping_fees: + type: array + items: {} + required: + - social_media + - contacts + - name + - slug + - currency + - welcome_message + - success_message + - redirect_url + - description + - delivery_note + - background_color + - status + - shippable + - integration + - domain + - digital_product_expiry + - id + - createdAt + - updatedAt + - products + - shipping_fees + required: + - status + - message + - data + StorefrontFetchResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + social_media: + type: array + items: {} + contacts: + type: array + items: + $ref: '#/components/schemas/StorefrontContactsArray' + name: + type: string + slug: + type: string + currency: + type: string + welcome_message: + nullable: true + success_message: + nullable: true + redirect_url: + nullable: true + description: + nullable: true + delivery_note: + type: string + background_color: + type: string + status: + type: string + shippable: + type: boolean + integration: + type: integer + domain: + type: string + digital_product_expiry: + nullable: true + metadata: + type: object + nullable: true + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + products: + type: array + items: {} + shipping_fees: + type: array + items: {} + required: + - social_media + - contacts + - name + - slug + - currency + - welcome_message + - success_message + - redirect_url + - description + - delivery_note + - background_color + - status + - shippable + - integration + - domain + - digital_product_expiry + - id + - createdAt + - updatedAt + - products + - shipping_fees + meta: + type: object + properties: + product_count: + type: integer + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - product_count + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + StorefrontUpdate: + type: object + properties: + name: + description: Name of the storefront + type: string + slug: + description: | + A unique identifier to access your store. Once the storefront is created, it can be accessed from + https://paystack.shop/your-slug + type: string + description: + description: The description of the storefront + type: string + StorefrontUpdateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + StorefrontDeleteResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + StorefrontAddProducts: + type: object + required: + - products + properties: + products: + description: An array of product IDs + type: array + items: + type: integer + OrderItemsArray: + type: object + properties: + order_item_id: + type: integer + orderId: + type: integer + type: + type: string + item: + type: integer + current_total_items_price: + type: integer + files: + type: string + order: + type: integer + amount: + type: integer + quantity: + type: integer + createdAt: + type: string + name: + type: string + product_level_type: + type: string + product_id: + type: integer + product_success_message: + nullable: true + product_redirect_url: + nullable: true + IFNULL(p1.expires_in, p2.expires_in): + nullable: true + product_quantity_sold: + type: integer + product_notification_emails: + nullable: true + IFNULL(p1.metadata, p2.metadata): + type: string + storefront_redirect_url: + nullable: true + storefront_success_message: + nullable: true + required: + - order_item_id + - orderId + - type + - item + - current_total_items_price + - files + - order + - amount + - quantity + - createdAt + - name + - product_level_type + - product_id + - product_success_message + - product_redirect_url + - IFNULL(p1.expires_in, p2.expires_in) + - product_quantity_sold + - product_notification_emails + - IFNULL(p1.metadata, p2.metadata) + - storefront_redirect_url + - storefront_success_message + OrderListResponseArray: + type: object + properties: + id: + type: integer + order_code: + type: string + integration: + type: integer + domain: + type: string + currency: + type: string + amount: + type: integer + transaction: + type: integer + page: + nullable: true + customer: + type: integer + customer_name: + type: string + status: + type: string + shipping_address: + nullable: true + metadata: + type: string + created_at: + type: string + updated_at: + type: string + email: + type: string + paid_at: + type: string + shipping: + nullable: true + shipping_fees: + type: integer + refunded: + type: boolean + is_viewed: + type: boolean + refunded_amount: + nullable: true + discount_amount: + nullable: true + discounts: + nullable: true + items: + type: array + items: + $ref: '#/components/schemas/OrderItemsArray' + fully_refunded: + type: boolean + required: + - id + - order_code + - integration + - domain + - currency + - amount + - transaction + - page + - customer + - customer_name + - status + - shipping_address + - metadata + - created_at + - updated_at + - email + - paid_at + - shipping + - shipping_fees + - refunded + - is_viewed + - refunded_amount + - discount_amount + - discounts + - items + - fully_refunded + OrderListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/OrderListResponseArray' + meta: + type: object + properties: + total: + type: integer + revenue: + type: object + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - revenue + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + OrderItems: + type: object + description: The collection of items that make up the order + required: + - item + - type + - quantity + - amount + properties: + item: + description: The product ID of the item + type: string + type: + description: The type of the item. `product` is currently the acceptable value + type: string + quantity: + description: The number of items to get + type: integer + amount: + description: The cost of the item + type: integer + OrderShipping: + type: object + description: The shipping details of the order + required: + - street_line + - city + - state + - country + - shipping_fee + properties: + street_line: + description: The address of for the delivery + type: string + city: + description: The city of the delivery address + type: string + state: + description: The state of the delivery address + type: string + country: + description: The country of the delivery address + type: string + shipping_fee: + description: The cost of delivery + type: integer + delivery_note: + description: Extra details to be aware of for the delivery + type: string + OrderCreate: + type: object + required: + - email + - first_name + - last_name + - phone + - currency + - items + - shipping + properties: + email: + description: The email of the customer placing the order + type: string + first_name: + description: The customer's first name + type: string + last_name: + description: The customer's last name + type: string + phone: + description: The customer's mobile number + type: string + currency: + description: Currency in which amount is set. Allowed values are NGN, GHS, ZAR or USD + type: string + items: + type: array + items: + $ref: '#/components/schemas/OrderItems' + shipping: + $ref: '#/components/schemas/OrderShipping' + is_gift: + description: | + A flag to indicate if the order is for someone else + type: boolean + pay_for_me: + description: | + A flag to indicate if the someone else should pay for the order + type: boolean + OrderCreateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + discounts: + type: array + items: {} + currency: + type: string + shipping_address: + nullable: true + integration: + type: integer + domain: + type: string + email: + type: string + customer: + type: integer + amount: + type: integer + pay_for_me: + type: boolean + shipping: + type: object + properties: + customer: + type: integer + integration: + type: integer + domain: + type: string + fees: + type: integer + delivery_note: + nullable: true + street_line: + type: string + city: + type: string + state: + type: string + country: + type: string + is_shipped: + type: boolean + delivery_tracking_link: + nullable: true + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - customer + - integration + - domain + - fees + - delivery_note + - street_line + - city + - state + - country + - is_shipped + - delivery_tracking_link + - id + - createdAt + - updatedAt + nullable: true + shipping_fees: + type: integer + shipping_method: + type: object + properties: + region: + type: string + fee: + type: integer + currency: + type: string + required: + - region + - fee + - currency + metadata: + type: object + order_code: + type: string + status: + type: string + refunded: + type: boolean + is_viewed: + type: boolean + expiration_date: + nullable: true + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + items: + type: array + items: {} + pay_for_me_code: + type: string + discount_amount: + type: integer + required: + - discounts + - currency + - shipping_address + - integration + - domain + - email + - customer + - amount + - pay_for_me + - shipping + - shipping_fees + - metadata + - order_code + - status + - refunded + - is_viewed + - expiration_date + - id + - createdAt + - updatedAt + - items + - pay_for_me_code + - discount_amount + required: + - status + - message + - data + OrderFetchResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + discounts: + type: array + items: {} + order_code: + type: string + domain: + type: string + currency: + type: string + amount: + type: integer + email: + type: string + status: + type: string + refunded: + type: boolean + paid_at: + type: string + shipping_address: + nullable: true + metadata: + type: object + shipping_fees: + type: integer + shipping_method: + nullable: true + is_viewed: + type: boolean + expiration_date: + type: string + pay_for_me: + type: boolean + id: + type: integer + integration: + type: integer + page: + nullable: true + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + shipping: + nullable: true + createdAt: + type: string + updatedAt: + type: string + transaction: + type: integer + is_gift: + type: boolean + payer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + fully_refunded: + type: boolean + refunded_amount: + type: integer + items: + type: array + items: + $ref: '#/components/schemas/OrderItemsArray' + discount_amount: + nullable: true + required: + - discounts + - order_code + - domain + - currency + - amount + - email + - status + - refunded + - paid_at + - shipping_address + - metadata + - shipping_fees + - shipping_method + - is_viewed + - expiration_date + - pay_for_me + - id + - integration + - page + - customer + - shipping + - createdAt + - updatedAt + - transaction + - is_gift + - payer + - fully_refunded + - refunded_amount + - items + - discount_amount + required: + - status + - message + - data + OrderFetchProductResponseArray: + type: object + properties: + order_id: + type: integer + transaction: + type: integer + order_code: + type: string + customer: + type: integer + first_name: + type: string + last_name: + type: string + customer_name: + type: string + phone: + type: string + email: + type: string + product_code: + type: string + product_id: + type: integer + product_name: + type: string + price: + type: integer + quantity_sold: + type: integer + currency: + type: string + quantity: + type: integer + variant_id: + nullable: true + variant_price: + nullable: true + variant_code: + nullable: true + amount: + type: integer + shipping_method: + nullable: true + status: + type: string + shipping_address: + nullable: true + refunded: + type: boolean + shipping: + nullable: true + paid_at: + type: string + created_at: + type: string + is_shipped: + type: boolean + is_viewed: + type: integer + delivery_note: + nullable: true + shipping_fee: + nullable: true + amount_paid: + type: integer + storefront_slug: + type: string + required: + - order_id + - transaction + - order_code + - customer + - first_name + - last_name + - customer_name + - phone + - email + - product_code + - product_id + - product_name + - price + - quantity_sold + - currency + - quantity + - variant_id + - variant_price + - variant_code + - amount + - shipping_method + - status + - shipping_address + - refunded + - shipping + - paid_at + - created_at + - is_shipped + - is_viewed + - delivery_note + - shipping_fee + - amount_paid + - storefront_slug + OrderFetchProductResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/OrderFetchProductResponseArray' + meta: + type: object + properties: + quantity_sold: + type: integer + revenue: + type: integer + total: + type: integer + skipped: + type: integer + perPage: + type: integer + pageCount: + type: integer + required: + - quantity_sold + - revenue + - total + - skipped + - perPage + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + OrderValidateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + order_code: + type: string + domain: + type: string + currency: + type: string + amount: + type: integer + email: + type: string + status: + type: string + refunded: + type: boolean + paid_at: + nullable: true + shipping_address: + nullable: true + metadata: + nullable: true + shipping_fees: + type: integer + shipping_method: + nullable: true + is_viewed: + type: boolean + expiration_date: + type: string + pay_for_me: + type: boolean + id: + type: integer + integration: + type: object + properties: + key: + type: string + name: + type: string + logo: + type: string + allowed_currencies: + type: array + items: {} + required: + - key + - name + - logo + - allowed_currencies + transaction: + nullable: true + page: + nullable: true + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + shipping: + nullable: true + createdAt: + type: string + updatedAt: + type: string + payer: + nullable: true + required: + - order_code + - domain + - currency + - amount + - email + - status + - refunded + - paid_at + - shipping_address + - metadata + - shipping_fees + - shipping_method + - is_viewed + - expiration_date + - pay_for_me + - id + - integration + - transaction + - page + - customer + - shipping + - createdAt + - updatedAt + - payer + required: + - status + - message + - data + PageListResponseArray: + type: object + properties: + integration: + type: integer + plan: + nullable: true + domain: + type: string + name: + type: string + description: + type: string + nullable: true + amount: + type: integer + nullable: true + currency: + type: string + slug: + type: string + custom_fields: + type: array + nullable: true + items: {} + type: + type: string + redirect_url: + type: string + nullable: true + success_message: + type: string + nullable: true + collect_phone: + type: boolean + active: + type: boolean + published: + type: boolean + migrate: + type: boolean + notification_email: + nullable: true + metadata: + type: object + nullable: true + split_code: + nullable: true + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - integration + - plan + - domain + - name + - description + - amount + - currency + - slug + - custom_fields + - type + - redirect_url + - success_message + - collect_phone + - active + - published + - migrate + - notification_email + - metadata + - split_code + - id + - createdAt + - updatedAt + PageListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/PageListResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + PageCreate: + type: object + required: + - name + properties: + name: + description: Name of page + type: string + description: + description: The description of the page + type: string + amount: + description: Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR + type: integer + currency: + description: The transaction currency. Defaults to your integration currency. + type: string + enum: + - NGN + - GHS + - ZAR + - KES + - USD + slug: + description: URL slug you would like to be associated with this page. Page will be accessible at `https://paystack.com/pay/[slug]` + type: string + type: + description: | + The type of payment page to create. Defaults to `payment` if no type is specified. + type: string + enum: + - payment + - subscription + - product + - plan + plan: + description: The ID of the plan to subscribe customers on this payment page to when `type` is set to `subscription`. + type: string + fixed_amount: + description: Specifies whether to collect a fixed amount on the payment page. If true, `amount` must be passed. + type: boolean + split_code: + description: The split code of the transaction split. e.g. `SPL_98WF13Eb3w` + type: string + metadata: + description: JSON object of custom data + type: object + redirect_url: + description: | + If you would like Paystack to redirect to a URL upon successful payment, specify the URL here. + type: string + success_message: + description: | + A success message to display to the customer after a successful transaction + type: string + notification_email: + description: | + An email address that will receive transaction notifications for this payment page + type: string + collect_phone: + description: | + Specify whether to collect phone numbers on the payment page + type: boolean + custom_fields: + description: If you would like to accept custom fields, specify them here. + type: array + items: + type: object + PageCreateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + name: + type: string + integration: + type: integer + domain: + type: string + slug: + type: string + currency: + type: string + type: + type: string + collect_phone: + type: boolean + active: + type: boolean + published: + type: boolean + migrate: + type: boolean + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - name + - integration + - domain + - slug + - currency + - type + - collect_phone + - active + - published + - migrate + - id + - createdAt + - updatedAt + required: + - status + - message + - data + PageFetchResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + integration: + type: integer + domain: + type: string + name: + type: string + description: + nullable: true + amount: + type: integer + nullable: true + currency: + type: string + slug: + type: string + custom_fields: + nullable: true + type: + type: string + redirect_url: + nullable: true + success_message: + nullable: true + collect_phone: + type: boolean + active: + type: boolean + published: + type: boolean + migrate: + type: boolean + notification_email: + nullable: true + metadata: + nullable: true + split_code: + nullable: true + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - integration + - domain + - name + - description + - amount + - currency + - slug + - custom_fields + - type + - redirect_url + - success_message + - collect_phone + - active + - published + - migrate + - notification_email + - metadata + - split_code + - id + - createdAt + - updatedAt + required: + - status + - message + - data + PageUpdate: + type: object + properties: + name: + description: Name of page + type: string + description: + description: The description of the page + type: string + amount: + description: Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR + type: integer + active: + description: Set to false to deactivate page url + type: boolean + PageUpdateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + domain: + type: string + name: + type: string + description: + nullable: true + amount: + nullable: true + currency: + type: string + slug: + type: string + custom_fields: + nullable: true + type: + type: string + redirect_url: + nullable: true + success_message: + nullable: true + collect_phone: + type: boolean + active: + type: boolean + published: + type: boolean + migrate: + type: boolean + notification_email: + nullable: true + metadata: + nullable: true + split_code: + nullable: true + id: + type: integer + integration: + type: integer + plan: + nullable: true + createdAt: + type: string + updatedAt: + type: string + required: + - domain + - name + - description + - amount + - currency + - slug + - custom_fields + - type + - redirect_url + - success_message + - collect_phone + - active + - published + - migrate + - notification_email + - metadata + - split_code + - id + - integration + - plan + - createdAt + - updatedAt + required: + - status + - message + - data + PageCheckSlugAvailabilityResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + PageProduct: + type: object + required: + - product + properties: + product: + description: IDs of all products to add to a page + type: array + items: + type: string + PageProductsArray: + type: object + properties: + product_id: + type: integer + name: + type: string + description: + type: string + product_code: + type: string + page: + type: integer + price: + type: integer + currency: + type: string + quantity: + type: integer + type: + type: string + features: + nullable: true + is_shippable: + type: integer + domain: + type: string + integration: + type: integer + active: + type: integer + in_stock: + type: integer + required: + - product_id + - name + - description + - product_code + - page + - price + - currency + - quantity + - type + - features + - is_shippable + - domain + - integration + - active + - in_stock + PageAddProductsResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + integration: + type: integer + plan: + nullable: true + domain: + type: string + name: + type: string + description: + nullable: true + amount: + nullable: true + currency: + type: string + slug: + type: string + custom_fields: + nullable: true + type: + type: string + redirect_url: + nullable: true + success_message: + nullable: true + collect_phone: + type: boolean + active: + type: boolean + published: + type: boolean + migrate: + type: boolean + notification_email: + nullable: true + metadata: + nullable: true + split_code: + nullable: true + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + products: + type: array + items: + $ref: '#/components/schemas/PageProductsArray' + required: + - integration + - plan + - domain + - name + - description + - amount + - currency + - slug + - custom_fields + - type + - redirect_url + - success_message + - collect_phone + - active + - published + - migrate + - notification_email + - metadata + - split_code + - id + - createdAt + - updatedAt + - products + required: + - status + - message + - data + PaymentRequestLineItemsArray: + type: object + properties: + name: + type: string + amount: + type: integer + quantity: + type: integer + required: + - name + - amount + - quantity + PaymentRequestTaxArray: + type: object + properties: + name: + type: string + amount: + type: integer + required: + - name + - amount + PaymentRequestListResponseArray: + type: object + properties: + id: + type: integer + integration: + type: integer + domain: + type: string + amount: + type: integer + currency: + type: string + due_date: + type: string + nullable: true + has_invoice: + type: boolean + invoice_number: + type: integer + nullable: true + description: + type: string + nullable: true + pdf_url: + type: string + nullable: true + line_items: + type: array + items: + $ref: '#/components/schemas/PaymentRequestLineItemsArray' + tax: + type: array + items: + $ref: '#/components/schemas/PaymentRequestTaxArray' + request_code: + type: string + status: + type: string + paid: + type: boolean + paid_at: + nullable: true + metadata: + nullable: true + notifications: + type: array + items: {} + offline_reference: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + created_at: + type: string + discount: + nullable: true + split_code: + type: string + nullable: true + required: + - id + - integration + - domain + - amount + - currency + - due_date + - has_invoice + - invoice_number + - description + - pdf_url + - line_items + - tax + - request_code + - status + - paid + - paid_at + - metadata + - notifications + - offline_reference + - customer + - created_at + - discount + - split_code + PaymentRequestListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/PaymentRequestListResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + anyOf: + - type: integer + - type: string + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + PaymentRequestCreate: + type: object + required: + - customer + properties: + customer: + description: Customer id or code + type: string + amount: + description: |- + Payment request amount. Only useful if line items and tax values are ignored. + The endpoint will throw a friendly warning if neither is available. + type: integer + currency: + description: Specify the currency of the invoice. Allowed values are NGN, GHS, ZAR and USD. Defaults to NGN + type: string + due_date: + description: ISO 8601 representation of request due date + type: string + format: date-time + description: + description: A short description of the payment request + type: string + line_items: + description: Array of line items + type: array + items: + type: object + tax: + description: Array of taxes + type: array + items: + type: object + send_notification: + description: Indicates whether Paystack sends an email notification to customer. Defaults to true + type: boolean + items: + type: object + draft: + description: Indicate if request should be saved as draft. Defaults to false and overrides send_notification + type: boolean + items: + type: object + has_invoice: + description: |- + Set to true to create a draft invoice (adds an auto incrementing invoice number if none is provided) + even if there are no line_items or tax passed + type: boolean + items: + type: object + invoice_number: + description: |- + Numeric value of invoice. Invoice will start from 1 and auto increment from there. This field is to help + override whatever value Paystack decides. Auto increment for subsequent invoices continue from this point. + type: integer + split_code: + description: The split code of the transaction split. + type: string + PaymentRequestCreateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + integration: + type: integer + domain: + type: string + amount: + type: integer + currency: + type: string + due_date: + type: string + nullable: true + has_invoice: + type: boolean + invoice_number: + type: integer + nullable: true + description: + type: string + nullable: true + line_items: + type: array + items: {} + tax: + type: array + items: {} + request_code: + type: string + status: + type: string + paid: + type: boolean + metadata: + type: object + nullable: true + notifications: + type: array + items: {} + offline_reference: + type: string + customer: + type: integer + created_at: + type: string + discount: + nullable: true + split_code: + type: string + nullable: true + required: + - id + - integration + - domain + - amount + - currency + - due_date + - has_invoice + - invoice_number + - description + - line_items + - tax + - request_code + - status + - paid + - metadata + - notifications + - offline_reference + - customer + - created_at + - discount + - split_code + required: + - status + - message + - data + PaymentRequestUpdate: + type: object + properties: + customer: + description: Customer id or code + type: string + amount: + description: |- + Payment request amount. Only useful if line items and tax values are ignored. + The endpoint will throw a friendly warning if neither is available. + type: integer + currency: + description: Specify the currency of the invoice. Allowed values are NGN, GHS, ZAR and USD. Defaults to NGN + type: string + due_date: + description: ISO 8601 representation of request due date + type: string + format: date-time + description: + description: A short description of the payment request + type: string + line_items: + description: Array of line items + type: array + items: + type: object + tax: + description: Array of taxes + type: array + items: + type: object + send_notification: + description: Indicates whether Paystack sends an email notification to customer. Defaults to true + type: boolean + items: + type: object + draft: + description: Indicate if request should be saved as draft. Defaults to false and overrides send_notification + type: boolean + items: + type: object + has_invoice: + description: |- + Set to true to create a draft invoice (adds an auto incrementing invoice number if none is provided) + even if there are no line_items or tax passed + type: boolean + items: + type: object + invoice_number: + description: |- + Numeric value of invoice. Invoice will start from 1 and auto increment from there. This field is to help + override whatever value Paystack decides. Auto increment for subsequent invoices continue from this point. + type: integer + split_code: + description: The split code of the transaction split. + type: string + PaymentRequestNotificationsArray: + type: object + properties: + sent_at: + type: string + channel: + type: string + required: + - sent_at + - channel + PaymentRequestUpdateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + integration: + type: integer + domain: + type: string + amount: + type: integer + currency: + type: string + due_date: + type: string + nullable: true + has_invoice: + type: boolean + invoice_number: + type: integer + nullable: true + description: + nullable: true + pdf_url: + type: string + nullable: true + line_items: + type: array + items: {} + tax: + type: array + items: {} + request_code: + type: string + status: + type: string + paid: + type: boolean + paid_at: + nullable: true + metadata: + nullable: true + notifications: + type: array + items: + $ref: '#/components/schemas/PaymentRequestNotificationsArray' + offline_reference: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + properties: + calling_code: + type: string + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + created_at: + type: string + discount: + nullable: true + split_code: + nullable: true + required: + - id + - integration + - domain + - amount + - currency + - due_date + - has_invoice + - invoice_number + - description + - pdf_url + - line_items + - tax + - request_code + - status + - paid + - paid_at + - metadata + - notifications + - offline_reference + - customer + - created_at + - discount + - split_code + required: + - status + - message + - data + PaymentRequestVerifyResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + integration: + type: object + properties: + key: + type: string + name: + type: string + logo: + type: string + allowed_currencies: + type: array + items: + type: string + required: + - key + - name + - logo + - allowed_currencies + domain: + type: string + amount: + type: integer + currency: + type: string + due_date: + type: string + nullable: true + has_invoice: + type: boolean + invoice_number: + type: integer + nullable: true + description: + nullable: true + pdf_url: + type: string + nullable: true + line_items: + type: array + items: {} + tax: + type: array + items: {} + request_code: + type: string + status: + type: string + paid: + type: boolean + paid_at: + nullable: true + metadata: + nullable: true + notifications: + type: array + items: + $ref: '#/components/schemas/PaymentRequestNotificationsArray' + offline_reference: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + properties: + calling_code: + type: string + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + created_at: + type: string + discount: + nullable: true + split_code: + nullable: true + pending_amount: + type: integer + required: + - id + - integration + - domain + - amount + - currency + - due_date + - has_invoice + - invoice_number + - description + - pdf_url + - line_items + - tax + - request_code + - status + - paid + - paid_at + - metadata + - notifications + - offline_reference + - customer + - created_at + - discount + - split_code + - pending_amount + required: + - status + - message + - data + PaymentRequestSendNotificationResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + PaymentRequestPendingArray: + type: object + properties: + currency: + type: string + amount: + type: integer + required: + - currency + - amount + PaymentRequestSuccessfulArray: + type: object + properties: + currency: + type: string + amount: + type: integer + required: + - currency + - amount + PaymentRequestTotalArray: + type: object + properties: + currency: + type: string + amount: + type: integer + required: + - currency + - amount + PaymentRequestTotalResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + pending: + type: array + items: + $ref: '#/components/schemas/PaymentRequestPendingArray' + successful: + type: array + items: + $ref: '#/components/schemas/PaymentRequestSuccessfulArray' + total: + type: array + items: + $ref: '#/components/schemas/PaymentRequestTotalArray' + required: + - pending + - successful + - total + required: + - status + - message + - data + PaymentRequestFinalizeResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + integration: + type: integer + domain: + type: string + amount: + type: integer + currency: + type: string + due_date: + type: string + nullable: true + has_invoice: + type: boolean + invoice_number: + type: integer + nullable: true + description: + type: string + nullable: true + pdf_url: + nullable: true + line_items: + type: array + items: + $ref: '#/components/schemas/PaymentRequestLineItemsArray' + tax: + type: array + items: + $ref: '#/components/schemas/PaymentRequestTaxArray' + request_code: + type: string + status: + type: string + paid: + type: boolean + paid_at: + nullable: true + metadata: + nullable: true + notifications: + type: array + items: {} + offline_reference: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + properties: + calling_code: + type: string + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + created_at: + type: string + discount: + type: object + properties: + type: + type: string + amount: + type: integer + required: + - type + - amount + nullable: true + split_code: + nullable: true + pending_amount: + type: integer + required: + - id + - integration + - domain + - amount + - currency + - due_date + - has_invoice + - invoice_number + - description + - pdf_url + - line_items + - tax + - request_code + - status + - paid + - paid_at + - metadata + - notifications + - offline_reference + - customer + - created_at + - discount + - split_code + - pending_amount + required: + - status + - message + - data + PaymentRequestArchiveResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + BalanceCheckResponseArray: + type: object + properties: + currency: + type: string + balance: + type: integer + required: + - currency + - balance + BalanceCheckResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/BalanceCheckResponseArray' + required: + - status + - message + - data + BalanceFetchLedgerResponseArray: + type: object + properties: + integration: + type: integer + domain: + type: string + balance: + type: integer + currency: + type: string + difference: + type: integer + reason: + type: string + model_responsible: + type: string + model_row: + type: integer + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - integration + - domain + - balance + - currency + - difference + - reason + - model_responsible + - model_row + - id + - createdAt + - updatedAt + BalanceFetchLedgerResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/BalanceFetchLedgerResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + ControlPanelFetchPaymentSessionTimeoutResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + payment_session_timeout: + type: integer + required: + - payment_session_timeout + required: + - status + - message + - data + PaymentSession: + type: object + required: + - timeout + properties: + timeout: + description: Time in seconds before a transaction becomes invalid + type: string + example: '30' + ControlPanelUpdatePaymentSessionTimeoutResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + payment_session_timeout: + type: integer + required: + - payment_session_timeout + required: + - status + - message + - data + RefundListResponseArray: + type: object + properties: + integration: + type: integer + transaction: + type: integer + dispute: + nullable: true + settlement: + nullable: true + id: + type: integer + domain: + type: string + currency: + type: string + amount: + type: integer + status: + type: string + refunded_at: + nullable: true + refunded_by: + type: string + customer_note: + type: string + merchant_note: + type: string + deducted_amount: + type: integer + fully_deducted: + type: integer + createdAt: + type: string + bank_reference: + nullable: true + transaction_reference: + type: string + reason: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + metadata: + type: string + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + refund_type: + type: string + transaction_amount: + type: integer + initiated_by: + type: string + refund_channel: + type: string + session_id: + nullable: true + collect_account_number: + type: boolean + required: + - integration + - transaction + - dispute + - settlement + - id + - domain + - currency + - amount + - status + - refunded_at + - refunded_by + - customer_note + - merchant_note + - deducted_amount + - fully_deducted + - createdAt + - bank_reference + - transaction_reference + - reason + - customer + - refund_type + - transaction_amount + - initiated_by + - refund_channel + - session_id + - collect_account_number + RefundListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/RefundListResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: string + page: + type: integer + pageCount: + type: integer + failedRefundCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + - failedRefundCount + additionalProperties: false + required: + - status + - message + - data + - meta + RefundCreate: + type: object + required: + - transaction + properties: + transaction: + description: Transaction reference or id + type: string + amount: + description: |- + Amount ( in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR ) to be refunded to the customer. + Amount cannot be more than the original transaction amount + type: integer + currency: + description: Three-letter ISO currency. Allowed values are NGN, GHS, ZAR or USD + type: string + customer_note: + description: Customer reason + type: string + merchant_note: + description: Merchant reason + type: string + RefundCreateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + transaction: + type: object + properties: + id: + type: integer + domain: + type: string + reference: + type: string + amount: + type: integer + paid_at: + type: string + channel: + type: string + currency: + type: string + authorization: + type: object + properties: + exp_month: + nullable: true + exp_year: + nullable: true + account_name: + nullable: true + required: + - exp_month + - exp_year + - account_name + customer: + type: object + properties: + international_format_phone: + type: string + nullable: true + required: + - international_format_phone + plan: + type: object + subaccount: + type: object + properties: + currency: + nullable: true + required: + - currency + split: + type: object + order_id: + nullable: true + paidAt: + type: string + pos_transaction_data: + nullable: true + source: + nullable: true + fees_breakdown: + nullable: true + required: + - id + - domain + - reference + - amount + - paid_at + - channel + - currency + - authorization + - customer + - plan + - subaccount + - split + - order_id + - paidAt + - pos_transaction_data + - source + - fees_breakdown + integration: + type: integer + deducted_amount: + type: integer + channel: + nullable: true + merchant_note: + type: string + customer_note: + type: string + status: + type: string + refunded_by: + type: string + expected_at: + type: string + currency: + type: string + domain: + type: string + amount: + type: integer + fully_deducted: + type: boolean + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - transaction + - integration + - deducted_amount + - channel + - merchant_note + - customer_note + - status + - refunded_by + - expected_at + - currency + - domain + - amount + - fully_deducted + - id + - createdAt + - updatedAt + required: + - status + - message + - data + RefundFetchResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + integration: + type: integer + transaction: + type: integer + dispute: + nullable: true + settlement: + nullable: true + id: + type: integer + domain: + type: string + currency: + type: string + amount: + type: integer + status: + type: string + refunded_at: + nullable: true + refunded_by: + type: string + customer_note: + type: string + merchant_note: + type: string + deducted_amount: + type: integer + fully_deducted: + type: integer + createdAt: + type: string + bank_reference: + nullable: true + transaction_reference: + type: string + reason: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: string + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + refund_type: + type: string + transaction_amount: + type: integer + initiated_by: + type: string + refund_channel: + type: string + session_id: + nullable: true + collect_account_number: + type: boolean + required: + - integration + - transaction + - dispute + - settlement + - id + - domain + - currency + - amount + - status + - refunded_at + - refunded_by + - customer_note + - merchant_note + - deducted_amount + - fully_deducted + - createdAt + - bank_reference + - transaction_reference + - reason + - customer + - refund_type + - transaction_amount + - initiated_by + - refund_channel + - session_id + - collect_account_number + required: + - status + - message + - data + DisputeHistoryArray: + type: object + properties: + status: + type: string + by: + type: string + createdAt: + type: string + required: + - status + - by + - createdAt + DisputeMessagesArray: + type: object + properties: + sender: + type: string + body: + type: string + createdAt: + type: string + required: + - sender + - body + - createdAt + DisputeListResponseArray: + type: object + properties: + id: + type: integer + refund_amount: + type: integer + currency: + type: string + status: + type: string + resolution: + nullable: true + domain: + type: string + transaction: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + amount: + type: integer + message: + nullable: true + gateway_response: + type: string + paid_at: + type: string + created_at: + type: string + channel: + type: string + currency: + type: string + ip_address: + type: string + metadata: + type: object + properties: + custom_fields: + type: array + items: + $ref: '#/components/schemas/MetadataCustomFieldsArray' + required: + - custom_fields + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + fees_split: + type: integer + nullable: true + authorization: + type: object + customer: + nullable: true + plan: + type: object + subaccount: + type: object + split: + type: object + order_id: + nullable: true + paidAt: + type: string + createdAt: + type: string + pos_transaction_data: + nullable: true + source: + nullable: true + fees_breakdown: + nullable: true + connect: + nullable: true + required: + - id + - domain + - status + - reference + - amount + - message + - gateway_response + - paid_at + - created_at + - channel + - currency + - ip_address + - metadata + - log + - fees + - fees_split + - authorization + - customer + - plan + - subaccount + - split + - order_id + - paidAt + - createdAt + - pos_transaction_data + - source + - fees_breakdown + - connect + transaction_reference: + nullable: true + category: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + metadata: + type: string + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + bin: + type: string + last4: + type: string + dueAt: + nullable: true + resolvedAt: + nullable: true + evidence: + nullable: true + attachments: + nullable: true + note: + nullable: true + history: + type: array + items: + $ref: '#/components/schemas/DisputeHistoryArray' + messages: + type: array + items: + $ref: '#/components/schemas/DisputeMessagesArray' + createdAt: + type: string + updatedAt: + type: string + required: + - id + - refund_amount + - currency + - status + - resolution + - domain + - transaction + - transaction_reference + - category + - customer + - bin + - last4 + - dueAt + - resolvedAt + - evidence + - attachments + - note + - history + - messages + - createdAt + - updatedAt + DisputeListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/DisputeListResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + DisputeFetchResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + refund_amount: + type: integer + currency: + type: string + status: + type: string + resolution: + nullable: true + domain: + type: string + transaction: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + receipt_number: + type: integer + nullable: true + amount: + type: integer + message: + nullable: true + gateway_response: + type: string + paid_at: + type: string + created_at: + type: string + channel: + type: string + currency: + type: string + ip_address: + type: string + metadata: + type: object + properties: + custom_fields: + type: array + items: + $ref: '#/components/schemas/MetadataCustomFieldsArray' + required: + - custom_fields + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + fees_split: + type: integer + nullable: true + authorization: + type: object + properties: + receiver_bank_account_number: + nullable: true + receiver_bank: + nullable: true + required: + - receiver_bank_account_number + - receiver_bank + customer: + type: object + properties: + international_format_phone: + nullable: true + required: + - international_format_phone + plan: + type: object + subaccount: + type: object + split: + type: object + order_id: + nullable: true + paidAt: + type: string + createdAt: + type: string + requested_amount: + type: integer + pos_transaction_data: + nullable: true + source: + nullable: true + fees_breakdown: + nullable: true + connect: + nullable: true + required: + - id + - domain + - status + - reference + - amount + - message + - gateway_response + - paid_at + - created_at + - channel + - currency + - ip_address + - metadata + - log + - fees + - fees_split + - authorization + - customer + - plan + - subaccount + - split + - order_id + - paidAt + - createdAt + - requested_amount + - pos_transaction_data + - source + - fees_breakdown + - connect + transaction_reference: + nullable: true + category: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + bin: + type: string + last4: + type: string + dueAt: + nullable: true + resolvedAt: + nullable: true + evidence: + nullable: true + attachments: + nullable: true + note: + nullable: true + history: + type: array + items: + $ref: '#/components/schemas/DisputeHistoryArray' + messages: + type: array + items: + $ref: '#/components/schemas/DisputeMessagesArray' + createdAt: + type: string + updatedAt: + type: string + required: + - id + - refund_amount + - currency + - status + - resolution + - domain + - transaction + - transaction_reference + - category + - customer + - bin + - last4 + - dueAt + - resolvedAt + - evidence + - attachments + - note + - history + - messages + - createdAt + - updatedAt + required: + - status + - message + - data + DisputeUpdate: + type: object + required: + - refund_amount + properties: + refund_amount: + description: The amount to refund, in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR + type: string + uploaded_filename: + description: Filename of attachment returned via response from the Dispute upload URL + type: string + DisputeUpdateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + refund_amount: + type: integer + currency: + type: string + status: + type: string + resolution: + nullable: true + domain: + type: string + transaction: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + receipt_number: + type: integer + nullable: true + amount: + type: integer + message: + nullable: true + gateway_response: + type: string + paid_at: + type: string + created_at: + type: string + channel: + type: string + currency: + type: string + ip_address: + type: string + metadata: + type: object + properties: + custom_fields: + type: array + items: + $ref: '#/components/schemas/MetadataCustomFieldsArray' + required: + - custom_fields + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + fees_split: + type: integer + nullable: true + authorization: + type: object + properties: + receiver_bank_account_number: + nullable: true + receiver_bank: + nullable: true + required: + - receiver_bank_account_number + - receiver_bank + customer: + type: object + properties: + international_format_phone: + nullable: true + required: + - international_format_phone + plan: + type: object + subaccount: + type: object + split: + type: object + order_id: + nullable: true + paidAt: + type: string + createdAt: + type: string + requested_amount: + type: integer + pos_transaction_data: + nullable: true + source: + nullable: true + fees_breakdown: + nullable: true + connect: + nullable: true + required: + - id + - domain + - status + - reference + - amount + - message + - gateway_response + - paid_at + - created_at + - channel + - currency + - ip_address + - metadata + - log + - fees + - fees_split + - authorization + - customer + - plan + - subaccount + - split + - order_id + - paidAt + - createdAt + - requested_amount + - pos_transaction_data + - source + - fees_breakdown + - connect + transaction_reference: + nullable: true + category: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + bin: + type: string + last4: + type: string + dueAt: + nullable: true + resolvedAt: + nullable: true + evidence: + nullable: true + attachments: + nullable: true + note: + nullable: true + history: + type: array + items: + $ref: '#/components/schemas/DisputeHistoryArray' + messages: + type: array + items: + $ref: '#/components/schemas/DisputeMessagesArray' + createdAt: + type: string + updatedAt: + type: string + required: + - id + - refund_amount + - currency + - status + - resolution + - domain + - transaction + - transaction_reference + - category + - customer + - bin + - last4 + - dueAt + - resolvedAt + - evidence + - attachments + - note + - history + - messages + - createdAt + - updatedAt + required: + - status + - message + - data + DisputeUploadURLResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + signedUrl: + type: string + fileName: + type: string + required: + - signedUrl + - fileName + required: + - status + - message + - data + DisputeExportResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + path: + type: string + expiresAt: + type: string + required: + - path + - expiresAt + required: + - status + - message + - data + DisputeListTransactionResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + history: + type: array + items: + $ref: '#/components/schemas/DisputeHistoryArray' + messages: + type: array + items: + $ref: '#/components/schemas/DisputeMessagesArray' + currency: + type: string + last4: + type: string + bin: + type: string + transaction_reference: + nullable: true + merchant_transaction_reference: + type: string + refund_amount: + type: integer + status: + type: string + domain: + type: string + resolution: + nullable: true + category: + type: string + note: + nullable: true + attachments: + nullable: true + id: + type: integer + integration: + type: integer + transaction: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + receipt_number: + type: integer + nullable: true + amount: + type: integer + message: + nullable: true + gateway_response: + type: string + paid_at: + type: string + created_at: + type: string + channel: + type: string + currency: + type: string + ip_address: + type: string + metadata: + type: object + properties: + custom_fields: + type: array + items: + $ref: '#/components/schemas/MetadataCustomFieldsArray' + required: + - custom_fields + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + fees_split: + type: integer + nullable: true + authorization: + type: object + properties: + receiver_bank_account_number: + nullable: true + receiver_bank: + nullable: true + required: + - receiver_bank_account_number + - receiver_bank + customer: + type: object + properties: + international_format_phone: + nullable: true + required: + - international_format_phone + plan: + type: object + subaccount: + type: object + split: + type: object + order_id: + nullable: true + paidAt: + type: string + createdAt: + type: string + requested_amount: + type: integer + pos_transaction_data: + nullable: true + source: + nullable: true + fees_breakdown: + nullable: true + connect: + type: object + nullable: true + required: + - id + - domain + - status + - reference + - amount + - message + - gateway_response + - paid_at + - created_at + - channel + - currency + - ip_address + - metadata + - log + - fees + - fees_split + - authorization + - customer + - plan + - subaccount + - split + - order_id + - paidAt + - createdAt + - requested_amount + - pos_transaction_data + - source + - fees_breakdown + - connect + created_by: + type: integer + evidence: + nullable: true + resolvedAt: + nullable: true + createdAt: + type: string + updatedAt: + type: string + dueAt: + nullable: true + required: + - history + - messages + - currency + - last4 + - bin + - transaction_reference + - merchant_transaction_reference + - refund_amount + - status + - domain + - resolution + - category + - note + - attachments + - id + - integration + - transaction + - created_by + - evidence + - resolvedAt + - createdAt + - updatedAt + - dueAt + required: + - status + - message + - data + DisputeResolve: + type: object + required: + - resolution + - message + - refund_amount + - uploaded_filename + properties: + resolution: + description: Dispute resolution. Accepted values, merchant-accepted, declined + type: string + message: + description: Reason for resolving + type: string + refund_amount: + description: The amount to refund, in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR + type: string + uploaded_filename: + description: Filename of attachment returned via response from the Dispute upload URL + type: string + evidence: + description: Evidence Id for fraud claims + type: integer + DisputeResolveResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + currency: + type: string + last4: + type: string + bin: + type: string + transaction_reference: + nullable: true + merchant_transaction_reference: + type: string + refund_amount: + type: integer + status: + type: string + domain: + type: string + resolution: + type: string + category: + type: string + note: + nullable: true + attachments: + type: string + id: + type: integer + integration: + type: integer + transaction: + type: integer + created_by: + type: integer + evidence: + type: integer + resolvedAt: + type: string + createdAt: + type: string + updatedAt: + type: string + dueAt: + nullable: true + message: + type: object + properties: + dispute: + type: integer + sender: + type: string + body: + type: string + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - dispute + - sender + - body + - id + - createdAt + - updatedAt + required: + - currency + - last4 + - bin + - transaction_reference + - merchant_transaction_reference + - refund_amount + - status + - domain + - resolution + - category + - note + - attachments + - id + - integration + - transaction + - created_by + - evidence + - resolvedAt + - createdAt + - updatedAt + - dueAt + - message + required: + - status + - message + - data + DisputeEvidence: + type: object + required: + - customer_email + - customer_name + - customer_phone + - service_details + properties: + customer_email: + description: Customer email + type: string + customer_name: + description: Customer name + type: string + customer_phone: + description: Customer mobile number + type: string + service_details: + description: Details of service offered + type: string + delivery_address: + description: Delivery address + type: string + delivery_date: + description: ISO 8601 representation of delivery date (YYYY-MM-DD) + type: string + format: date-time + DisputeAddEvidenceResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + customer_email: + type: string + customer_name: + type: string + customer_phone: + type: string + service_details: + type: string + delivery_address: + type: string + delivery_date: + type: string + dispute: + type: integer + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - customer_email + - customer_name + - customer_phone + - service_details + - delivery_address + - delivery_date + - dispute + - id + - createdAt + - updatedAt + required: + - status + - message + - data + MiscellaneousListBanksResponseArray: + type: object + properties: + name: + type: string + slug: + type: string + code: + type: string + longcode: + type: string + gateway: + type: string + nullable: true + pay_with_bank: + type: boolean + supports_transfer: + type: boolean + available_for_direct_debit: + type: boolean + active: + type: boolean + is_deleted: + type: boolean + nullable: true + country: + type: string + currency: + type: string + type: + type: string + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - name + - slug + - code + - longcode + - gateway + - pay_with_bank + - supports_transfer + - available_for_direct_debit + - active + - is_deleted + - country + - currency + - type + - id + - createdAt + - updatedAt + MiscellaneousListBanksResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/MiscellaneousListBanksResponseArray' + required: + - status + - message + - data + VerificationResolveAccountNumberResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + account_number: + type: string + account_name: + type: string + bank_id: + type: integer + required: + - account_number + - account_name + - bank_id + required: + - status + - message + - data + BankValidateRequest: + type: object + required: + - account_name + - account_number + - account_type + - bank_code + - country_code + - document_type + properties: + account_name: + description: Customer's first and last name registered with their bank + type: string + account_number: + description: Customer's account number + type: string + account_type: + description: The type of the customer's account number + type: string + enum: + - personal + - business + bank_code: + description: The bank code of the customer’s bank. You can fetch the bank codes by using our List Banks endpoint + type: string + country_code: + description: The two digit ISO code of the customer’s bank + type: string + document_type: + description: Customer’s mode of identity + type: string + enum: + - identityNumber + - passportNumber + - businessRegistrationNumber + document_number: + description: Customer’s mode of identity number + type: string + VerificationValidateAccountResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + verified: + type: boolean + verificationMessage: + type: string + accountAcceptsDebits: + type: boolean + accountAcceptsCredits: + type: boolean + accountOpenForMoreThanThreeMonths: + type: boolean + accountHolderMatch: + type: boolean + accountOpen: + type: boolean + required: + - verified + - verificationMessage + - accountAcceptsDebits + - accountAcceptsCredits + - accountOpenForMoreThanThreeMonths + - accountHolderMatch + - accountOpen + required: + - status + - message + - data + VerificationResolveCardBINResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + bin: + type: string + brand: + type: string + sub_brand: + type: string + country_code: + type: string + country_name: + type: string + card_type: + type: string + bank: + type: string + currency: + type: string + linked_bank_id: + type: integer + required: + - bin + - brand + - sub_brand + - country_code + - country_name + - card_type + - bank + - currency + - linked_bank_id + required: + - status + - message + - data + MiscellaneousListCountriesResponseArray: + type: object + properties: + id: + type: integer + active_for_dashboard_onboarding: + type: boolean + name: + type: string + iso_code: + type: string + default_currency_code: + type: string + integration_defaults: + type: object + calling_code: + type: string + pilot_mode: + type: boolean + relationships: + type: object + properties: + currency: + type: object + properties: + type: + type: string + data: + type: array + items: + type: string + supported_currencies: + type: object + properties: + NGN: + type: object + properties: + bank: + type: object + properties: + bank_type: + type: string + branch_code: + type: boolean + branch_code_type: + type: string + account_name: + type: boolean + account_verification_required: + type: boolean + account_number_label: + type: string + account_number_pattern: + type: object + properties: + exact_match: + type: boolean + pattern: + type: string + required: + - exact_match + - pattern + documents: + type: array + items: {} + show_account_number_tooltip: + type: boolean + required: + - bank_type + - branch_code + - branch_code_type + - account_name + - account_verification_required + - account_number_label + - account_number_pattern + - documents + - show_account_number_tooltip + required: + - bank + USD: + type: object + properties: + bank: + type: object + properties: + bank_type: + type: string + required_fields: + type: array + items: + type: string + branch_code: + type: boolean + branch_code_type: + type: string + account_name: + type: boolean + account_verification_required: + type: boolean + account_number_label: + type: string + account_number_pattern: + type: object + properties: + exact_match: + type: boolean + pattern: + type: string + required: + - exact_match + - pattern + documents: + type: array + items: {} + notices: + type: array + items: + type: string + required: + - bank_type + - required_fields + - branch_code + - branch_code_type + - account_name + - account_verification_required + - account_number_label + - account_number_pattern + - documents + - notices + required: + - bank + required: + - NGN + - USD + required: + - type + - data + - supported_currencies + integration_feature: + type: object + properties: + type: + type: string + data: + type: array + items: {} + required: + - type + - data + integration_type: + type: object + properties: + type: + type: string + data: + type: array + items: + type: string + required: + - type + - data + payment_method: + type: object + properties: + type: + type: string + data: + type: array + items: + type: string + required: + - type + - data + required: + - currency + - integration_feature + - integration_type + - payment_method + required: + - id + - active_for_dashboard_onboarding + - name + - iso_code + - default_currency_code + - integration_defaults + - calling_code + - pilot_mode + - relationships + MiscellaneousListCountriesResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/MiscellaneousListCountriesResponseArray' + required: + - status + - message + - data + MiscellaneousListStatesResponseArray: + type: object + properties: + name: + type: string + slug: + type: string + abbreviation: + type: string + required: + - name + - slug + - abbreviation + MiscellaneousListStatesResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/MiscellaneousListStatesResponseArray' + required: + - status + - message + - data + responses: + TransactionInitializeBadRequestResponse: + description: Responses from the Transaction Initialize endpoint + content: application/json: schema: - $ref: '#/components/schemas/Error' - example: - status: false - message: Entity not found + $ref: '#/components/schemas/TransactionInitializeBadRequestModel' Unauthorized: description: Unauthorized operation content: @@ -4720,11 +18159,474 @@ components: example: status: false message: Invalid key - GeneralError: - description: General Error + NotFound: + description: Entity not found content: application/json: schema: $ref: '#/components/schemas/Error' -security: - - bearerAuth: [] + example: + status: false + message: Entity not found + Ok: + description: Request successful + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + TerminalGetStatusSuccess: + description: Terminal Get Status response + content: + application/json: + schema: + $ref: '#/components/schemas/TerminalGetStatusResponse' + TerminalListsSuccess: + description: Terminal Lists response + content: + application/json: + schema: + $ref: '#/components/schemas/TerminalListsResponse' + TerminalGetSuccess: + description: Terminal Get response + content: + application/json: + schema: + $ref: '#/components/schemas/TerminalGetResponse' + TerminalUpdateSuccess: + description: Terminal Update response + content: + application/json: + schema: + $ref: '#/components/schemas/TerminalUpdateResponse' + TerminalCommissionDeviceSuccess: + description: Terminal Commission Device response + content: + application/json: + schema: + $ref: '#/components/schemas/TerminalCommissionDeviceResponse' + TerminalDecommissionDeviceSuccess: + description: Terminal Decommission Device response + content: + application/json: + schema: + $ref: '#/components/schemas/TerminalDecommissionDeviceResponse' + VirtualTerminalListSuccess: + description: Virtual Terminal Lists response + content: + application/json: + schema: + $ref: '#/components/schemas/VirtualTerminalListResponse' + VirtualTerminalCreateSuccess: + description: Virtual Terminal Create response + content: + application/json: + schema: + $ref: '#/components/schemas/VirtualTerminalCreateResponse' + VirtualTerminalFetchSuccess: + description: Virtual Terminal Fetch response + content: + application/json: + schema: + $ref: '#/components/schemas/VirtualTerminalFetchResponse' + VirtualTerminalUpdateSuccess: + description: Virtual Terminal Update response + content: + application/json: + schema: + $ref: '#/components/schemas/VirtualTerminalUpdateResponse' + VirtualTerminalDeactivateSuccess: + description: Virtual Terminal Deactivate response + content: + application/json: + schema: + $ref: '#/components/schemas/VirtualTerminalDeactivateResponse' + VirtualTerminalDestinationAssignSuccess: + description: Virtual Terminal Deactivate response + content: + application/json: + schema: + $ref: '#/components/schemas/VirtualTerminalDestinationAssignResponse' + VirtualTerminalDestinationUnassignSuccess: + description: Virtual Terminal unassign response + content: + application/json: + schema: + $ref: '#/components/schemas/VirtualTerminalDestinationUnassignResponse' + VirtualTerminalAddSplitCodeSuccess: + description: Virtual Terminal Split Assign response + content: + application/json: + schema: + $ref: '#/components/schemas/VirtualTerminalAddSplitCodeResponse' + VirtualTerminalDeleteSplitCodeSuccess: + description: Virtual Terminal Split Remove response + content: + application/json: + schema: + $ref: '#/components/schemas/VirtualTerminalDeleteSplitCodeResponse' + CustomerAuthorizationInitializeSuccess: + description: Customer Authorization Initialize response + content: + application/json: + schema: + $ref: '#/components/schemas/CustomerAuthorizationInitializeResponse' + CustomerAuthorizationVerifySuccess: + description: Customer Authorization Verify response + content: + application/json: + schema: + $ref: '#/components/schemas/CustomerAuthorizationVerifyResponse' + CustomerInitializeDirectDebitSuccess: + description: Customer Initialize Direct Debit response + content: + application/json: + schema: + $ref: '#/components/schemas/CustomerInitializeDirectDebitResponse' + CustomerDirectDebitActivationChargeSuccess: + description: Customer Direct Debit Activation Charge response + content: + application/json: + schema: + $ref: '#/components/schemas/CustomerDirectDebitActivationChargeResponse' + CustomerFetchMandateAuthorizationsSuccess: + description: Customer Fetch Mandate Authorizations response + content: + application/json: + schema: + $ref: '#/components/schemas/CustomerFetchMandateAuthorizationsResponse' + DirectDebitActivationChargeSuccess: + description: Direct Debit Activation Charge response + content: + application/json: + schema: + $ref: '#/components/schemas/DirectDebitActivationChargeResponse' + ApplePayOkResponse: + description: Responses from the Transaction Initialize endpoint + content: + application/json: + schema: + $ref: '#/components/schemas/ApplePayCreateOkModel' + PlanListSuccess: + description: Plan List response + content: + application/json: + schema: + $ref: '#/components/schemas/PlanListResponse' + PlanCreateSuccess: + description: Plan Create response + content: + application/json: + schema: + $ref: '#/components/schemas/PlanCreateResponse' + PlanFetchSuccess: + description: Plan Fetch response + content: + application/json: + schema: + $ref: '#/components/schemas/PlanFetchResponse' + PlanUpdateSuccess: + description: Plan Update response + content: + application/json: + schema: + $ref: '#/components/schemas/PlanUpdateResponse' + SubscriptionListSuccess: + description: Subscription List response + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriptionListResponse' + SubscriptionCreateSuccess: + description: Subscription Create response + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriptionCreateResponse' + SubscriptionFetchSuccess: + description: Subscription Fetch response + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriptionFetchResponse' + SubscriptionDisableSuccess: + description: Subscription Disable response + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriptionDisableResponse' + ProductListsSuccess: + description: Product Lists response + content: + application/json: + schema: + $ref: '#/components/schemas/ProductListsResponse' + ProductCreateSuccess: + description: Product Create response + content: + application/json: + schema: + $ref: '#/components/schemas/ProductCreateResponse' + ProductFetchSuccess: + description: Product Fetch response + content: + application/json: + schema: + $ref: '#/components/schemas/ProductFetchResponse' + ProductUpdateSuccess: + description: Product Update response + content: + application/json: + schema: + $ref: '#/components/schemas/ProductUpdateResponse' + ProductDeleteSuccess: + description: Product Delete response + content: + application/json: + schema: + $ref: '#/components/schemas/ProductDeleteResponse' + StorefrontListSuccess: + description: Storefront List response + content: + application/json: + schema: + $ref: '#/components/schemas/StorefrontListResponse' + StorefrontCreateSuccess: + description: Storefront Create response + content: + application/json: + schema: + $ref: '#/components/schemas/StorefrontCreateResponse' + StorefrontFetchSuccess: + description: Storefront Fetch response + content: + application/json: + schema: + $ref: '#/components/schemas/StorefrontFetchResponse' + StorefrontUpdateSuccess: + description: Storefront Update response + content: + application/json: + schema: + $ref: '#/components/schemas/StorefrontUpdateResponse' + StorefrontDeleteSuccess: + description: Storefront Delete response + content: + application/json: + schema: + $ref: '#/components/schemas/StorefrontDeleteResponse' + OrderListSuccess: + description: Order List response + content: + application/json: + schema: + $ref: '#/components/schemas/OrderListResponse' + OrderCreateSuccess: + description: Order Create response + content: + application/json: + schema: + $ref: '#/components/schemas/OrderCreateResponse' + OrderFetchSuccess: + description: Order Fetch response + content: + application/json: + schema: + $ref: '#/components/schemas/OrderFetchResponse' + OrderFetchProductSuccess: + description: Order Fetch Product response + content: + application/json: + schema: + $ref: '#/components/schemas/OrderFetchProductResponse' + OrderValidateSuccess: + description: Order Validate response + content: + application/json: + schema: + $ref: '#/components/schemas/OrderValidateResponse' + PageListSuccess: + description: Page List response + content: + application/json: + schema: + $ref: '#/components/schemas/PageListResponse' + PageCreateSuccess: + description: Page Create response + content: + application/json: + schema: + $ref: '#/components/schemas/PageCreateResponse' + PageFetchSuccess: + description: Page Fetch response + content: + application/json: + schema: + $ref: '#/components/schemas/PageFetchResponse' + PageUpdateSuccess: + description: Page Update response + content: + application/json: + schema: + $ref: '#/components/schemas/PageUpdateResponse' + PageCheckSlugAvailabilitySuccess: + description: Page Check Slug Availability response + content: + application/json: + schema: + $ref: '#/components/schemas/PageCheckSlugAvailabilityResponse' + PageAddProductsSuccess: + description: Page Add Products response + content: + application/json: + schema: + $ref: '#/components/schemas/PageAddProductsResponse' + PaymentRequestListSuccess: + description: Payment Request List response + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRequestListResponse' + PaymentRequestCreateSuccess: + description: Payment Request Create response + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRequestCreateResponse' + PaymentRequestUpdateSuccess: + description: Payment Request Update response + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRequestUpdateResponse' + PaymentRequestVerifySuccess: + description: Payment Request Verify response + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRequestVerifyResponse' + PaymentRequestSendNotificationSuccess: + description: Payment Request Send Notification response + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRequestSendNotificationResponse' + PaymentRequestTotalSuccess: + description: Payment Request Total response + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRequestTotalResponse' + PaymentRequestFinalizeSuccess: + description: Payment Request Finalize response + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRequestFinalizeResponse' + PaymentRequestArchiveSuccess: + description: Payment Request Archive response + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentRequestArchiveResponse' + RefundListSuccess: + description: Refund List response + content: + application/json: + schema: + $ref: '#/components/schemas/RefundListResponse' + RefundCreateSuccess: + description: Refund Create response + content: + application/json: + schema: + $ref: '#/components/schemas/RefundCreateResponse' + RefundFetchSuccess: + description: Refund Fetch response + content: + application/json: + schema: + $ref: '#/components/schemas/RefundFetchResponse' + DisputeListSuccess: + description: Dispute List response + content: + application/json: + schema: + $ref: '#/components/schemas/DisputeListResponse' + DisputeFetchSuccess: + description: Dispute Fetch response + content: + application/json: + schema: + $ref: '#/components/schemas/DisputeFetchResponse' + DisputeUpdateSuccess: + description: Dispute Update response + content: + application/json: + schema: + $ref: '#/components/schemas/DisputeUpdateResponse' + DisputeUploadURLSuccess: + description: Dispute Upload U R L response + content: + application/json: + schema: + $ref: '#/components/schemas/DisputeUploadURLResponse' + DisputeExportSuccess: + description: Dispute Export response + content: + application/json: + schema: + $ref: '#/components/schemas/DisputeExportResponse' + DisputeListTransactionSuccess: + description: Dispute List Transaction response + content: + application/json: + schema: + $ref: '#/components/schemas/DisputeListTransactionResponse' + DisputeResolveSuccess: + description: Dispute Resolve response + content: + application/json: + schema: + $ref: '#/components/schemas/DisputeResolveResponse' + DisputeAddEvidenceSuccess: + description: Dispute Add Evidence response + content: + application/json: + schema: + $ref: '#/components/schemas/DisputeAddEvidenceResponse' + MiscellaneousListBanksSuccess: + description: Miscellaneous List Banks response + content: + application/json: + schema: + $ref: '#/components/schemas/MiscellaneousListBanksResponse' + VerificationResolveAccountNumberSuccess: + description: Verification Resolve Account Number response + content: + application/json: + schema: + $ref: '#/components/schemas/VerificationResolveAccountNumberResponse' + VerificationValidateAccountSuccess: + description: Verification Validate Account response + content: + application/json: + schema: + $ref: '#/components/schemas/VerificationValidateAccountResponse' + VerificationResolveCardBINSuccess: + description: Verification Resolve Card B I N response + content: + application/json: + schema: + $ref: '#/components/schemas/VerificationResolveCardBINResponse' + MiscellaneousListCountriesSuccess: + description: Miscellaneous List Countries response + content: + application/json: + schema: + $ref: '#/components/schemas/MiscellaneousListCountriesResponse' + MiscellaneousListStatesSuccess: + description: Miscellaneous List States response + content: + application/json: + schema: + $ref: '#/components/schemas/MiscellaneousListStatesResponse' diff --git a/dist/savings.yaml b/dist/savings.yaml index 00d8f69..7e5ec4d 100644 --- a/dist/savings.yaml +++ b/dist/savings.yaml @@ -1,17 +1,27 @@ openapi: 3.0.1 info: title: Create a savings application - description: |- + description: | The OpenAPI specification for creating a savings application using the [Paystack API](https://paystack.com/docs/api/). + ### Prerequisites + 1. Sign up on [Paystack](https://paystack.com/signup) to get your secret API key + 2. Set your API key as an environment variable on [Postman](https://learning.postman.com/docs/sending-requests/variables/) Once setup, start with the [Initialize Transaction endpoint](https://paystack.com/docs/api/#transaction-initialize), where you'll open the `authorization_url` to load the Paystack Checkout and complete the transaction. version: 1.0.0 + contact: + email: devrel@paystack.com + license: + name: MIT + url: https://choosealicense.com/licenses/mit/ servers: - - url: 'https://api.paystack.co' + - url: https://api.paystack.co description: Base API endpoint +security: + - bearerAuth: [] paths: /transaction/initialize: post: @@ -22,112 +32,23 @@ paths: description: Create a new transaction requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1transaction~1initialize/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - email - - amount - properties: - email: - description: Customer's email address - type: string - example: person@email.com - amount: - description: 'Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR' - type: integer - example: 10247 - currency: - description: The transaction currency - type: string - enum: - - NGN - - GHS - - ZAR - - USD - reference: - description: 'Unique transaction reference. Only -, ., = and alphanumeric characters allowed.' - type: string - example: 123.uniq=ref- - callback_url: - description: Fully qualified url. Use this to override the callback url provided on the dashboard for this transaction - type: string - example: 'https://example.com/' - plan: - description: |- - If transaction is to create a subscription to a predefined plan, provide plan code here. - This would invalidate the value provided in amount - type: string - example: PLN_123wede - invoice_limit: - description: Number of times to charge customer during subscription to plan - type: integer - example: 10 - metadata: - description: Stringified JSON object of custom data - type: object - example: - metadata: - cart_id: 398 - custom_fields: - - display_name: Invoice ID - variable_name: Invoice ID - value: 209 - - display_name: Cart Items - variable_name: cart_items - value: '3 bananas, 12 mangoes' - channels: - description: An array of payment channels to control what channels you want to make available to the user to make a payment with - type: array - enum: - - card - - bank - - ussd - - qr - - eft - - mobile_money - - bank_transfer - split_code: - description: The split code of the transaction split - type: string - example: SPL_123AbZ - subaccount: - description: The code for the subaccount that owns the payment - type: string - example: ACCT_23abcdefgh - transaction_charge: - description: |- - A flat fee to charge the subaccount for a transaction. - This overrides the split percentage set when the subaccount was created - type: integer - example: 12300 - bearer: - description: The bearer of the transaction charge - type: string - enum: - - account - - subaccount + $ref: '#/components/schemas/TransactionInitialize' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransactionInitialize' responses: '200': - description: Request successful + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Initiailize Transaction: - value: - status: true - message: Authorization URL created - data: - authorization_url: 'https://checkout.paystack.com/spnajmit2hgi2c1' - access_code: spandaoende - reference: ad123ada + $ref: '#/components/schemas/TransactionInitializeResponse' + '400': + $ref: '#/components/responses/TransactionInitializeBadRequestResponse' '401': - $ref: '#/paths/~1transfer/post/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error /transaction/charge_authorization: @@ -138,141 +59,47 @@ paths: operationId: transaction_chargeAuthorization requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1transaction~1charge_authorization/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - email - - amount - - authorization_code - properties: - email: - description: Customer's email address used during the first transaction - type: string - example: person@email.com - amount: - description: 'Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR' - type: integer - example: 10247 - authorization_code: - description: Valid authorization code to charge - type: string - example: AUTH_CODE - reference: - description: 'Unique transaction reference. Only -, ., = and alphanumeric characters allowed.' - type: string - example: 123.uniq=ref-2 - currency: - description: The transaction currency - type: string - enum: - - NGN - - GHS - - ZAR - - USD - metadata: - description: Stringified JSON object of custom data - type: object - example: - cart_id: 398 - custom_fields: - - display_name: Invoice ID - variable_name: Invoice ID - value: 209 - - display_name: Cart Items - variable_name: cart_items - value: '3 bananas, 12 mangoes' - split_code: - description: The split code of the transaction split - type: string - example: SPL_123AbZ - subaccount: - description: The code for the subaccount that owns the payment - type: string - example: ACCT_23abcdefgh - transaction_charge: - description: |- - A flat fee to charge the subaccount for a transaction. - This overrides the split percentage set when the subaccount was created - type: integer - example: 12300 - bearer: - description: The bearer of the transaction charge - type: string - enum: - - account - - subaccount - queue: - description: 'If you are making a scheduled charge call, it is a good idea to queue them so the processing system does not get overloaded causing transaction processing errors.' - type: boolean + $ref: '#/components/schemas/TransactionChargeAuthorization' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransactionChargeAuthorization' responses: '200': - description: Request successful + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Charge Authorization: - value: - status: true - message: Charge attempted - data: - amount: 500000 - currency: NGN - reference: 123.uniq=ref-2 - metadata: - cart_id: 398 - custom_fields: - - display_name: Invoice ID - variable_name: Invoice ID - value: 209 - split_code: SPL_123AbZ - subaccount: ACCT_23abcdefgh + $ref: '#/components/schemas/ChargeAuthorizationResponse' '401': - $ref: '#/paths/~1transfer/post/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error /bank/resolve: get: tags: - - Verification + - Bank summary: Resolve Account Number - operationId: verification_resolveAccountNumber + operationId: bank_resolveAccountNumber parameters: - name: account_number in: query schema: type: integer - example: 0022728151 + example: 22728151 - name: bank_code in: query schema: type: integer - example: 51 + example: 63 responses: '200': - description: Resolve Account Number - content: - application/json: - schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Resolve Bank: - value: - status: true - message: Account number resolved - data: - account_number: 342391 - account_name: Doe Jane Loren - bank_id: 9 + $ref: '#/components/responses/VerificationResolveAccountNumberSuccess' '401': - $ref: '#/paths/~1transfer/post/responses/401' + $ref: '#/components/responses/Unauthorized' '404': - $ref: '#/paths/~1transfer/post/responses/401' + $ref: '#/components/responses/NotFound' default: description: Server error /transferrecipient: @@ -283,94 +110,67 @@ paths: operationId: transferrecipient_create requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1transferrecipient/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - type - - name - - account_number - - bank_code - properties: - type: - description: 'Recipient Type - nuban for NGN, mobile_money for MOMO in GHS, basa for ZAR and authorization for all.' - type: string - enum: - - nuban - - mobile_money - - basa - - authorization - name: - description: Recipient's name - type: string - example: Ada Lovelace - account_number: - description: Recipient's bank account number - type: string - example: '0000000000' - bank_code: - description: Recipient's bank code. You can get the list of Bank Codes by calling the List Banks endpoint - type: string - example: '011' - description: - description: A description for this recipient - type: string - example: Keeps our servers running - currency: - description: Currency for the account receiving the transfer - type: string - enum: - - NGN - - GHS - - ZAR - - KES - authorization_code: - description: An authorization code from a previous transaction - type: string - example: AUTH_CODE - metadata: - description: Stringified JSON object of custom data - type: string - example: | - {referrer_id: 123} + $ref: '#/components/schemas/TransferRecipientCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferRecipientCreate' responses: '201': - description: Transfer Recipient Created + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TransferRecipientCreateResponse' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + get: + tags: + - Transfer Recipient + summary: List Transfer Recipients + operationId: transferrecipient_list + parameters: + - in: query + name: use_cursor + description: A flag to indicate if cursor based pagination should be used + schema: + type: boolean + - in: query + name: next + description: | + An alphanumeric value returned for every cursor based retrieval, used to retrieve the next set of data + schema: + type: string + - in: query + name: previous + description: | + An alphanumeric value returned for every cursor based retrieval, used to retrieve the previous set of data + schema: + type: string + - in: query + name: per_page + schema: + type: integer + description: The number of records to fetch per request + - in: query + name: page + schema: + type: integer + description: The offset to retrieve data from + responses: + '200': + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Create Customer: - value: - status: true - message: Transfer recipient created successfully - data: - active: true - createdAt: 2022-09-16T08:31:43.321Z - currency: NGN - domain: live - id: 38770134 - integration: 463433 - metadata: - referrer_id: 123 - name: Ada Lovelace - recipient_code: RCP_2fl8jmb2v3kbleb - type: nuban - updatedAt: 2022-09-16T08:31:43.321Z - is_deleted: false - isDeleted: false - details: - authorization_code: null - account_number: 0 - account_name: Doe Jane Loren - bank_code: 9 - bank_name: First Bank of Nigeria + $ref: '#/components/schemas/TransferRecipientListResponse' '401': - $ref: '#/paths/~1transfer/post/responses/401' + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' default: description: Server error /transfer: @@ -381,97 +181,100 @@ paths: operationId: transfer_initiate requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1transfer/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - source - - amount - - recipient - properties: - source: - description: Where should we transfer from? Only balance is allowed for now - type: string - example: balance - amount: - description: Amount to transfer in kobo if currency is NGN. pesewas if currency is GHS and cents for ZAR. - type: integer - example: 10234 - recipient: - description: The transfer recipient's code - type: string - example: RCP_CODE - reason: - description: The reason or narration for the transfer. - type: string - example: Good job - currency: - description: Specify the currency of the transfer. Defaults to NGN. - type: string - reference: - description: |- - If specified, the field should be a unique identifier (in lowercase) for the object. - Only -,_ and alphanumeric characters are allowed. - type: string - example: Transfer-123_unique + $ref: '#/components/schemas/TransferInitiate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferInitiate' responses: '200': - description: Request successful + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Initiate Transfer: - value: - status: true - message: Transfer has been queued - data: - reference: on5hyz9poe - integration: 428626 - domain: test - amount: 3794800 - currency: NGN - source: balance - reason: Holiday Flexing - recipient: 6788170 - status: success - transfer_code: TRF_fiyxvgkh71e717b - id: 23070321 - failures: null - source_details: null - request: 654770431 - transferred_at: 2020-05-13T14:22:49.687Z - transfersessionid: [] - createdAt: 2020-05-13T14:22:49.687Z - updatedAt: 2020-05-13T14:22:49.687Z + $ref: '#/components/schemas/TransferCreateResponse' '401': - description: Unauthorized operation + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + get: + tags: + - Transfer + summary: List Transfers + operationId: transfer_list + parameters: + - in: query + name: use_cursor + description: A flag to indicate if cursor based pagination should be used + schema: + type: boolean + - in: query + name: next + description: | + An alphanumeric value returned for every cursor based retrieval, used to retrieve the next set of data + schema: + type: string + - in: query + name: previous + description: | + An alphanumeric value returned for every cursor based retrieval, used to retrieve the previous set of data + schema: + type: string + - in: query + name: per_page + schema: + type: integer + description: The number of records to fetch per request + - in: query + name: page + schema: + type: integer + description: The offset to retrieve data from + - in: query + name: from + description: The start date + schema: + type: string + format: date-time + - in: query + name: to + description: The end date + schema: + type: string + format: date-time + - in: query + name: recipient + description: Filter transfer by the recipient code + schema: + type: string + - in: query + name: status + description: Filter transfer by status + schema: + type: string + default: pending + enum: + - pending + - success + - failed + - otp + - abandoned + - reversed + - blocked + - rejected + - received + responses: + '200': + description: '' content: application/json: - examples: - No-Authorization-Header: - value: - status: false - message: No Authorization Header was found - Bad-Authorization-Header: - value: - status: false - message: 'Format is Authorization Bearer [secret key]' - Invalid-Key: - value: - status: false - message: Invalid key schema: - type: object - properties: - status: - type: boolean - message: - type: string + $ref: '#/components/schemas/TransferListResponse' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' default: description: Server error components: @@ -480,101 +283,942 @@ components: type: http scheme: bearer schemas: - Customer: - allOf: - - type: object - required: - - email + Currency: + description: List of all support currencies + type: string + enum: + - GHS + - KES + - NGN + - ZAR + - USD + example: GHS + SplitSubaccounts: + type: object + properties: + subaccount: + description: Subaccount code of the customer or partner + type: string + share: + description: The percentage or flat quota of the customer or partner + type: string + SplitCreate: + type: object + description: | + Split configuration for transactions + properties: + name: + description: Name of the transaction split + type: string + type: + description: The type of transaction split you want to create. + type: string + enum: + - percentage + - flat + subaccounts: + description: A list of object containing subaccount code and number of shares + type: array + items: + $ref: '#/components/schemas/SplitSubaccounts' + currency: + description: The transaction currency + type: string + enum: + - NGN + - GHS + - ZAR + - USD + bearer_type: + description: This allows you specify how the transaction charge should be processed + type: string + enum: + - subaccount + - account + - all-proportional + - all + bearer_subaccount: + description: This is the subaccount code of the customer or partner that would bear the transaction charge if you specified subaccount as the bearer type + type: string + required: + - name + - type + - subaccounts + - currency + TransactionInitialize: + description: Initialize a transaction + type: object + required: + - email + - amount + properties: + email: + description: Customer's email address + type: string + amount: + description: | + Amount should be in smallest denomination of the currency. For example if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR + type: integer + currency: + $ref: '#/components/schemas/Currency' + reference: + description: Unique transaction reference. Only -, ., = and alphanumeric characters allowed. + type: string + channels: + description: An array of payment channels to control what channels you want to make available to the user to make a payment with + type: array + items: + type: string + enum: + - card + - bank + - ussd + - qr + - eft + - mobile_money + - bank_transfer + callback_url: + description: | + Fully qualified url, e.g. https://example.com/ to redirect your customers to after a successful payment. Use this to override the callback url provided on the dashboard for this transaction + type: string + plan: + description: | + If transaction is to create a subscription to a predefined plan, provide plan code here. + This would invalidate the value provided in amount + type: string + invoice_limit: + description: Number of times to charge customer during subscription to plan + type: integer + split_code: + description: The split code of the transaction split + type: string + split: + $ref: '#/components/schemas/SplitCreate' + subaccount: + description: The code for the subaccount that owns the payment + type: string + transaction_charge: + description: | + A flat fee to charge the subaccount for a transaction. + This overrides the split percentage set when the subaccount was created + type: string + bearer: + description: The bearer of the transaction charge + type: string + enum: + - account + - subaccount + label: + description: Used to replace the email address shown on the Checkout + type: string + metadata: + description: JSON object of custom data + type: object + example: + email: test@demo.com + amount: 10000 + TransactionInitializeResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object properties: - email: - description: Customer's email address + authorization_url: type: string - - type: object + access_code: + type: string + reference: + type: string + required: + - authorization_url + - access_code + - reference + required: + - status + - message + - data + ErrorMeta: + type: object + description: Extra details to help with a resolution of the error + properties: + nextStep: + type: string + description: A summarised solution for the error + TransactionInitializeBadRequestModel: + type: object + description: | + Error response returned when a transaction is initialized with incorrect parameters + properties: + status: + type: boolean + description: An indicator for the state of the request + message: + type: string + description: A short description of the error + meta: + $ref: '#/components/schemas/ErrorMeta' + type: + type: string + description: A tag to indicate the type of the error + enum: + - validation_error + - processor_error + - api_error + code: + type: string + description: The error code + errorCodeMappingNotFound: + type: boolean + description: An indicator for error mapping for the request + example: + status: false + message: Duplicate Transaction Reference + meta: + nextStep: Try and create the Transaction or Charge with a new reference + type: validation_error + code: duplicate_reference + errorCodeMappingNotFound: false + Error: + type: object + properties: + status: + type: boolean + description: An indicator for the state of the request + message: + type: string + description: A short description of the error + meta: + $ref: '#/components/schemas/ErrorMeta' + type: + type: string + description: A tag to indicate the type of the error + code: + type: string + description: The error code + enum: + - validation_error + - processor_error + - api_error + errorCodeMappingNotFound: + type: boolean + description: An indicator for error mapping for the request + TransactionChargeAuthorization: + type: object + required: + - email + - amount + - authorization_code + properties: + email: + description: Customer's email address + type: string + amount: + description: Amount in the lower denomination of your currency + type: integer + authorization_code: + description: Valid authorization code to charge + type: string + reference: + description: Unique transaction reference. Only -, ., = and alphanumeric characters allowed. + type: string + currency: + $ref: '#/components/schemas/Currency' + split_code: + description: The split code of the transaction split + type: string + split: + $ref: '#/components/schemas/SplitCreate' + subaccount: + description: The code for the subaccount that owns the payment + type: string + transaction_charge: + description: |- + A flat fee to charge the subaccount for a transaction. + This overrides the split percentage set when the subaccount was created + type: string + bearer: + description: The bearer of the transaction charge + type: string + enum: + - account + - subaccount + metadata: + description: Stringified JSON object of custom data + type: string + queue: + description: If you are making a scheduled charge call, it is a good idea to queue them so the processing system does not get overloaded causing transaction processing errors. + type: boolean + example: + email: jb@email.com + amount: 30000 + authorization_code: AUTH_df1l5ehnym + ChargeAuthorizationResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object properties: - first_name: - description: Customer's first name + amount: + type: integer + currency: + type: string + transaction_date: type: string - example: Some - last_name: - description: Customer's last name + status: type: string - example: Body - phone: - description: Customer's phone number + reference: + type: string + domain: type: string - example: '+2348123456789' metadata: - description: Stringified JSON object of custom data type: string - - type: object + gateway_response: + type: string + message: + type: string + nullable: true + channel: + type: string + ip_address: + nullable: true + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + nullable: true + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + metadata: + type: object + properties: + calling_code: + type: string + nullable: true + risk_action: + type: string + international_format_phone: + type: string + nullable: true + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + nullable: true + id: + type: integer required: - - authorization_code + - amount + - currency + - transaction_date + - status + - reference + - domain + - metadata + - gateway_response + - message + - channel + - ip_address + - log + - fees + - authorization + - customer + - plan + - id + required: + - status + - message + - data + VerificationResolveAccountNumberResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object properties: - authorization_code: - description: Customer's authorization code to be deactivated + account_number: type: string - - type: object + account_name: + type: string + bank_id: + type: integer required: - - customer + - account_number + - account_name + - bank_id + required: + - status + - message + - data + TransferRecipientListResponseArray: + type: object + properties: + active: + type: boolean + createdAt: + type: string + currency: + type: string + description: + type: string + domain: + type: string + email: + type: string + nullable: true + id: + type: integer + integration: + type: integer + metadata: + type: object + nullable: true + name: + type: string + recipient_code: + type: string + type: + type: string + updatedAt: + type: string + is_deleted: + type: boolean + isDeleted: + type: boolean + details: + type: object properties: - customer: - description: 'Customer''s code, or email address' + authorization_code: + type: string + nullable: true + account_number: type: string - risk_action: - description: | - One of the possible risk actions [ default, allow, deny ]. allow to whitelist. - deny to blacklist. Customers start with a default risk action. + nullable: true + account_name: + type: string + nullable: true + bank_code: + type: string + bank_name: type: string - enum: - - default - - allow - - deny - - type: object required: - - type - - country - - bvn - - bank_code + - authorization_code - account_number + - account_name + - bank_code + - bank_name + required: + - active + - createdAt + - currency + - description + - domain + - email + - id + - integration + - name + - recipient_code + - type + - updatedAt + - is_deleted + - isDeleted + - details + TransferRecipientListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/TransferRecipientListResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + TransferRecipientCreate: + type: object + required: + - type + - name + - account_number + - bank_code + properties: + type: + description: Recipient Type + default: nuban + type: string + name: + description: Recipient's name + type: string + account_number: + description: Recipient's bank account number + type: string + bank_code: + description: Recipient's bank code. You can get the list of Bank Codes by calling the List Banks endpoint + type: string + description: + description: A description for this recipient + type: string + currency: + description: Currency for the account receiving the transfer + type: string + authorization_code: + description: An authorization code from a previous transaction + type: string + metadata: + description: JSON object of custom data + type: object + TransferRecipientCreateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object properties: + active: + type: boolean + createdAt: + type: string + currency: + type: string + description: + type: string + domain: + type: string + email: + type: string + id: + type: integer + integration: + type: integer + metadata: + type: object + nullable: true + name: + type: string + recipient_code: + type: string type: - description: Predefined types of identification. type: string - enum: - - bvn - - bank_account - country: - description: Two-letter country code of identification issuer - type: string - example: NG - bvn: - description: Customer's Bank Verification Number + updatedAt: + type: string + is_deleted: + type: boolean + isDeleted: + type: boolean + details: + type: object + properties: + authorization_code: + type: string + nullable: true + account_number: + type: string + nullable: true + account_name: + type: string + nullable: true + bank_code: + type: string + bank_name: + type: string + required: + - authorization_code + - account_number + - account_name + - bank_code + - bank_name + required: + - active + - createdAt + - currency + - description + - domain + - email + - id + - integration + - name + - recipient_code + - type + - updatedAt + - is_deleted + - isDeleted + - details + required: + - status + - message + - data + TransferListResponseArray: + type: object + properties: + amount: + type: integer + createdAt: + type: string + currency: + type: string + domain: + type: string + failures: + nullable: true + id: + type: integer + integration: + type: integer + reason: + type: string + reference: + type: string + source: + type: string + source_details: + nullable: true + status: + type: string + titan_code: + nullable: true + transfer_code: + type: string + request: + type: integer + transferred_at: + nullable: true + updatedAt: + type: string + recipient: + type: object + properties: + active: + type: boolean + createdAt: + type: string + currency: + type: string + description: + type: string + domain: + type: string + email: + type: string + id: type: integer - example: 0123456789 - bank_code: - description: 'You can get the list of bank codes by calling the List Banks endpoint (https://api.paystack.co/bank).' + integration: + type: integer + metadata: + type: object + nullable: true + name: type: string - example: '007' - account_number: - description: Customer's bank account number. + recipient_code: type: string - example: '0111111111' - first_name: - description: Customer's first name + type: type: string - example: Uchenna - last_name: - description: Customer's last name + updatedAt: type: string - example: Okoro - Error: + is_deleted: + type: boolean + isDeleted: + type: boolean + details: + type: object + properties: + authorization_code: + nullable: true + account_number: + type: string + account_name: + type: string + nullable: true + bank_code: + type: string + bank_name: + type: string + required: + - authorization_code + - account_number + - account_name + - bank_code + - bank_name + required: + - active + - createdAt + - currency + - description + - domain + - email + - id + - integration + - name + - recipient_code + - type + - updatedAt + - is_deleted + - isDeleted + - details + session: + type: object + properties: + provider: + nullable: true + id: + nullable: true + required: + - provider + - id + fee_charged: + type: integer + fees_breakdown: + type: integer + nullable: true + required: + - amount + - createdAt + - currency + - domain + - failures + - id + - integration + - reason + - reference + - source + - source_details + - status + - titan_code + - request + - transfer_code + - transferred_at + - updatedAt + - recipient + - session + - fee_charged + - fees_breakdown + TransferListResponse: type: object properties: status: type: boolean message: type: string - Response: + data: + type: array + items: + $ref: '#/components/schemas/TransferListResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + TransferBase: + type: object + required: + - amount + - recipient + - reference + properties: + amount: + description: Amount to transfer in kobo if currency is NGN and pesewas if currency is GHS. + type: integer + recipient: + description: The transfer recipient's code + type: string + reference: + description: | + To ensure idempotency, you need to provide e a unique identifier for the request. The identifier should be a lowercase alphanumeric string with only -,_ symbols allowed. + type: string + minimum: 16 + reason: + description: The reason or narration for the transfer. + type: string + TransferInitiate: + description: Transfer initiation model + allOf: + - $ref: '#/components/schemas/TransferBase' + - type: object + required: + - source + - amount + - recipient + - reference + properties: + source: + description: The origin of the funds to send from + type: string + default: balance + currency: + description: Specify the currency of the transfer. + type: string + default: NGN + enum: + - NGN + - ZAR + - KES + - GHS + TransferCreateResponse: type: object properties: status: @@ -583,35 +1227,81 @@ components: type: string data: type: object + properties: + transfersessionid: + type: array + items: {} + transfertrials: + type: array + items: {} + domain: + type: string + amount: + type: integer + currency: + type: string + reference: + type: string + source: + type: string + source_details: + nullable: true + reason: + type: string + status: + type: string + failures: + nullable: true + transfer_code: + type: string + titan_code: + nullable: true + transferred_at: + nullable: true + id: + type: integer + integration: + type: integer + request: + type: integer + recipient: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - transfersessionid + - transfertrials + - domain + - amount + - currency + - reference + - source + - source_details + - reason + - status + - failures + - transfer_code + - titan_code + - transferred_at + - id + - integration + - request + - recipient + - createdAt + - updatedAt + required: + - status + - message + - data responses: - Ok: - description: Successful operation - content: - application/json: - schema: - type: object - properties: - status: - type: boolean - message: - type: string - data: - type: object - Created: - description: Resource created - content: - application/json: - schema: - $ref: '#/components/schemas/Response' - NotFound: - description: Entity not found + TransactionInitializeBadRequestResponse: + description: Responses from the Transaction Initialize endpoint content: application/json: schema: - $ref: '#/components/schemas/Error' - example: - status: false - message: Entity not found + $ref: '#/components/schemas/TransactionInitializeBadRequestModel' Unauthorized: description: Unauthorized operation content: @@ -621,11 +1311,18 @@ components: example: status: false message: Invalid key - GeneralError: - description: General Error + VerificationResolveAccountNumberSuccess: + description: Verification Resolve Account Number response + content: + application/json: + schema: + $ref: '#/components/schemas/VerificationResolveAccountNumberResponse' + NotFound: + description: Entity not found content: application/json: schema: $ref: '#/components/schemas/Error' -security: - - bearerAuth: [] + example: + status: false + message: Entity not found diff --git a/dist/wallet.yaml b/dist/wallet.yaml index e658f23..1893856 100644 --- a/dist/wallet.yaml +++ b/dist/wallet.yaml @@ -1,21 +1,35 @@ openapi: 3.0.1 info: title: Create a wallet app - description: |- + description: | The OpenAPI specification for creating a wallet application using the [Paystack API](https://paystack.com/docs/api/). + ### Prerequisites + 1. Sign up on [Paystack](https://paystack.com/signup) to get your secret API key + 2. Set your API key as an environment variable on [Postman](https://learning.postman.com/docs/sending-requests/variables/) - After setting up your secret API key, use the [Customers API](https://paystack.com/docs/api/#customer) to create and validate a customer. You then assign a [Dedicated Virtual Account](https://paystack.com/docs/payments/dedicated-virtual-accounts) to the customer. + + After setting up your secret API key, use the [Customers API](https://paystack.com/docs/api/#customer) to create and validate a customer. + You then assign a [Dedicated Virtual Account](https://paystack.com/docs/payments/dedicated-virtual-accounts) to the customer. + Transfers in this case refer to moving money to bank accounts and mobile money accounts using our [Transfers API](https://paystack.com/docs/transfers) rather than other wallet users. + *Dedicated Virtual Account is currently available for [registered businesses](https://support.paystack.com/hc/en-us/articles/360009881220-How-do-I-activate-my-Paystack-Registered-Business-) in Nigeria.* version: 1.0.0 + contact: + email: devrel@paystack.com + license: + name: MIT + url: https://choosealicense.com/licenses/mit/ servers: - - url: 'https://api.paystack.co' + - url: https://api.paystack.co description: Base API endpoint +security: + - bearerAuth: [] paths: /transaction/initialize: post: @@ -26,112 +40,23 @@ paths: description: Create a new transaction requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1transaction~1initialize/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - email - - amount - properties: - email: - description: Customer's email address - type: string - example: person@email.com - amount: - description: 'Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR' - type: integer - example: 10247 - currency: - description: The transaction currency - type: string - enum: - - NGN - - GHS - - ZAR - - USD - reference: - description: 'Unique transaction reference. Only -, ., = and alphanumeric characters allowed.' - type: string - example: 123.uniq=ref- - callback_url: - description: Fully qualified url. Use this to override the callback url provided on the dashboard for this transaction - type: string - example: 'https://example.com/' - plan: - description: |- - If transaction is to create a subscription to a predefined plan, provide plan code here. - This would invalidate the value provided in amount - type: string - example: PLN_123wede - invoice_limit: - description: Number of times to charge customer during subscription to plan - type: integer - example: 10 - metadata: - description: Stringified JSON object of custom data - type: object - example: - metadata: - cart_id: 398 - custom_fields: - - display_name: Invoice ID - variable_name: Invoice ID - value: 209 - - display_name: Cart Items - variable_name: cart_items - value: '3 bananas, 12 mangoes' - channels: - description: An array of payment channels to control what channels you want to make available to the user to make a payment with - type: array - enum: - - card - - bank - - ussd - - qr - - eft - - mobile_money - - bank_transfer - split_code: - description: The split code of the transaction split - type: string - example: SPL_123AbZ - subaccount: - description: The code for the subaccount that owns the payment - type: string - example: ACCT_23abcdefgh - transaction_charge: - description: |- - A flat fee to charge the subaccount for a transaction. - This overrides the split percentage set when the subaccount was created - type: integer - example: 12300 - bearer: - description: The bearer of the transaction charge - type: string - enum: - - account - - subaccount + $ref: '#/components/schemas/TransactionInitialize' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransactionInitialize' responses: '200': - description: Request successful + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Initiailize Transaction: - value: - status: true - message: Authorization URL created - data: - authorization_url: 'https://checkout.paystack.com/spnajmit2hgi2c1' - access_code: spandaoende - reference: ad123ada + $ref: '#/components/schemas/TransactionInitializeResponse' + '400': + $ref: '#/components/responses/TransactionInitializeBadRequestResponse' '401': - $ref: '#/paths/~1customer/post/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error /transaction/charge_authorization: @@ -142,102 +67,21 @@ paths: operationId: transaction_chargeAuthorization requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1transaction~1charge_authorization/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - email - - amount - - authorization_code - properties: - email: - description: Customer's email address used during the first transaction - type: string - example: person@email.com - amount: - description: 'Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR' - type: integer - example: 10247 - authorization_code: - description: Valid authorization code to charge - type: string - example: AUTH_CODE - reference: - description: 'Unique transaction reference. Only -, ., = and alphanumeric characters allowed.' - type: string - example: 123.uniq=ref-2 - currency: - description: The transaction currency - type: string - enum: - - NGN - - GHS - - ZAR - - USD - metadata: - description: Stringified JSON object of custom data - type: object - example: - cart_id: 398 - custom_fields: - - display_name: Invoice ID - variable_name: Invoice ID - value: 209 - - display_name: Cart Items - variable_name: cart_items - value: '3 bananas, 12 mangoes' - split_code: - description: The split code of the transaction split - type: string - example: SPL_123AbZ - subaccount: - description: The code for the subaccount that owns the payment - type: string - example: ACCT_23abcdefgh - transaction_charge: - description: |- - A flat fee to charge the subaccount for a transaction. - This overrides the split percentage set when the subaccount was created - type: integer - example: 12300 - bearer: - description: The bearer of the transaction charge - type: string - enum: - - account - - subaccount - queue: - description: 'If you are making a scheduled charge call, it is a good idea to queue them so the processing system does not get overloaded causing transaction processing errors.' - type: boolean + $ref: '#/components/schemas/TransactionChargeAuthorization' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransactionChargeAuthorization' responses: '200': - description: Request successful + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Charge Authorization: - value: - status: true - message: Charge attempted - data: - amount: 500000 - currency: NGN - reference: 123.uniq=ref-2 - metadata: - cart_id: 398 - custom_fields: - - display_name: Invoice ID - variable_name: Invoice ID - value: 209 - split_code: SPL_123AbZ - subaccount: ACCT_23abcdefgh + $ref: '#/components/schemas/ChargeAuthorizationResponse' '401': - $ref: '#/paths/~1customer/post/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error /customer: @@ -248,73 +92,83 @@ paths: operationId: customer_create requestBody: content: - application/x-www-form-urlencoded: - schema: - allOf: - - $ref: '#/components/schemas/Customer/allOf/0' - - $ref: '#/components/schemas/Customer/allOf/1' application/json: schema: - allOf: - - $ref: '#/components/schemas/Customer/allOf/0' - - $ref: '#/components/schemas/Customer/allOf/1' + $ref: '#/components/schemas/CustomerCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CustomerCreate' responses: '200': - description: Customer Created + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Create Customer: - value: - status: true - message: Customer created - data: - transactions: [] - subscriptions: [] - authorizations: [] - email: somebody@example.com - first_name: Some - last_name: Body - phone: '+2348123456789' - integration: 463433 - domain: test - metadata: {} - customer_code: CUS_pztcpsx5kng2fbk - risk_action: default - id: 95485991 - createdAt: '2022-09-20T12:52:10.583Z' - updatedAt: '2022-09-20T12:52:10.583Z' - identified: false - identifications: [] + $ref: '#/components/schemas/CustomerCreateResponse' '401': - description: Unauthorized operation + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + get: + tags: + - Customer + summary: List Customers + operationId: customer_list + description: List customers on your integration + parameters: + - name: use_cursor + description: A flag to indicate if cursor based pagination should be used + in: query + schema: + type: boolean + - name: next + description: | + An alphanumeric value returned for every cursor based retrieval, used to retrieve the next set of data + in: query + schema: + type: string + - name: previous + description: | + An alphanumeric value returned for every cursor based retrieval, used to retrieve the previous set of data + in: query + schema: + type: string + - name: from + description: The start date + in: query + schema: + type: string + format: date-time + - name: to + description: The end date + in: query + schema: + type: string + format: date-time + - name: perPage + description: The number of records to fetch per request + in: query + schema: + type: string + - name: page + in: query + description: The offset to retrieve data from + schema: + type: string + responses: + '200': + description: '' content: application/json: - examples: - No-Authorization-Header: - value: - status: false - message: No Authorization Header was found - Bad-Authorization-Header: - value: - status: false - message: 'Format is Authorization Bearer [secret key]' - Invalid-Key: - value: - status: false - message: Invalid key schema: - type: object - properties: - status: - type: boolean - message: - type: string + $ref: '#/components/schemas/CustomerListResponse' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' default: description: Server error - '/customer/{code}/identification': + /customer/{code}/identification: parameters: - name: code in: path @@ -325,30 +179,25 @@ paths: tags: - Customer summary: Validate Customer - operationId: customer_validatte + operationId: customer_validate description: Validate a customer's identity requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/Customer/allOf/4' application/json: schema: - $ref: '#/components/schemas/Customer/allOf/4' + $ref: '#/components/schemas/CustomerValidate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CustomerValidate' responses: '202': - description: Customer Validation + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Validate Customer: - value: - status: true - message: Customer Identification in progress + $ref: '#/components/schemas/CustomerValidateResponse' '401': - $ref: '#/paths/~1customer/post/responses/401' + $ref: '#/components/responses/Unauthorized' default: description: Server error /dedicated_account: @@ -359,74 +208,72 @@ paths: operationId: dedicatedAccount_create requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1dedicated_account/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - customer - properties: - customer: - description: Customer ID or code - type: string - example: CUS_abc123der - preferred_bank: - description: 'The bank slug for preferred bank. To get a list of available banks, use the List Providers endpoint' - type: string - example: wema-bank - subaccount: - description: Subaccount code of the account you want to split the transaction with - type: string - example: ACCT_123455asdin - split_code: - description: Split code consisting of the lists of accounts you want to split the transaction with - type: string - example: SPL_123asbde + $ref: '#/components/schemas/DedicatedVirtualAccountCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/DedicatedVirtualAccountCreate' + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/DedicatedNubanCreateResponse' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + get: + tags: + - Dedicated Virtual Account + summary: List Dedicated Accounts + operationId: dedicatedAccount_list + parameters: + - name: account_number + in: query + schema: + type: string + - name: customer + in: query + schema: + type: string + - name: active + in: query + schema: + type: boolean + - name: currency + in: query + schema: + type: string + - name: provider_slug + in: query + schema: + type: string + - name: bank_id + in: query + schema: + type: string + - name: perPage + in: query + schema: + type: string + - name: page + in: query + schema: + type: string responses: '200': - description: Creation Successful + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Create Dedicated Account: - value: - status: true - message: NUBAN successfully created - data: - bank: - name: Wema Bank - id: 20 - slug: wema-bank - account_name: KAROKART / RHODA CHURCH - account_number: 9930000737 - assigned: true - currency: NGN - metadata: null - active: true - id: 253 - created_at: 2019-12-12T12:39:04.000Z - updated_at: 2020-01-06T15:51:24.000Z - assignment: - integration: 100043 - assignee_id: 7454289 - assignee_type: Customer - expired: false - account_type: PAY-WITH-TRANSFER-RECURRING - assigned_at: 2020-01-06T15:51:24.764Z - customer: - id: 7454289 - first_name: RHODA - last_name: CHURCH - email: rhodachurch@email.com - customer_code: CUS_kpb3qj71u1m0rw8 - phone: 2349053267565 - risk_action: default + $ref: '#/components/schemas/DedicatedNubanListResponse' '401': - $ref: '#/paths/~1customer/post/responses/401' + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' default: description: Server error /transferrecipient: @@ -437,94 +284,67 @@ paths: operationId: transferrecipient_create requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1transferrecipient/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - type - - name - - account_number - - bank_code - properties: - type: - description: 'Recipient Type - nuban for NGN, mobile_money for MOMO in GHS, basa for ZAR and authorization for all.' - type: string - enum: - - nuban - - mobile_money - - basa - - authorization - name: - description: Recipient's name - type: string - example: Ada Lovelace - account_number: - description: Recipient's bank account number - type: string - example: '0000000000' - bank_code: - description: Recipient's bank code. You can get the list of Bank Codes by calling the List Banks endpoint - type: string - example: '011' - description: - description: A description for this recipient - type: string - example: Keeps our servers running - currency: - description: Currency for the account receiving the transfer - type: string - enum: - - NGN - - GHS - - ZAR - - KES - authorization_code: - description: An authorization code from a previous transaction - type: string - example: AUTH_CODE - metadata: - description: Stringified JSON object of custom data - type: string - example: | - {referrer_id: 123} + $ref: '#/components/schemas/TransferRecipientCreate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferRecipientCreate' responses: '201': - description: Transfer Recipient Created + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TransferRecipientCreateResponse' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + get: + tags: + - Transfer Recipient + summary: List Transfer Recipients + operationId: transferrecipient_list + parameters: + - in: query + name: use_cursor + description: A flag to indicate if cursor based pagination should be used + schema: + type: boolean + - in: query + name: next + description: | + An alphanumeric value returned for every cursor based retrieval, used to retrieve the next set of data + schema: + type: string + - in: query + name: previous + description: | + An alphanumeric value returned for every cursor based retrieval, used to retrieve the previous set of data + schema: + type: string + - in: query + name: per_page + schema: + type: integer + description: The number of records to fetch per request + - in: query + name: page + schema: + type: integer + description: The offset to retrieve data from + responses: + '200': + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Create Customer: - value: - status: true - message: Transfer recipient created successfully - data: - active: true - createdAt: 2022-09-16T08:31:43.321Z - currency: NGN - domain: live - id: 38770134 - integration: 463433 - metadata: - referrer_id: 123 - name: Ada Lovelace - recipient_code: RCP_2fl8jmb2v3kbleb - type: nuban - updatedAt: 2022-09-16T08:31:43.321Z - is_deleted: false - isDeleted: false - details: - authorization_code: null - account_number: 0 - account_name: Doe Jane Loren - bank_code: 9 - bank_name: First Bank of Nigeria + $ref: '#/components/schemas/TransferRecipientListResponse' '401': - $ref: '#/paths/~1customer/post/responses/401' + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' default: description: Server error /transfer: @@ -535,75 +355,100 @@ paths: operationId: transfer_initiate requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '#/paths/~1transfer/post/requestBody/content/application~1json/schema' application/json: schema: - type: object - required: - - source - - amount - - recipient - properties: - source: - description: Where should we transfer from? Only balance is allowed for now - type: string - example: balance - amount: - description: Amount to transfer in kobo if currency is NGN. pesewas if currency is GHS and cents for ZAR. - type: integer - example: 10234 - recipient: - description: The transfer recipient's code - type: string - example: RCP_CODE - reason: - description: The reason or narration for the transfer. - type: string - example: Good job - currency: - description: Specify the currency of the transfer. Defaults to NGN. - type: string - reference: - description: |- - If specified, the field should be a unique identifier (in lowercase) for the object. - Only -,_ and alphanumeric characters are allowed. - type: string - example: Transfer-123_unique + $ref: '#/components/schemas/TransferInitiate' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TransferInitiate' + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/TransferCreateResponse' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + get: + tags: + - Transfer + summary: List Transfers + operationId: transfer_list + parameters: + - in: query + name: use_cursor + description: A flag to indicate if cursor based pagination should be used + schema: + type: boolean + - in: query + name: next + description: | + An alphanumeric value returned for every cursor based retrieval, used to retrieve the next set of data + schema: + type: string + - in: query + name: previous + description: | + An alphanumeric value returned for every cursor based retrieval, used to retrieve the previous set of data + schema: + type: string + - in: query + name: per_page + schema: + type: integer + description: The number of records to fetch per request + - in: query + name: page + schema: + type: integer + description: The offset to retrieve data from + - in: query + name: from + description: The start date + schema: + type: string + format: date-time + - in: query + name: to + description: The end date + schema: + type: string + format: date-time + - in: query + name: recipient + description: Filter transfer by the recipient code + schema: + type: string + - in: query + name: status + description: Filter transfer by status + schema: + type: string + default: pending + enum: + - pending + - success + - failed + - otp + - abandoned + - reversed + - blocked + - rejected + - received responses: '200': - description: Request successful + description: '' content: application/json: schema: - $ref: '#/components/responses/Ok/content/application~1json/schema' - examples: - Initiate Transfer: - value: - status: true - message: Transfer has been queued - data: - reference: on5hyz9poe - integration: 428626 - domain: test - amount: 3794800 - currency: NGN - source: balance - reason: Holiday Flexing - recipient: 6788170 - status: success - transfer_code: TRF_fiyxvgkh71e717b - id: 23070321 - failures: null - source_details: null - request: 654770431 - transferred_at: 2020-05-13T14:22:49.687Z - transfersessionid: [] - createdAt: 2020-05-13T14:22:49.687Z - updatedAt: 2020-05-13T14:22:49.687Z + $ref: '#/components/schemas/TransferListResponse' '401': - $ref: '#/paths/~1customer/post/responses/401' + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' default: description: Server error components: @@ -612,138 +457,1464 @@ components: type: http scheme: bearer schemas: - Customer: - allOf: - - type: object - required: - - email - properties: - email: - description: Customer's email address - type: string - - type: object - properties: - first_name: - description: Customer's first name - type: string - example: Some - last_name: - description: Customer's last name - type: string - example: Body - phone: - description: Customer's phone number - type: string - example: '+2348123456789' - metadata: - description: Stringified JSON object of custom data - type: string - - type: object - required: - - authorization_code + Currency: + description: List of all support currencies + type: string + enum: + - GHS + - KES + - NGN + - ZAR + - USD + example: GHS + SplitSubaccounts: + type: object + properties: + subaccount: + description: Subaccount code of the customer or partner + type: string + share: + description: The percentage or flat quota of the customer or partner + type: string + SplitCreate: + type: object + description: | + Split configuration for transactions + properties: + name: + description: Name of the transaction split + type: string + type: + description: The type of transaction split you want to create. + type: string + enum: + - percentage + - flat + subaccounts: + description: A list of object containing subaccount code and number of shares + type: array + items: + $ref: '#/components/schemas/SplitSubaccounts' + currency: + description: The transaction currency + type: string + enum: + - NGN + - GHS + - ZAR + - USD + bearer_type: + description: This allows you specify how the transaction charge should be processed + type: string + enum: + - subaccount + - account + - all-proportional + - all + bearer_subaccount: + description: This is the subaccount code of the customer or partner that would bear the transaction charge if you specified subaccount as the bearer type + type: string + required: + - name + - type + - subaccounts + - currency + TransactionInitialize: + description: Initialize a transaction + type: object + required: + - email + - amount + properties: + email: + description: Customer's email address + type: string + amount: + description: | + Amount should be in smallest denomination of the currency. For example if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR + type: integer + currency: + $ref: '#/components/schemas/Currency' + reference: + description: Unique transaction reference. Only -, ., = and alphanumeric characters allowed. + type: string + channels: + description: An array of payment channels to control what channels you want to make available to the user to make a payment with + type: array + items: + type: string + enum: + - card + - bank + - ussd + - qr + - eft + - mobile_money + - bank_transfer + callback_url: + description: | + Fully qualified url, e.g. https://example.com/ to redirect your customers to after a successful payment. Use this to override the callback url provided on the dashboard for this transaction + type: string + plan: + description: | + If transaction is to create a subscription to a predefined plan, provide plan code here. + This would invalidate the value provided in amount + type: string + invoice_limit: + description: Number of times to charge customer during subscription to plan + type: integer + split_code: + description: The split code of the transaction split + type: string + split: + $ref: '#/components/schemas/SplitCreate' + subaccount: + description: The code for the subaccount that owns the payment + type: string + transaction_charge: + description: | + A flat fee to charge the subaccount for a transaction. + This overrides the split percentage set when the subaccount was created + type: string + bearer: + description: The bearer of the transaction charge + type: string + enum: + - account + - subaccount + label: + description: Used to replace the email address shown on the Checkout + type: string + metadata: + description: JSON object of custom data + type: object + example: + email: test@demo.com + amount: 10000 + TransactionInitializeResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object properties: - authorization_code: - description: Customer's authorization code to be deactivated + authorization_url: type: string - - type: object - required: - - customer - properties: - customer: - description: 'Customer''s code, or email address' + access_code: type: string - risk_action: - description: | - One of the possible risk actions [ default, allow, deny ]. allow to whitelist. - deny to blacklist. Customers start with a default risk action. + reference: type: string - enum: - - default - - allow - - deny - - type: object required: - - type - - country - - bvn - - bank_code - - account_number - properties: - type: - description: Predefined types of identification. - type: string - enum: - - bvn - - bank_account - country: - description: Two-letter country code of identification issuer - type: string - example: NG - bvn: - description: Customer's Bank Verification Number - type: integer - example: 0123456789 - bank_code: - description: 'You can get the list of bank codes by calling the List Banks endpoint (https://api.paystack.co/bank).' - type: string - example: '007' - account_number: - description: Customer's bank account number. - type: string - example: '0111111111' - first_name: - description: Customer's first name - type: string - example: Uchenna - last_name: - description: Customer's last name - type: string - example: Okoro - Error: + - authorization_url + - access_code + - reference + required: + - status + - message + - data + ErrorMeta: + type: object + description: Extra details to help with a resolution of the error + properties: + nextStep: + type: string + description: A summarised solution for the error + TransactionInitializeBadRequestModel: type: object + description: | + Error response returned when a transaction is initialized with incorrect parameters properties: status: type: boolean + description: An indicator for the state of the request message: type: string - Response: + description: A short description of the error + meta: + $ref: '#/components/schemas/ErrorMeta' + type: + type: string + description: A tag to indicate the type of the error + enum: + - validation_error + - processor_error + - api_error + code: + type: string + description: The error code + errorCodeMappingNotFound: + type: boolean + description: An indicator for error mapping for the request + example: + status: false + message: Duplicate Transaction Reference + meta: + nextStep: Try and create the Transaction or Charge with a new reference + type: validation_error + code: duplicate_reference + errorCodeMappingNotFound: false + Error: type: object properties: status: type: boolean + description: An indicator for the state of the request message: type: string - data: - type: object - responses: - Ok: - description: Successful operation - content: - application/json: - schema: - type: object - properties: - status: - type: boolean - message: - type: string - data: - type: object - Created: - description: Resource created - content: - application/json: - schema: - $ref: '#/components/schemas/Response' - NotFound: - description: Entity not found + description: A short description of the error + meta: + $ref: '#/components/schemas/ErrorMeta' + type: + type: string + description: A tag to indicate the type of the error + code: + type: string + description: The error code + enum: + - validation_error + - processor_error + - api_error + errorCodeMappingNotFound: + type: boolean + description: An indicator for error mapping for the request + TransactionChargeAuthorization: + type: object + required: + - email + - amount + - authorization_code + properties: + email: + description: Customer's email address + type: string + amount: + description: Amount in the lower denomination of your currency + type: integer + authorization_code: + description: Valid authorization code to charge + type: string + reference: + description: Unique transaction reference. Only -, ., = and alphanumeric characters allowed. + type: string + currency: + $ref: '#/components/schemas/Currency' + split_code: + description: The split code of the transaction split + type: string + split: + $ref: '#/components/schemas/SplitCreate' + subaccount: + description: The code for the subaccount that owns the payment + type: string + transaction_charge: + description: |- + A flat fee to charge the subaccount for a transaction. + This overrides the split percentage set when the subaccount was created + type: string + bearer: + description: The bearer of the transaction charge + type: string + enum: + - account + - subaccount + metadata: + description: Stringified JSON object of custom data + type: string + queue: + description: If you are making a scheduled charge call, it is a good idea to queue them so the processing system does not get overloaded causing transaction processing errors. + type: boolean + example: + email: jb@email.com + amount: 30000 + authorization_code: AUTH_df1l5ehnym + ChargeAuthorizationResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + amount: + type: integer + currency: + type: string + transaction_date: + type: string + status: + type: string + reference: + type: string + domain: + type: string + metadata: + type: string + gateway_response: + type: string + message: + type: string + nullable: true + channel: + type: string + ip_address: + nullable: true + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + nullable: true + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + metadata: + type: object + properties: + calling_code: + type: string + nullable: true + risk_action: + type: string + international_format_phone: + type: string + nullable: true + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + nullable: true + id: + type: integer + required: + - amount + - currency + - transaction_date + - status + - reference + - domain + - metadata + - gateway_response + - message + - channel + - ip_address + - log + - fees + - authorization + - customer + - plan + - id + required: + - status + - message + - data + CustomerListResponseArray: + type: object + properties: + integration: + type: integer + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + phone: + type: string + nullable: true + metadata: + type: object + nullable: true + domain: + type: string + customer_code: + type: string + risk_action: + type: string + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - integration + - first_name + - last_name + - email + - phone + - metadata + - domain + - customer_code + - risk_action + - id + - createdAt + - updatedAt + CustomerListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/CustomerListResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + anyOf: + - type: string + - type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + CustomerCreate: + type: object + required: + - email + properties: + email: + description: Customer's email address + type: string + first_name: + description: Customer's first name + type: string + last_name: + description: Customer's last name + type: string + phone: + description: Customer's phone number + type: string + metadata: + description: Stringified JSON object of custom data + type: string + CustomerCreateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + transactions: + type: array + items: {} + subscriptions: + type: array + items: {} + authorizations: + type: array + items: {} + email: + type: string + first_name: + type: string + last_name: + type: string + phone: + type: string + integration: + type: integer + domain: + type: string + metadata: + type: object + properties: + calling_code: + type: string + customer_code: + type: string + risk_action: + type: string + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + identified: + type: boolean + identifications: + nullable: true + required: + - transactions + - subscriptions + - authorizations + - email + - first_name + - last_name + - phone + - integration + - domain + - metadata + - customer_code + - risk_action + - id + - createdAt + - updatedAt + - identified + - identifications + required: + - status + - message + - data + CustomerValidate: + type: object + required: + - first_name + - last_name + - type + - country + - bvn + - bank_code + - account_number + properties: + first_name: + description: Customer's first name + type: string + middle_name: + description: Customer's middle name + type: string + last_name: + description: Customer's last name + type: string + type: + description: Predefined types of identification. + type: string + default: bank_account + value: + description: Customer's identification number. + type: string + country: + description: Two-letter country code of identification issuer + type: string + bvn: + description: Customer's Bank Verification Number + type: string + bank_code: + description: You can get the list of bank codes by calling the List Banks endpoint (https://api.paystack.co/bank). + type: string + account_number: + description: Customer's bank account number. + type: string + CustomerValidateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + DedicatedNubanListResponseArray: + type: object + properties: + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + risk_action: + type: string + international_format_phone: + type: string + nullable: true + bank: + type: object + properties: + name: + type: string + id: + type: integer + slug: + type: string + required: + - name + - id + - slug + id: + type: integer + account_name: + type: string + account_number: + type: string + created_at: + type: string + updated_at: + type: string + currency: + type: string + split_config: + type: object + properties: + subaccount: + type: string + required: + - subaccount + nullable: true + active: + type: boolean + assigned: + type: boolean + required: + - customer + - bank + - id + - account_name + - account_number + - created_at + - updated_at + - currency + - split_config + - active + - assigned + DedicatedNubanListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/DedicatedNubanListResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + DedicatedVirtualAccountCreate: + type: object + required: + - customer + properties: + customer: + description: Customer ID or code + type: string + preferred_bank: + description: The bank slug for preferred bank. To get a list of available banks, use the List Providers endpoint + type: string + subaccount: + description: Subaccount code of the account you want to split the transaction with + type: string + split_code: + description: Split code consisting of the lists of accounts you want to split the transaction with + type: string + DedicatedNubanCreateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + bank: + type: object + properties: + name: + type: string + id: + type: integer + slug: + type: string + required: + - name + - id + - slug + account_name: + type: string + account_number: + type: string + assigned: + type: boolean + currency: + type: string + metadata: + nullable: true + active: + type: boolean + id: + type: integer + created_at: + type: string + updated_at: + type: string + assignment: + type: object + properties: + integration: + type: integer + assignee_id: + type: integer + assignee_type: + type: string + expired: + type: boolean + account_type: + type: string + assigned_at: + type: string + expired_at: + nullable: true + required: + - integration + - assignee_id + - assignee_type + - expired + - account_type + - assigned_at + - expired_at + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + nullable: true + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + required: + - bank + - account_name + - account_number + - assigned + - currency + - metadata + - active + - id + - created_at + - updated_at + - assignment + - customer + required: + - status + - message + - data + TransferRecipientListResponseArray: + type: object + properties: + active: + type: boolean + createdAt: + type: string + currency: + type: string + description: + type: string + domain: + type: string + email: + type: string + nullable: true + id: + type: integer + integration: + type: integer + metadata: + type: object + nullable: true + name: + type: string + recipient_code: + type: string + type: + type: string + updatedAt: + type: string + is_deleted: + type: boolean + isDeleted: + type: boolean + details: + type: object + properties: + authorization_code: + type: string + nullable: true + account_number: + type: string + nullable: true + account_name: + type: string + nullable: true + bank_code: + type: string + bank_name: + type: string + required: + - authorization_code + - account_number + - account_name + - bank_code + - bank_name + required: + - active + - createdAt + - currency + - description + - domain + - email + - id + - integration + - name + - recipient_code + - type + - updatedAt + - is_deleted + - isDeleted + - details + TransferRecipientListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/TransferRecipientListResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + TransferRecipientCreate: + type: object + required: + - type + - name + - account_number + - bank_code + properties: + type: + description: Recipient Type + default: nuban + type: string + name: + description: Recipient's name + type: string + account_number: + description: Recipient's bank account number + type: string + bank_code: + description: Recipient's bank code. You can get the list of Bank Codes by calling the List Banks endpoint + type: string + description: + description: A description for this recipient + type: string + currency: + description: Currency for the account receiving the transfer + type: string + authorization_code: + description: An authorization code from a previous transaction + type: string + metadata: + description: JSON object of custom data + type: object + TransferRecipientCreateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + active: + type: boolean + createdAt: + type: string + currency: + type: string + description: + type: string + domain: + type: string + email: + type: string + id: + type: integer + integration: + type: integer + metadata: + type: object + nullable: true + name: + type: string + recipient_code: + type: string + type: + type: string + updatedAt: + type: string + is_deleted: + type: boolean + isDeleted: + type: boolean + details: + type: object + properties: + authorization_code: + type: string + nullable: true + account_number: + type: string + nullable: true + account_name: + type: string + nullable: true + bank_code: + type: string + bank_name: + type: string + required: + - authorization_code + - account_number + - account_name + - bank_code + - bank_name + required: + - active + - createdAt + - currency + - description + - domain + - email + - id + - integration + - name + - recipient_code + - type + - updatedAt + - is_deleted + - isDeleted + - details + required: + - status + - message + - data + TransferListResponseArray: + type: object + properties: + amount: + type: integer + createdAt: + type: string + currency: + type: string + domain: + type: string + failures: + nullable: true + id: + type: integer + integration: + type: integer + reason: + type: string + reference: + type: string + source: + type: string + source_details: + nullable: true + status: + type: string + titan_code: + nullable: true + transfer_code: + type: string + request: + type: integer + transferred_at: + nullable: true + updatedAt: + type: string + recipient: + type: object + properties: + active: + type: boolean + createdAt: + type: string + currency: + type: string + description: + type: string + domain: + type: string + email: + type: string + id: + type: integer + integration: + type: integer + metadata: + type: object + nullable: true + name: + type: string + recipient_code: + type: string + type: + type: string + updatedAt: + type: string + is_deleted: + type: boolean + isDeleted: + type: boolean + details: + type: object + properties: + authorization_code: + nullable: true + account_number: + type: string + account_name: + type: string + nullable: true + bank_code: + type: string + bank_name: + type: string + required: + - authorization_code + - account_number + - account_name + - bank_code + - bank_name + required: + - active + - createdAt + - currency + - description + - domain + - email + - id + - integration + - name + - recipient_code + - type + - updatedAt + - is_deleted + - isDeleted + - details + session: + type: object + properties: + provider: + nullable: true + id: + nullable: true + required: + - provider + - id + fee_charged: + type: integer + fees_breakdown: + type: integer + nullable: true + required: + - amount + - createdAt + - currency + - domain + - failures + - id + - integration + - reason + - reference + - source + - source_details + - status + - titan_code + - request + - transfer_code + - transferred_at + - updatedAt + - recipient + - session + - fee_charged + - fees_breakdown + TransferListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/TransferListResponseArray' + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + TransferBase: + type: object + required: + - amount + - recipient + - reference + properties: + amount: + description: Amount to transfer in kobo if currency is NGN and pesewas if currency is GHS. + type: integer + recipient: + description: The transfer recipient's code + type: string + reference: + description: | + To ensure idempotency, you need to provide e a unique identifier for the request. The identifier should be a lowercase alphanumeric string with only -,_ symbols allowed. + type: string + minimum: 16 + reason: + description: The reason or narration for the transfer. + type: string + TransferInitiate: + description: Transfer initiation model + allOf: + - $ref: '#/components/schemas/TransferBase' + - type: object + required: + - source + - amount + - recipient + - reference + properties: + source: + description: The origin of the funds to send from + type: string + default: balance + currency: + description: Specify the currency of the transfer. + type: string + default: NGN + enum: + - NGN + - ZAR + - KES + - GHS + TransferCreateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + transfersessionid: + type: array + items: {} + transfertrials: + type: array + items: {} + domain: + type: string + amount: + type: integer + currency: + type: string + reference: + type: string + source: + type: string + source_details: + nullable: true + reason: + type: string + status: + type: string + failures: + nullable: true + transfer_code: + type: string + titan_code: + nullable: true + transferred_at: + nullable: true + id: + type: integer + integration: + type: integer + request: + type: integer + recipient: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - transfersessionid + - transfertrials + - domain + - amount + - currency + - reference + - source + - source_details + - reason + - status + - failures + - transfer_code + - titan_code + - transferred_at + - id + - integration + - request + - recipient + - createdAt + - updatedAt + required: + - status + - message + - data + responses: + TransactionInitializeBadRequestResponse: + description: Responses from the Transaction Initialize endpoint content: application/json: schema: - $ref: '#/components/schemas/Error' - example: - status: false - message: Entity not found + $ref: '#/components/schemas/TransactionInitializeBadRequestModel' Unauthorized: description: Unauthorized operation content: @@ -753,11 +1924,12 @@ components: example: status: false message: Invalid key - GeneralError: - description: General Error + NotFound: + description: Entity not found content: application/json: schema: $ref: '#/components/schemas/Error' -security: - - bearerAuth: [] + example: + status: false + message: Entity not found diff --git a/main/examples/customer/create.yaml b/main/examples/customer/create.yaml deleted file mode 100644 index fe27af7..0000000 --- a/main/examples/customer/create.yaml +++ /dev/null @@ -1,21 +0,0 @@ -value: - status: true - message: Customer created - data: - transactions: [] - subscriptions: [] - authorizations: [] - email: somebody@example.com - first_name: Some - last_name: Body - phone: "+2348123456789" - integration: 463433 - domain: test - metadata: {} - customer_code: CUS_pztcpsx5kng2fbk - risk_action: default - id: 95485991 - createdAt: '2022-09-20T12:52:10.583Z' - updatedAt: '2022-09-20T12:52:10.583Z' - identified: false - identifications: [] diff --git a/main/examples/customer/validate.yaml b/main/examples/customer/validate.yaml deleted file mode 100644 index e933834..0000000 --- a/main/examples/customer/validate.yaml +++ /dev/null @@ -1,3 +0,0 @@ -value: - status: true - message: Customer Identification in progress \ No newline at end of file diff --git a/main/examples/dedicated-virtual-account/create.yaml b/main/examples/dedicated-virtual-account/create.yaml deleted file mode 100644 index e804042..0000000 --- a/main/examples/dedicated-virtual-account/create.yaml +++ /dev/null @@ -1,33 +0,0 @@ -value: - status: true - message: NUBAN successfully created - data: - bank: - name: Wema Bank - id: 20 - slug: wema-bank - account_name: KAROKART / RHODA CHURCH - account_number: 9930000737 - assigned: true - currency: NGN - metadata: null - active: true - id: 253 - created_at: 2019-12-12T12:39:04.000Z - updated_at: 2020-01-06T15:51:24.000Z - assignment: - integration: 100043 - assignee_id: 7454289 - assignee_type: Customer - expired: false - account_type: PAY-WITH-TRANSFER-RECURRING - assigned_at: 2020-01-06T15:51:24.764Z - customer: - id: 7454289 - first_name: RHODA - last_name: CHURCH - email: rhodachurch@email.com - customer_code: CUS_kpb3qj71u1m0rw8 - phone: +2349053267565 - risk_action: default - diff --git a/main/examples/plan/create.yaml b/main/examples/plan/create.yaml deleted file mode 100644 index 4028a9c..0000000 --- a/main/examples/plan/create.yaml +++ /dev/null @@ -1,21 +0,0 @@ -value: - status: true - message: Plan created - data: - name: My monthly membership - interval: monthly - amount: 20000 - description: Monthly membership payment plan - integration: 463433 - domain: test - currency: NGN - plan_code: PLN_y4y1wkydoptw6zv - invoice_limit: 0 - send_invoices: true - send_sms: true - hosted_page: false - migrate: false - is_archived: false - id: 393872 - createdAt: '2022-09-22T02:15:06.702Z' - updatedAt: '2022-09-22T02:15:06.702Z' \ No newline at end of file diff --git a/main/examples/refund/create.yaml b/main/examples/refund/create.yaml deleted file mode 100644 index ae7f095..0000000 --- a/main/examples/refund/create.yaml +++ /dev/null @@ -1,42 +0,0 @@ -value: - status: true - message: Refund has been queued for processing - data: - transaction: - id: 1004723697 - domain: test - reference: T685312322670591 - amount: 10000 - paid_at: '2021-08-20T18:34:11.000Z' - channel: apple_pay - currency: NGN - authorization: - exp_month: - exp_year: - account_name: - customer: - international_format_phone: - plan: {} - subaccount: - currency: - split: {} - order_id: - paidAt: '2021-08-20T18:34:11.000Z' - pos_transaction_data: - source: - fees_breakdown: - integration: 412829 - deducted_amount: 0 - channel: - merchant_note: Refund for transaction T685312322670591 by test@me.com - customer_note: Refund for transaction T685312322670591 - status: pending - refunded_by: test@me.com - expected_at: '2021-12-16T09:21:17.016Z' - currency: NGN - domain: live - amount: 10000 - fully_deducted: false - id: 3018284 - createdAt: '2021-12-07T09:21:17.122Z' - updatedAt: '2021-12-07T09:21:17.122Z' \ No newline at end of file diff --git a/main/examples/split/create.yaml b/main/examples/split/create.yaml deleted file mode 100644 index 3f215a3..0000000 --- a/main/examples/split/create.yaml +++ /dev/null @@ -1,44 +0,0 @@ -value: - status: true - message: Split created - data: - id: 142 - name: Test Doc - type: percentage - currency: NGN - integration: 428626 - domain: test - split_code: SPL_e7jnRLtzla - active: true - bearer_type: subaccount - bearer_subaccount: 40809 - createdAt: 2020-06-30T11:42:29.150Z - updatedAt: 2020-06-30T11:42:29.150Z - subaccounts: - - subaccount: - id: 40809 - subaccount_code: ACCT_z3x6z3nbo14xsil - business_name: Business Name - description: Business Description - primary_contact_name: null - primary_contact_email: null - primary_contact_phone: null - metadata: null - percentage_charge: 20 - settlement_bank: Business Bank - account_number: 1234567890 - share: 20 - - subaccount: - id: 40809 - subaccount_code: ACCT_pwwualwty4nhq9d - business_name: Business Name - description: Business Description - primary_contact_name: null - primary_contact_email: null - primary_contact_phone: null - metadata: null - percentage_charge: 20 - settlement_bank: Business Bank - account_number: 0123456789 - share: 30 - total_subaccounts: 2 \ No newline at end of file diff --git a/main/examples/subaccount/create.yaml b/main/examples/subaccount/create.yaml deleted file mode 100644 index a644d71..0000000 --- a/main/examples/subaccount/create.yaml +++ /dev/null @@ -1,18 +0,0 @@ -value: - status: true - message: Subaccount created - data: - business_name: Cheese Sticks - account_number: 0123456789 - percentage_charge: 0.2 - settlement_bank: Guaranty Trust Bank - integration: 428626 - domain: test - subaccount_code: ACCT_xxxxxxxxxxxxx - is_verified: false - settlement_schedule: AUTO - active: true - migrate: false - id: 37614 - createdAt: 2020-05-19T11:54:20.655Z - updatedAt: 2020-05-19T11:54:20.655Z \ No newline at end of file diff --git a/main/examples/subscription/create.yaml b/main/examples/subscription/create.yaml deleted file mode 100644 index aa146f1..0000000 --- a/main/examples/subscription/create.yaml +++ /dev/null @@ -1,23 +0,0 @@ -value: - status: true - message: Subscription successfully created - data: - customer: 89363925 - plan: 393873 - integration: 463433 - domain: test - start: 1663817490 - status: active - quantity: 1 - amount: 20000 - authorization: 374536802 - invoice_limit: 0 - split_code: - subscription_code: SUB_k0alurkz6l2d3nz - email_token: txyhn3zjzcr9xlo - id: 456933 - cancelledAt: - createdAt: '2022-09-22T03:31:30.886Z' - updatedAt: '2022-09-22T03:31:30.886Z' - cron_expression: 31 3 22 * * - next_payment_date: '2022-10-22T03:31:00.000Z' \ No newline at end of file diff --git a/main/examples/transaction/VerifyTransaction.yaml b/main/examples/transaction/VerifyTransaction.yaml deleted file mode 100644 index 87a8e46..0000000 --- a/main/examples/transaction/VerifyTransaction.yaml +++ /dev/null @@ -1,78 +0,0 @@ -value: - status: true - message: Verification successful - data: - id: 1561150909 - domain: test - status: success - reference: pjxrqb8jzc - amount: 10000 - message: null - gateway_response: Successful - paid_at: 2022-01-13T15:10:59.000Z - created_at: 2022-01-13T15:10:28.000Z - channel: card - currency: NGN - ip_address: 197.232.101.8 - metadata: {} - log: - start_time: 1642086645 - time_spent: 16 - attempts: 1 - errors: 0 - success: true - mobile: false - input: [] - history: [ - - type: action - message: Attempted to pay with card - time: 13 - - - type: success - message: Successfully paid with card - time: 16 - - ] - fees: 50 - fees_split: null - authorization: - authorization_code: AUTH_yac2dosuu2 - bin: 408408 - last4: 4081 - exp_month: 12 - exp_year: 2030 - channel: card - card_type: visa - bank: TEST BANK - country_code: NG - brand: visa - reusable: true - signature: SIG_yEXu7dLBeqG0kU7g95Ke - account_name: null - receiver_bank_account_number: null - receiver_bank: null - customer: - id: 34353495 - first_name: unique - last_name: Person - email: some@body.abc - customer_code: CUS_blmy4z89f4tf17v - phone: null - metadata: null - risk_action: default - international_format_phone: nul - plan: null - split: - order_id: null - paidAt: 2022-01-13T15:10:59.000Z - createdAt: 2022-01-13T15:10:28.000Z - requested_amount: 10000 - pos_transaction_data: null - source: null - fees_breakdown: null - transaction_date: 2022-01-13T15:10:28.000Z - plan_object: - subaccount: - diff --git a/main/examples/transaction/charge-authorization.yaml b/main/examples/transaction/charge-authorization.yaml deleted file mode 100644 index a7a2ca3..0000000 --- a/main/examples/transaction/charge-authorization.yaml +++ /dev/null @@ -1,15 +0,0 @@ -value: - status: true - message: Charge attempted - data: - amount: 500000 - currency: NGN - reference: 123.uniq=ref-2 - metadata: - cart_id: 398 - custom_fields: - - display_name: Invoice ID - variable_name: Invoice ID - value: 209 - split_code: SPL_123AbZ - subaccount: ACCT_23abcdefgh \ No newline at end of file diff --git a/main/examples/transaction/initialize.yaml b/main/examples/transaction/initialize.yaml deleted file mode 100644 index dfdaf26..0000000 --- a/main/examples/transaction/initialize.yaml +++ /dev/null @@ -1,7 +0,0 @@ -value: - status: true - message: Authorization URL created - data: - authorization_url: https://checkout.paystack.com/spnajmit2hgi2c1 - access_code: spandaoende - reference: ad123ada \ No newline at end of file diff --git a/main/examples/transaction/partial-debit.yaml b/main/examples/transaction/partial-debit.yaml deleted file mode 100644 index cc97741..0000000 --- a/main/examples/transaction/partial-debit.yaml +++ /dev/null @@ -1,44 +0,0 @@ -value: - status: true - message: Charge attempted - data: - amount: 10247 - currency: NGN - transaction_date: '2022-09-22T07:36:03.000Z' - status: success - reference: dycmjmd23f1hygq - domain: test - metadata: '' - gateway_response: Approved - message: - channel: card - ip_address: - log: - fees: 52 - authorization: - authorization_code: AUTH_15qn6qmeip - bin: '408408' - last4: '4081' - exp_month: '12' - exp_year: '2030' - channel: card - card_type: 'visa ' - bank: TEST BANK - country_code: NG - brand: visa - reusable: true - signature: SIG_yEXu7dLBeqG0kU7g95Ke - account_name: - customer: - id: 54219771 - first_name: - last_name: - email: some.other@body.com - customer_code: CUS_toq66lmva87v66g - phone: - metadata: - risk_action: default - international_format_phone: - plan: 0 - requested_amount: 10247 - id: 2122110499 diff --git a/main/examples/transfer-recipient/create.yaml b/main/examples/transfer-recipient/create.yaml deleted file mode 100644 index 23e6795..0000000 --- a/main/examples/transfer-recipient/create.yaml +++ /dev/null @@ -1,24 +0,0 @@ -value: - status: true - message: Transfer recipient created successfully - data: - active: true - createdAt: 2022-09-16T08:31:43.321Z - currency: NGN - domain: live - id: 38770134 - integration: 463433 - metadata: - referrer_id: 123 - name: Ada Lovelace - recipient_code: RCP_2fl8jmb2v3kbleb - type: nuban - updatedAt: 2022-09-16T08:31:43.321Z - is_deleted: false - isDeleted: false - details: - authorization_code: null - account_number: 000000000 - account_name: Doe Jane Loren - bank_code: 011 - bank_name: First Bank of Nigeria diff --git a/main/examples/transfer/bulk.yaml b/main/examples/transfer/bulk.yaml deleted file mode 100644 index 1d5ed7d..0000000 --- a/main/examples/transfer/bulk.yaml +++ /dev/null @@ -1,14 +0,0 @@ -value: - status: true - message: 2 transfers queued. - data: - - recipient: RCP_1a25w1h3n0xctjg - amount: 50000 - transfer_code: TRF_mi8oa4liagyvq2md - currency: NGN - status: pending - - recipient: RCP_sa1k1btncp993q1 - amount: 50000 - transfer_code: TRF_1c5upr4hp85l93n7 - currency: NGN - status: pending \ No newline at end of file diff --git a/main/examples/transfer/initiate.yaml b/main/examples/transfer/initiate.yaml deleted file mode 100644 index c2423cc..0000000 --- a/main/examples/transfer/initiate.yaml +++ /dev/null @@ -1,22 +0,0 @@ -value: - status: true - message: Transfer has been queued - data: - reference: on5hyz9poe - integration: 428626 - domain: test - amount: 3794800 - currency: NGN - source: balance - reason: Holiday Flexing - recipient: 6788170 - status: success - transfer_code: TRF_fiyxvgkh71e717b - id: 23070321 - failures: null - source_details: null - request: 654770431 - transferred_at: 2020-05-13T14:22:49.687Z - transfersessionid: [] - createdAt: 2020-05-13T14:22:49.687Z - updatedAt: 2020-05-13T14:22:49.687Z \ No newline at end of file diff --git a/main/examples/transfer/list.yaml b/main/examples/transfer/list.yaml deleted file mode 100644 index 15e7635..0000000 --- a/main/examples/transfer/list.yaml +++ /dev/null @@ -1,98 +0,0 @@ -value: - status: true - message: Transfers retrieved - data: - - amount: 1187500 - createdAt: '2024-03-07T16:13:42.000Z' - currency: NGN - domain: live - failures: - id: 480480480480 - integration: 463433 - reason: transfer demo - reference: demo-transfer - source: balance - source_details: - status: success - titan_code: - transfer_code: TRF_57qtrcpodassad - request: 544648484 - transferred_at: '2024-03-07T16:13:43.000Z' - updatedAt: '2024-03-07T16:13:43.000Z' - recipient: - active: true - createdAt: '2024-03-07T16:08:13.000Z' - currency: NGN - description: Demo transfers - domain: live - email: example@example.com - id: 12309312 - integration: 463433 - metadata: - name: DANTE ALIGHIERI - recipient_code: RCP_67gq8xn0ls58535 - type: nuban - updatedAt: '2024-03-07T16:37:12.000Z' - is_deleted: false - isDeleted: false - details: - authorization_code: - account_number: '12334567890' - account_name: DANTE ALIGHIERI - bank_code: '999991' - bank_name: PalmPay - session: - provider: nip - id: '110001231091230120391238372113' - fee_charged: 0 - fees_breakdown: - - amount: 712500 - createdAt: '2024-03-07T16:11:10.000Z' - currency: NGN - domain: live - failures: - id: 480480480 - integration: 463433 - reason: food - reference: cf20odaindonec892384cas - source: balance - source_details: - status: success - titan_code: - transfer_code: TRF_scgho47oei0s578v - request: 5454545545 - transferred_at: '2024-03-07T16:11:12.000Z' - updatedAt: '2024-03-07T16:11:12.000Z' - recipient: - active: true - createdAt: '2024-03-07T16:08:13.000Z' - currency: NGN - description: '4.0' - domain: live - email: ojoojo971@gmail.com - id: 73001094 - integration: 463433 - metadata: - name: Mwana Kupona - recipient_code: RCP_67gq8xn0ls58535 - type: nuban - updatedAt: '2024-03-07T16:37:12.000Z' - is_deleted: false - isDeleted: false - details: - authorization_code: - account_number: '0000000000' - account_name: MWANA TAU - bank_code: '011' - bank_name: First Bank of Nigeria - session: - provider: nip - id: '120312192381218312812312312' - fee_charged: 0 - fees_breakdown: null - meta: - total: 30 - skipped: 0 - perPage: 50 - page: 1 - pageCount: 1 diff --git a/main/examples/verification/resolve-bank.yaml b/main/examples/verification/resolve-bank.yaml deleted file mode 100644 index 84de223..0000000 --- a/main/examples/verification/resolve-bank.yaml +++ /dev/null @@ -1,7 +0,0 @@ -value: - status: true - message: Account number resolved - data: - account_number: 0001234567 - account_name: Doe Jane Loren - bank_id: 9 \ No newline at end of file diff --git a/main/paystack.yaml b/main/paystack.yaml deleted file mode 100644 index d3324fa..0000000 --- a/main/paystack.yaml +++ /dev/null @@ -1,280 +0,0 @@ -openapi: 3.0.1 -info: - title: Paystack - description: >- - The OpenAPI specification of the Paystack API that - merchants and developers can harness to build financial solutions - in Africa. - version: 1.0.0 -servers: - - url: https://api.paystack.co - description: Base API endpoint -tags: - - name: Transaction - - name: Split - - name: Customer - - name: Dedicated Virtual Account - - name: Subaccount - - name: Plan - - name: Subscription - - name: Product - - name: Page - - name: Payment Request - - name: Settlement - - name: Transfer Recipient - - name: Transfer - - name: Balance - - name: Charge - - name: Bulk Charge - - name: Integration - - name: Refund - - name: Dispute - - name: Verification -paths: - /transaction/initialize: - $ref: './resources/transaction/initialize.yaml' - /transaction/verify/{reference}: - $ref: './resources/transaction/verify.yaml' - /transaction: - $ref: './resources/transaction/list.yaml' - /transaction/{id}: - $ref: './resources/transaction/fetch.yaml' - /transaction/timeline/{id_or_reference}: - $ref: './resources/transaction/timeline.yaml' - /transaction/totals: - $ref: './resources/transaction/totals.yaml' - /transaction/export: - $ref: './resources/transaction/export.yaml' - /transaction/charge_authorization: - $ref: './resources/transaction/charge-authorization.yaml' - /transaction/check_authorization: - $ref: './resources/transaction/check-authorization.yaml' - /transaction/partial_debit: - $ref: './resources/transaction/partial-debit.yaml' - /transaction/{id}/event: - $ref: './resources/transaction/event.yaml' - /transaction/{id}/session: - $ref: './resources/transaction/session.yaml' - /split: - $ref: './resources/split/index.yaml' - /split/{id}: - $ref: './resources/split/split-id.yaml' - /split/{id}/subaccount/add: - $ref: './resources/split/add-subaccount.yaml' - /split/{id}/subaccount/remove: - $ref: './resources/split/remove-subaccount.yaml' - /customer: - $ref: './resources/customer/index.yaml' - /customer/{code}: - $ref: './resources/customer/customer-code.yaml' - /customer/set_risk_action: - $ref: './resources/customer/risk-action.yaml' - /customer/deactivate_authorization: - $ref: './resources/customer/authorization.yaml' - /customer/{code}/identification: - $ref: './resources/customer/identification.yaml' - /dedicated_account: - $ref: './resources/dedicated-virtual-account/index.yaml' - /dedicated_account/{account_id}: - $ref: './resources/dedicated-virtual-account/account-id.yaml' - /dedicated_account/available_providers: - $ref: './resources/dedicated-virtual-account/providers.yaml' - /dedicated_account/split: - $ref: './resources/dedicated-virtual-account/add-split.yaml' - /subaccount: - $ref: './resources/subaccount/index.yaml' - /subaccount/{code}: - $ref: './resources/subaccount/subaccount-code.yaml' - /plan: - $ref: './resources/plan/index.yaml' - /plan/{code}: - $ref: './resources/plan/plan-code.yaml' - /subscription: - $ref: './resources/subscription/index.yaml' - /subscription/{code}: - $ref: './resources/subscription/subscription-code.yaml' - /subscription/disable: - $ref: './resources/subscription/disable.yaml' - /subscription/enable: - $ref: './resources/subscription/enable.yaml' - /subscription/{code}/manage/link: - $ref: './resources/subscription/manage-link.yaml' - /subscription/{code}/manage/email: - $ref: './resources/subscription/manage-email.yaml' - /product: - $ref: './resources/product/index.yaml' - /product/{id}: - $ref: './resources/product/product-id.yaml' - /page: - $ref: './resources/page/index.yaml' - /page/{id}: - $ref: './resources/page/page-id.yaml' - /page/check_slug_availability/{slug}: - $ref: './resources/page/slug-availability.yaml' - /page/{id}/product: - $ref: './resources/page/product.yaml' - /paymentrequest: - $ref: './resources/payment-request/index.yaml' - /paymentrequest/{id}: - $ref: './resources/payment-request/payment-request-id.yaml' - /paymentrequest/verify/{id}: - $ref: './resources/payment-request/verify.yaml' - /paymentrequest/notify/{id}: - $ref: './resources/payment-request/notify.yaml' - /paymentrequest/totals: - $ref: './resources/payment-request/totals.yaml' - /paymentrequest/finalize/{id}: - $ref: './resources/payment-request/finalize.yaml' - /paymentrequest/archive/{id}: - $ref: './resources/payment-request/archive.yaml' - /settlement: - $ref: './resources/settlement/fetch.yaml' - /settlement/{id}/transaction: - $ref: './resources/settlement/transaction.yaml' - /transferrecipient: - $ref: './resources/transfer-recipient/index.yaml' - /transferrecipient/bulk: - $ref: './resources/transfer-recipient/bulk.yaml' - /transferrecipient/{code}: - $ref: './resources/transfer-recipient/transfer-recipient-code.yaml' - /transfer: - $ref: './resources/transfer/index.yaml' - /transfer/finalize_transfer: - $ref: './resources/transfer/finalize.yaml' - /transfer/bulk: - $ref: './resources/transfer/bulk.yaml' - /transfer/{code}: - $ref: './resources/transfer/transfer-code.yaml' - /transfer/verify/{reference}: - $ref: './resources/transfer/verify.yaml' - /transfer/export: - $ref: './resources/transfer/export.yaml' - /transfer/resend_otp: - $ref: './resources/transfer/resend-otp.yaml' - /transfer/disable_otp: - $ref: './resources/transfer/disable-otp.yaml' - /transfer/disable_otp_finalize: - $ref: './resources/transfer/disable-otp-finalize.yaml' - /transfer/enable_otp: - $ref: './resources/transfer/enable-otp.yaml' - /balance: - $ref: './resources/balance/fetch.yaml' - /balance/ledger: - $ref: './resources/balance/ledger.yaml' - /charge: - $ref: './resources/charge/create.yaml' - /charge/submit_pin: - $ref: './resources/charge/submit-pin.yaml' - /charge/submit_otp: - $ref: './resources/charge/submit-otp.yaml' - /charge/submit_phone: - $ref: './resources/charge/submit-phone.yaml' - /charge/submit_birthday: - $ref: './resources/charge/submit-birthday.yaml' - /charge/submit_address: - $ref: './resources/charge/submit-address.yaml' - /charge/{reference}: - $ref: './resources/charge/reference.yaml' - /bulkcharge: - $ref: './resources/bulk-charge/index.yaml' - /bulkcharge/{code}: - $ref: './resources/bulk-charge/fetch.yaml' - /bulkcharge/{code}/charges: - $ref: './resources/bulk-charge/charges.yaml' - /bulkcharge/pause/{code}: - $ref: './resources/bulk-charge/pause.yaml' - /bulkcharge/resume/{code}: - $ref: './resources/bulk-charge/resume-charge.yaml' - /integration/payment_session_timeout: - $ref: './resources/integration/payment-session.yaml' - /refund: - $ref: './resources/refund/index.yaml' - /refund/{id}: - $ref: './resources/refund/fetch.yaml' - /dispute: - $ref: './resources/dispute/list.yaml' - /dispute/{id}: - $ref: './resources/dispute/dispute-id.yaml' - /dispute/{id}/upload_url: - $ref: './resources/dispute/upload-url.yaml' - /dispute/export: - $ref: './resources/dispute/export.yaml' - /dispute/transaction/{id}: - $ref: './resources/dispute/transaction.yaml' - /dispute/{id}/resolve: - $ref: './resources/dispute/resolve.yaml' - /dispute/{id}/evidence: - $ref: './resources/dispute/evidence.yaml' - /bank/resolve: - $ref: './resources/verification/resolve-bank.yaml' - /decision/bin/{bin}: - $ref: './resources/verification/card-bin.yaml' - /country: - $ref: './resources/verification/country.yaml' - /bank: - $ref: './resources/verification/bank.yaml' - /address_verification/states: - $ref: './resources/verification/state.yaml' -components: - securitySchemes: - bearerAuth: - type: http - scheme: bearer - schemas: - Customer: - $ref: './schemas/customer/Customer.yaml' - Error: - type: object - properties: - status: - type: boolean - message: - type: string - Response: - type: object - properties: - status: - type: boolean - message: - type: string - data: - type: object - responses: - Ok: - description: Successful operation - content: - application/json: - schema: - $ref: './responses/response.yaml' - Created: - description: Resource created - content: - application/json: - schema: - $ref: '#/components/schemas/Response' - NotFound: - description: Entity not found - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - status: false - message: Entity not found - Unauthorized: - description: Unauthorized operation - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - example: - status: false - message: Invalid key - GeneralError: - description: General Error - content: - application/json: - schema: - $ref: '#/components/schemas/Error' -security: - - bearerAuth: [] \ No newline at end of file diff --git a/main/resources/balance/fetch.yaml b/main/resources/balance/fetch.yaml deleted file mode 100644 index 28dfdc3..0000000 --- a/main/resources/balance/fetch.yaml +++ /dev/null @@ -1,15 +0,0 @@ -get: - tags: - - Balance - summary: Fetch Balance - operationId: balance_fetch - description: Check your Paystack account balance - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/bulk-charge/charges.yaml b/main/resources/bulk-charge/charges.yaml deleted file mode 100644 index 8a29680..0000000 --- a/main/resources/bulk-charge/charges.yaml +++ /dev/null @@ -1,21 +0,0 @@ -get: - tags: - - Bulk Charge - summary: Fetch Charges in a Batch - operationId: bulkCharge_charges - parameters: - - name: code - description: Batch code - in: path - required: true - schema: - type: string - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/bulk-charge/fetch.yaml b/main/resources/bulk-charge/fetch.yaml deleted file mode 100644 index 5fe1f08..0000000 --- a/main/resources/bulk-charge/fetch.yaml +++ /dev/null @@ -1,21 +0,0 @@ -parameters: -- name: code - description: Batch code - in: path - required: true - schema: - type: string -get: - tags: - - Bulk Charge - summary: Fetch Bulk Charge Batch - operationId: bulkCharge_fetch - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error diff --git a/main/resources/bulk-charge/index.yaml b/main/resources/bulk-charge/index.yaml deleted file mode 100644 index 0248eb9..0000000 --- a/main/resources/bulk-charge/index.yaml +++ /dev/null @@ -1,66 +0,0 @@ -post: - tags: - - Bulk Charge - summary: Initiate Bulk Charge - operationId: bulkCharge_initiate - requestBody: - content: - application/x-www-form-urlencoded: - schema: - type: array - items: - $ref: '../../schemas/bulk-charge/Initiate.yaml' - application/json: - schema: - type: array - items: - properties: - charges: - title: charges - type: object - items: - $ref: '../../schemas/bulk-charge/Initiate.yaml' - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error -get: - tags: - - Bulk Charge - summary: List Bulk Charge Batches - operationId: bulkCharge_list - parameters: - - in: query - name: perPage - schema: - type: integer - description: Number of records to fetch per page - - in: query - name: page - schema: - type: integer - description: The section to retrieve - - in: query - name: from - schema: - type: string - format: date-time - description: The start date - - in: query - name: to - schema: - type: string - format: date-time - description: The end date - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/bulk-charge/pause.yaml b/main/resources/bulk-charge/pause.yaml deleted file mode 100644 index aa3136b..0000000 --- a/main/resources/bulk-charge/pause.yaml +++ /dev/null @@ -1,21 +0,0 @@ -get: - tags: - - Bulk Charge - summary: Pause Bulk Charge Batch - operationId: bulkCharge_pause - parameters: - - name: code - description: Batch code - in: path - required: true - schema: - type: string - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/bulk-charge/resume-charge.yaml b/main/resources/bulk-charge/resume-charge.yaml deleted file mode 100644 index a47d5ad..0000000 --- a/main/resources/bulk-charge/resume-charge.yaml +++ /dev/null @@ -1,23 +0,0 @@ -# resume.yaml seems to be a reserved name, hence the reason for -# using resume-charge.yaml -get: - tags: - - Bulk Charge - summary: Resume Bulk Charge Batch - operationId: bulkCharge_resume - parameters: - - name: code - description: Batch code - in: path - required: true - schema: - type: string - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/charge/create.yaml b/main/resources/charge/create.yaml deleted file mode 100644 index 0bebe59..0000000 --- a/main/resources/charge/create.yaml +++ /dev/null @@ -1,20 +0,0 @@ -post: - tags: - - Charge - summary: Create Charge - operationId: charge_create - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/charge/Charge.yaml' - application/json: - schema: - $ref: '../../schemas/charge/Charge.yaml' - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/charge/reference.yaml b/main/resources/charge/reference.yaml deleted file mode 100644 index 3ee92d8..0000000 --- a/main/resources/charge/reference.yaml +++ /dev/null @@ -1,21 +0,0 @@ -get: - tags: - - Charge - summary: Check pending charge - operationId: charge_check - parameters: - - name: reference - in: path - required: true - schema: - type: string - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error - diff --git a/main/resources/charge/submit-address.yaml b/main/resources/charge/submit-address.yaml deleted file mode 100644 index e23db6e..0000000 --- a/main/resources/charge/submit-address.yaml +++ /dev/null @@ -1,20 +0,0 @@ -post: - tags: - - Charge - summary: Submit Address - operationId: charge_submitAddress - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/charge/SubmitAddress.yaml' - application/json: - schema: - $ref: '../../schemas/charge/SubmitAddress.yaml' - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/charge/submit-birthday.yaml b/main/resources/charge/submit-birthday.yaml deleted file mode 100644 index 1208b39..0000000 --- a/main/resources/charge/submit-birthday.yaml +++ /dev/null @@ -1,20 +0,0 @@ -post: - tags: - - Charge - summary: Submit Birthday - operationId: charge_submitBirthday - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/charge/SubmitBirthday.yaml' - application/json: - schema: - $ref: '../../schemas/charge/SubmitBirthday.yaml' - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/charge/submit-otp.yaml b/main/resources/charge/submit-otp.yaml deleted file mode 100644 index 48cde8a..0000000 --- a/main/resources/charge/submit-otp.yaml +++ /dev/null @@ -1,20 +0,0 @@ -post: - tags: - - Charge - summary: Submit OTP - operationId: charge_submitOtp - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/charge/SubmitOTP.yaml' - application/json: - schema: - $ref: '../../schemas/charge/SubmitOTP.yaml' - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/charge/submit-phone.yaml b/main/resources/charge/submit-phone.yaml deleted file mode 100644 index 1d3f640..0000000 --- a/main/resources/charge/submit-phone.yaml +++ /dev/null @@ -1,20 +0,0 @@ -post: - tags: - - Charge - summary: Submit Phone - operationId: charge_submitPhone - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/charge/SubmitPhone.yaml' - application/json: - schema: - $ref: '../../schemas/charge/SubmitPhone.yaml' - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/charge/submit-pin.yaml b/main/resources/charge/submit-pin.yaml deleted file mode 100644 index 6ba36a3..0000000 --- a/main/resources/charge/submit-pin.yaml +++ /dev/null @@ -1,20 +0,0 @@ -post: - tags: - - Charge - summary: Submit PIN - operationId: charge_submitPin - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/charge/SubmitPin.yaml' - application/json: - schema: - $ref: '../../schemas/charge/SubmitPin.yaml' - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/customer/authorization.yaml b/main/resources/customer/authorization.yaml deleted file mode 100644 index 7cca85c..0000000 --- a/main/resources/customer/authorization.yaml +++ /dev/null @@ -1,21 +0,0 @@ -post: - tags: - - Customer - summary: Deactivate Authorization - operationId: customer_deactivateAuthorization - description: Deactivate a customer's card - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/customer/CustomerAuthorization.yaml' - application/json: - schema: - $ref: '../../schemas/customer/CustomerAuthorization.yaml' - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/customer/create.yaml b/main/resources/customer/create.yaml deleted file mode 100644 index dbf3e04..0000000 --- a/main/resources/customer/create.yaml +++ /dev/null @@ -1,23 +0,0 @@ -tags: - - Customer -summary: Create Customer -operationId: customer_create -requestBody: - content: - application/x-www-form-urlencoded: - schema: - allOf: - - $ref: '../../schemas/customer/CustomerRequired.yaml' - - $ref: '../../schemas/customer/CustomerBase.yaml' - application/json: - schema: - allOf: - - $ref: '../../schemas/customer/CustomerRequired.yaml' - - $ref: '../../schemas/customer/CustomerBase.yaml' -responses: - 200: - $ref: '../../responses/customer/create.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/customer/customer-code.yaml b/main/resources/customer/customer-code.yaml deleted file mode 100644 index 9f8f63a..0000000 --- a/main/resources/customer/customer-code.yaml +++ /dev/null @@ -1,42 +0,0 @@ -parameters: -- name: code - in: path - required: true - schema: - type: string -get: - tags: - - Customer - summary: Fetch Customer - operationId: customer_fetch - responses: - 200: - $ref: '../../responses/created.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error -put: - tags: - - Customer - summary: Update Customer - operationId: customer_update - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/customer/CustomerBase.yaml' - application/json: - schema: - $ref: '../../schemas/customer/CustomerBase.yaml' - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/customer/identification.yaml b/main/resources/customer/identification.yaml deleted file mode 100644 index 0af84f8..0000000 --- a/main/resources/customer/identification.yaml +++ /dev/null @@ -1,27 +0,0 @@ -parameters: -- name: code - in: path - required: true - schema: - type: string -post: - tags: - - Customer - summary: Validate Customer - operationId: customer_validatte - description: Validate a customer's identity - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/customer/CustomerIdentification.yaml' - application/json: - schema: - $ref: '../../schemas/customer/CustomerIdentification.yaml' - responses: - 202: - $ref: '../../responses/customer/validate.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error diff --git a/main/resources/customer/index.yaml b/main/resources/customer/index.yaml deleted file mode 100644 index cdfb708..0000000 --- a/main/resources/customer/index.yaml +++ /dev/null @@ -1,4 +0,0 @@ -post: - $ref: './create.yaml' -get: - $ref: './list.yaml' \ No newline at end of file diff --git a/main/resources/customer/list.yaml b/main/resources/customer/list.yaml deleted file mode 100644 index fda8cce..0000000 --- a/main/resources/customer/list.yaml +++ /dev/null @@ -1,43 +0,0 @@ -tags: - - Customer -summary: List Customers -operationId: customer_list -description: List customers on your integration -parameters: - - name: use_cursor - in: query - schema: - type: boolean - - name: next - in: query - schema: - type: string - - name: previous - in: query - schema: - type: string - - name: from - in: query - schema: - type: string - - name: to - in: query - schema: - type: string - - name: perPage - in: query - schema: - type: string - - name: page - in: query - schema: - type: string -responses: - 200: - $ref: '../../responses/created.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/customer/risk-action.yaml b/main/resources/customer/risk-action.yaml deleted file mode 100644 index 853876b..0000000 --- a/main/resources/customer/risk-action.yaml +++ /dev/null @@ -1,21 +0,0 @@ -post: - tags: - - Customer - summary: White/blacklist Customer - description: Set customer's risk action by whitelisting or blacklisting the customer - operationId: customer_riskAction - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/customer/CustomerRiskAction.yaml' - application/json: - schema: - $ref: '../../schemas/customer/CustomerRiskAction.yaml' - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/dedicated-virtual-account/account-id.yaml b/main/resources/dedicated-virtual-account/account-id.yaml deleted file mode 100644 index 221505f..0000000 --- a/main/resources/dedicated-virtual-account/account-id.yaml +++ /dev/null @@ -1,34 +0,0 @@ -parameters: -- name: account_id - in: path - required: true - schema: - type: string -get: - tags: - - Dedicated Virtual Account - summary: Fetch Dedicated Account - operationId: dedicatedAccount_fetch - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error -delete: - tags: - - Dedicated Virtual Account - summary: Deactivate Dedicated Account - operationId: dedicatedAccount_deactivate - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/dedicated-virtual-account/add-split.yaml b/main/resources/dedicated-virtual-account/add-split.yaml deleted file mode 100644 index b1c61d2..0000000 --- a/main/resources/dedicated-virtual-account/add-split.yaml +++ /dev/null @@ -1,20 +0,0 @@ -post: - tags: - - Dedicated Virtual Account - summary: Split Dedicated Account Transaction - operationId: dedicatedAccount_addSplit - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/dedicated-virtual-account/Split.yaml' - application/json: - schema: - $ref: '../../schemas/dedicated-virtual-account/Split.yaml' - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/dedicated-virtual-account/create.yaml b/main/resources/dedicated-virtual-account/create.yaml deleted file mode 100644 index 9ef9575..0000000 --- a/main/resources/dedicated-virtual-account/create.yaml +++ /dev/null @@ -1,19 +0,0 @@ -tags: - - Dedicated Virtual Account -summary: Create Dedicated Account -operationId: dedicatedAccount_create -requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/dedicated-virtual-account/Create.yaml' - application/json: - schema: - $ref: '../../schemas/dedicated-virtual-account/Create.yaml' -responses: - 200: - $ref: '../../responses/dedicated-virtual-account/create.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/dedicated-virtual-account/index.yaml b/main/resources/dedicated-virtual-account/index.yaml deleted file mode 100644 index 38a8921..0000000 --- a/main/resources/dedicated-virtual-account/index.yaml +++ /dev/null @@ -1,4 +0,0 @@ -post: - $ref: ./create.yaml -get: - $ref: ./list.yaml \ No newline at end of file diff --git a/main/resources/dedicated-virtual-account/list.yaml b/main/resources/dedicated-virtual-account/list.yaml deleted file mode 100644 index f58cd7f..0000000 --- a/main/resources/dedicated-virtual-account/list.yaml +++ /dev/null @@ -1,46 +0,0 @@ -tags: - - Dedicated Virtual Account -summary: List Dedicated Accounts -operationId: dedicatedAccount_list -parameters: - - name: account_number - in: query - schema: - type: string - - name: customer - in: query - schema: - type: string - - name: active - in: query - schema: - type: boolean - - name: currency - in: query - schema: - type: string - - name: provider_slug - in: query - schema: - type: string - - name: bank_id - in: query - schema: - type: string - - name: perPage - in: query - schema: - type: string - - name: page - in: query - schema: - type: string -responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/dedicated-virtual-account/providers.yaml b/main/resources/dedicated-virtual-account/providers.yaml deleted file mode 100644 index a68c1ab..0000000 --- a/main/resources/dedicated-virtual-account/providers.yaml +++ /dev/null @@ -1,14 +0,0 @@ -get: - tags: - - Dedicated Virtual Account - summary: Fetch Bank Providers - operationId: dedicatedAccount_availableProviders - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/dispute/dispute-id.yaml b/main/resources/dispute/dispute-id.yaml deleted file mode 100644 index 29facdd..0000000 --- a/main/resources/dispute/dispute-id.yaml +++ /dev/null @@ -1,43 +0,0 @@ -parameters: -- name: id - description: Dispute ID - in: path - required: true - schema: - type: string -get: - tags: - - Dispute - summary: Fetch Dispute - operationId: dispute_fetch - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error -put: - tags: - - Dispute - summary: Update Dispute - operationId: dispute_update - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/dispute/Update.yaml' - application/json: - schema: - $ref: '../../schemas/dispute/Update.yaml' - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/integration/payment-session.yaml b/main/resources/integration/payment-session.yaml deleted file mode 100644 index 56fca24..0000000 --- a/main/resources/integration/payment-session.yaml +++ /dev/null @@ -1,36 +0,0 @@ -get: - tags: - - Integration - summary: Fetch Payment Session Timeout - operationId: integration_fetchPaymentSessionTimeout - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error -put: - tags: - - Integration - summary: Update Payment Session Timeout - operationId: integration_updatePaymentSessionTimeout - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/integration/PaymentSession.yaml' - application/json: - schema: - $ref: '../../schemas/integration/PaymentSession.yaml' - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error diff --git a/main/resources/page/page-id.yaml b/main/resources/page/page-id.yaml deleted file mode 100644 index 7897c5f..0000000 --- a/main/resources/page/page-id.yaml +++ /dev/null @@ -1,42 +0,0 @@ -parameters: -- name: id - in: path - required: true - schema: - type: string -get: - tags: - - Page - summary: Fetch Page - operationId: page_fetch - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error -put: - tags: - - Page - summary: Update Page - operationId: page_update - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/page/Update.yaml' - application/json: - schema: - $ref: '../../schemas/page/Update.yaml' - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error diff --git a/main/resources/page/product.yaml b/main/resources/page/product.yaml deleted file mode 100644 index fef82b1..0000000 --- a/main/resources/page/product.yaml +++ /dev/null @@ -1,26 +0,0 @@ -parameters: -- name: id - in: path - required: true - schema: - type: string -post: - tags: - - Page - summary: Add Products - operationId: page_addProducts - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/page/Product.yaml' - application/json: - schema: - $ref: '../../schemas/page/Product.yaml' - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error diff --git a/main/resources/page/slug-availability.yaml b/main/resources/page/slug-availability.yaml deleted file mode 100644 index 8d4a945..0000000 --- a/main/resources/page/slug-availability.yaml +++ /dev/null @@ -1,20 +0,0 @@ -parameters: -- name: slug - in: path - required: true - schema: - type: string -get: - tags: - - Page - summary: Check Slug Availability - operationId: page_checkSlugAvailability - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/payment-request/archive.yaml b/main/resources/payment-request/archive.yaml deleted file mode 100644 index ad8b1b1..0000000 --- a/main/resources/payment-request/archive.yaml +++ /dev/null @@ -1,18 +0,0 @@ -parameters: -- name: id - in: path - required: true - schema: - type: string -post: - tags: - - Payment Request - summary: Archive Payment Request - operationId: paymentRequest_archive - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error diff --git a/main/resources/payment-request/finalize.yaml b/main/resources/payment-request/finalize.yaml deleted file mode 100644 index 5388c16..0000000 --- a/main/resources/payment-request/finalize.yaml +++ /dev/null @@ -1,18 +0,0 @@ -parameters: -- name: id - in: path - required: true - schema: - type: string -post: - tags: - - Payment Request - summary: Finalize Payment Request - operationId: paymentRequest_finalize - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error diff --git a/main/resources/payment-request/notify.yaml b/main/resources/payment-request/notify.yaml deleted file mode 100644 index 2a55c6e..0000000 --- a/main/resources/payment-request/notify.yaml +++ /dev/null @@ -1,18 +0,0 @@ -parameters: -- name: id - in: path - required: true - schema: - type: string -post: - tags: - - Payment Request - summary: Send Notification - operationId: paymentRequest_notify - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/payment-request/payment-request-id.yaml b/main/resources/payment-request/payment-request-id.yaml deleted file mode 100644 index 0806f1b..0000000 --- a/main/resources/payment-request/payment-request-id.yaml +++ /dev/null @@ -1,42 +0,0 @@ -parameters: -- name: id - in: path - required: true - schema: - type: string -get: - tags: - - Payment Request - summary: Fetch Payment Request - operationId: paymentRequest_fetch - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error -put: - tags: - - Payment Request - summary: Update Payment Request - operationId: paymentRequest_update - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/payment-request/Update.yaml' - application/json: - schema: - $ref: '../../schemas/payment-request/Update.yaml' - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/payment-request/totals.yaml b/main/resources/payment-request/totals.yaml deleted file mode 100644 index fcd97dd..0000000 --- a/main/resources/payment-request/totals.yaml +++ /dev/null @@ -1,14 +0,0 @@ -get: - tags: - - Payment Request - summary: Payment Request Total - operationId: paymentRequest_totals - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/payment-request/verify.yaml b/main/resources/payment-request/verify.yaml deleted file mode 100644 index dbba7a6..0000000 --- a/main/resources/payment-request/verify.yaml +++ /dev/null @@ -1,20 +0,0 @@ -parameters: -- name: id - in: path - required: true - schema: - type: string -get: - tags: - - Payment Request - summary: Verify Payment Request - operationId: paymentRequest_verify - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/plan/create.yaml b/main/resources/plan/create.yaml deleted file mode 100644 index 2792b46..0000000 --- a/main/resources/plan/create.yaml +++ /dev/null @@ -1,19 +0,0 @@ -tags: - - Plan -summary: Create Plan -operationId: plan_create -requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/plan/Create.yaml' - application/json: - schema: - $ref: '../../schemas/plan/Create.yaml' -responses: - 201: - $ref: '../../responses/plan/create.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/plan/index.yaml b/main/resources/plan/index.yaml deleted file mode 100644 index 38a8921..0000000 --- a/main/resources/plan/index.yaml +++ /dev/null @@ -1,4 +0,0 @@ -post: - $ref: ./create.yaml -get: - $ref: ./list.yaml \ No newline at end of file diff --git a/main/resources/plan/list.yaml b/main/resources/plan/list.yaml deleted file mode 100644 index f0a4ea0..0000000 --- a/main/resources/plan/list.yaml +++ /dev/null @@ -1,46 +0,0 @@ -tags: - - Plan -summary: List Plans -operationId: plan_list -parameters: - - in: query - name: perPage - schema: - type: integer - description: Number of records to fetch per page - - in: query - name: page - schema: - type: integer - description: The section to retrieve - - in: query - name: interval - schema: - type: string - description: Specify interval of the plan - - in: query - name: amount - schema: - type: integer - description: The amount on the plans to retrieve - - in: query - name: from - schema: - type: string - format: date-time - description: The start date - - in: query - name: to - schema: - type: string - format: date-time - description: The end date -responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/plan/plan-code.yaml b/main/resources/plan/plan-code.yaml deleted file mode 100644 index 63893ad..0000000 --- a/main/resources/plan/plan-code.yaml +++ /dev/null @@ -1,42 +0,0 @@ -parameters: - - name: code - in: path - required: true - schema: - type: string -get: - tags: - - Plan - summary: Fetch Plan - operationId: plan_fetch - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error -put: - tags: - - Plan - summary: Update Plan - operationId: plan_update - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/plan/Update.yaml' - application/json: - schema: - $ref: '../../schemas/plan/Update.yaml' - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error diff --git a/main/resources/product/product-id.yaml b/main/resources/product/product-id.yaml deleted file mode 100644 index c6bf89b..0000000 --- a/main/resources/product/product-id.yaml +++ /dev/null @@ -1,56 +0,0 @@ -parameters: -- name: id - in: path - required: true - schema: - type: string -get: - tags: - - Product - summary: Fetch Product - operationId: product_fetch - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error -put: - tags: - - Product - summary: Update product - operationId: product_update - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/product/Update.yaml' - application/json: - schema: - $ref: '../../schemas/product/Update.yaml' - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error -delete: - tags: - - Product - summary: Delete Product - operationId: product_delete - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/refund/create.yaml b/main/resources/refund/create.yaml deleted file mode 100644 index cff4605..0000000 --- a/main/resources/refund/create.yaml +++ /dev/null @@ -1,19 +0,0 @@ -tags: - - Refund -summary: Create Refund -operationId: refund_create -requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/refund/Create.yaml' - application/json: - schema: - $ref: '../../schemas/refund/Create.yaml' -responses: - 200: - $ref: '../../responses/refund/create.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/refund/fetch.yaml b/main/resources/refund/fetch.yaml deleted file mode 100644 index 29ea379..0000000 --- a/main/resources/refund/fetch.yaml +++ /dev/null @@ -1,20 +0,0 @@ -get: - tags: - - Refund - summary: Fetch Refund - operationId: refund_fetch - parameters: - - name: id - in: path - required: true - schema: - type: string - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/refund/index.yaml b/main/resources/refund/index.yaml deleted file mode 100644 index 38a8921..0000000 --- a/main/resources/refund/index.yaml +++ /dev/null @@ -1,4 +0,0 @@ -post: - $ref: ./create.yaml -get: - $ref: ./list.yaml \ No newline at end of file diff --git a/main/resources/refund/list.yaml b/main/resources/refund/list.yaml deleted file mode 100644 index 44f9357..0000000 --- a/main/resources/refund/list.yaml +++ /dev/null @@ -1,36 +0,0 @@ -tags: - - Refund -summary: List Refunds -operationId: refund_list -parameters: - - in: query - name: perPage - schema: - type: integer - description: Number of records to fetch per page - - in: query - name: page - schema: - type: integer - description: The section to retrieve - - in: query - name: from - schema: - type: string - format: date-time - description: The start date - - in: query - name: to - schema: - type: string - format: date-time - description: The end date -responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/settlement/transaction.yaml b/main/resources/settlement/transaction.yaml deleted file mode 100644 index 6b5d579..0000000 --- a/main/resources/settlement/transaction.yaml +++ /dev/null @@ -1,31 +0,0 @@ -parameters: -- name: id - in: path - required: true - schema: - type: integer -get: - tags: - - Settlement - summary: Settlement Transactions - operationId: settlements_transaction - parameters: - - name: perPage - in: query - schema: - type: integer - example: 50 - - name: page - in: query - schema: - type: integer - example: 2 - responses: - 200: - $ref: '../../responses/created.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/split/add-subaccount.yaml b/main/resources/split/add-subaccount.yaml deleted file mode 100644 index 164a01d..0000000 --- a/main/resources/split/add-subaccount.yaml +++ /dev/null @@ -1,27 +0,0 @@ -post: - tags: - - Split - summary: Add Subaccount to Split - operationId: split_addSubaccount - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/split/Subaccount.yaml' - application/json: - schema: - $ref: '../../schemas/split/Subaccount.yaml' - parameters: - - name: id - in: path - required: true - schema: - type: string - example: application/json - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/split/create.yaml b/main/resources/split/create.yaml deleted file mode 100644 index 4c05d1f..0000000 --- a/main/resources/split/create.yaml +++ /dev/null @@ -1,20 +0,0 @@ -tags: - - Split -summary: Create Split -operationId: split_create -description: Create a new transaction split -requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/split/Create.yaml' - application/json: - schema: - $ref: '../../schemas/split/Create.yaml' -responses: - 200: - $ref: '../../responses/split/create.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/split/index.yaml b/main/resources/split/index.yaml deleted file mode 100644 index 38a8921..0000000 --- a/main/resources/split/index.yaml +++ /dev/null @@ -1,4 +0,0 @@ -post: - $ref: ./create.yaml -get: - $ref: ./list.yaml \ No newline at end of file diff --git a/main/resources/split/list.yaml b/main/resources/split/list.yaml deleted file mode 100644 index 4c1f8d3..0000000 --- a/main/resources/split/list.yaml +++ /dev/null @@ -1,42 +0,0 @@ -tags: - - Split -summary: List Splits -operationId: split_list -parameters: - - name: name - in: query - schema: - type: string - - name: active - in: query - schema: - type: string - - name: sort_by - in: query - schema: - type: string - - name: from - in: query - schema: - type: string - - name: to - in: query - schema: - type: string - - name: perPage - in: query - schema: - type: string - - name: page - in: query - schema: - type: string -responses: - 200: - $ref: '../../responses/created.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/split/remove-subaccount.yaml b/main/resources/split/remove-subaccount.yaml deleted file mode 100644 index 20effd2..0000000 --- a/main/resources/split/remove-subaccount.yaml +++ /dev/null @@ -1,27 +0,0 @@ -post: - tags: - - Split - summary: Remove Subaccount from split - operationId: split_removeSubaccount - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/split/Subaccount.yaml' - application/json: - schema: - $ref: '../../schemas/split/Subaccount.yaml' - parameters: - - name: id - in: path - required: true - schema: - type: string - example: application/json - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/split/split-id.yaml b/main/resources/split/split-id.yaml deleted file mode 100644 index 9ef9f49..0000000 --- a/main/resources/split/split-id.yaml +++ /dev/null @@ -1,42 +0,0 @@ -parameters: -- name: id - in: path - required: true - schema: - type: string -get: - tags: - - Split - summary: Fetch Split - operationId: split_fetch - responses: - 200: - $ref: '../../responses/created.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error -put: - tags: - - Split - summary: Update Split - operationId: split_update - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/split/Update.yaml' - application/json: - schema: - $ref: '../../schemas/split/Update.yaml' - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/subaccount/create.yaml b/main/resources/subaccount/create.yaml deleted file mode 100644 index 105edfc..0000000 --- a/main/resources/subaccount/create.yaml +++ /dev/null @@ -1,20 +0,0 @@ -tags: - - Subaccount -summary: Create Subaccount -operationId: subaccount_create -description: Create a new subaccount -requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/subaccount/Create.yaml' - application/json: - schema: - $ref: '../../schemas/subaccount/Create.yaml' -responses: - 201: - $ref: '../../responses/subaccount/create.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error diff --git a/main/resources/subaccount/index.yaml b/main/resources/subaccount/index.yaml deleted file mode 100644 index 38a8921..0000000 --- a/main/resources/subaccount/index.yaml +++ /dev/null @@ -1,4 +0,0 @@ -post: - $ref: ./create.yaml -get: - $ref: ./list.yaml \ No newline at end of file diff --git a/main/resources/subaccount/list.yaml b/main/resources/subaccount/list.yaml deleted file mode 100644 index 24284b7..0000000 --- a/main/resources/subaccount/list.yaml +++ /dev/null @@ -1,36 +0,0 @@ -tags: - - Subaccount -summary: List Subaccounts -operationId: subaccount_list -parameters: - - in: query - name: perPage - schema: - type: integer - description: Number of records to fetch per page - - in: query - name: page - schema: - type: integer - description: The section to retrieve - - in: query - name: from - schema: - type: string - format: date-time - description: The start date - - in: query - name: to - schema: - type: string - format: date-time - description: The end date -responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/subaccount/subaccount-code.yaml b/main/resources/subaccount/subaccount-code.yaml deleted file mode 100644 index 9e9d4c8..0000000 --- a/main/resources/subaccount/subaccount-code.yaml +++ /dev/null @@ -1,42 +0,0 @@ -parameters: - - name: code - in: path - required: true - schema: - type: string -get: - tags: - - Subaccount - summary: Fetch Subaccount - operationId: subaccount_fetch - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error -put: - tags: - - Subaccount - summary: Update Subaccount - operationId: subaccount_update - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/subaccount/Update.yaml' - application/json: - schema: - $ref: '../../schemas/subaccount/Update.yaml' - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/subscription/create.yaml b/main/resources/subscription/create.yaml deleted file mode 100644 index 2b2a727..0000000 --- a/main/resources/subscription/create.yaml +++ /dev/null @@ -1,19 +0,0 @@ -tags: - - Subscription -summary: Create Subscription -operationId: subscription_create -requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/subscription/Create.yaml' - application/json: - schema: - $ref: '../../schemas/subscription/Create.yaml' -responses: - 200: - $ref: '../../responses/subscription/create.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/subscription/disable.yaml b/main/resources/subscription/disable.yaml deleted file mode 100644 index 9b16a27..0000000 --- a/main/resources/subscription/disable.yaml +++ /dev/null @@ -1,20 +0,0 @@ -post: - tags: - - Subscription - summary: Disable Subscription - operationId: subscription_disable - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/subscription/Toggle.yaml' - application/json: - schema: - $ref: '../../schemas/subscription/Toggle.yaml' - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/subscription/enable.yaml b/main/resources/subscription/enable.yaml deleted file mode 100644 index 677abc4..0000000 --- a/main/resources/subscription/enable.yaml +++ /dev/null @@ -1,20 +0,0 @@ -post: - tags: - - Subscription - summary: Enable Subscription - operationId: subscription_enable - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/subscription/Toggle.yaml' - application/json: - schema: - $ref: '../../schemas/subscription/Toggle.yaml' - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/subscription/index.yaml b/main/resources/subscription/index.yaml deleted file mode 100644 index 38a8921..0000000 --- a/main/resources/subscription/index.yaml +++ /dev/null @@ -1,4 +0,0 @@ -post: - $ref: ./create.yaml -get: - $ref: ./list.yaml \ No newline at end of file diff --git a/main/resources/subscription/list.yaml b/main/resources/subscription/list.yaml deleted file mode 100644 index 534e9a4..0000000 --- a/main/resources/subscription/list.yaml +++ /dev/null @@ -1,46 +0,0 @@ -tags: - - Subscription -summary: List Subscriptions -operationId: subscription_list -parameters: - - in: query - name: perPage - schema: - type: integer - description: Number of records to fetch per page - - in: query - name: page - schema: - type: integer - description: The section to retrieve - - in: query - name: plan - schema: - type: string - description: Plan ID - - in: query - name: customer - schema: - type: string - description: Customer ID - - in: query - name: from - schema: - type: string - format: date-time - description: The start date - - in: query - name: to - schema: - type: string - format: date-time - description: The end date -responses: - 200: - $ref: '../../responses/created.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/subscription/manage-email.yaml b/main/resources/subscription/manage-email.yaml deleted file mode 100644 index 6f92ee3..0000000 --- a/main/resources/subscription/manage-email.yaml +++ /dev/null @@ -1,18 +0,0 @@ -post: - tags: - - Subscription - summary: Send Update Subscription Link - operationId: subscription_manageEmail - parameters: - - name: code - in: path - required: true - schema: - type: string - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/subscription/manage-link.yaml b/main/resources/subscription/manage-link.yaml deleted file mode 100644 index c8920cf..0000000 --- a/main/resources/subscription/manage-link.yaml +++ /dev/null @@ -1,18 +0,0 @@ -get: - tags: - - Subscription - summary: Generate Update Subscription Link - operationId: subscription_manageLink - parameters: - - name: code - in: path - required: true - schema: - type: string - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/subscription/subscription-code.yaml b/main/resources/subscription/subscription-code.yaml deleted file mode 100644 index 2e7c8f8..0000000 --- a/main/resources/subscription/subscription-code.yaml +++ /dev/null @@ -1,21 +0,0 @@ -parameters: -- name: code - in: path - required: true - schema: - type: string -get: - tags: - - Subscription - summary: Fetch Subscription - operationId: subscription_fetch - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error - diff --git a/main/resources/transaction/charge-authorization.yaml b/main/resources/transaction/charge-authorization.yaml deleted file mode 100644 index 43b1683..0000000 --- a/main/resources/transaction/charge-authorization.yaml +++ /dev/null @@ -1,20 +0,0 @@ -post: - tags: - - Transaction - summary: Charge Authorization - operationId: transaction_chargeAuthorization - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/transaction/ChargeAuthorization.yaml' - application/json: - schema: - $ref: '../../schemas/transaction/ChargeAuthorization.yaml' - responses: - 200: - $ref: '../../responses/transaction/charge-authorization.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error diff --git a/main/resources/transaction/check-authorization.yaml b/main/resources/transaction/check-authorization.yaml deleted file mode 100644 index b4ec98b..0000000 --- a/main/resources/transaction/check-authorization.yaml +++ /dev/null @@ -1,20 +0,0 @@ -post: - tags: - - Transaction - summary: Check Authorization - operationId: transaction_checkAuthorization - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/transaction/CheckAuthorization.yaml' - application/json: - schema: - $ref: '../../schemas/transaction/CheckAuthorization.yaml' - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error diff --git a/main/resources/transaction/event.yaml b/main/resources/transaction/event.yaml deleted file mode 100644 index fe74d41..0000000 --- a/main/resources/transaction/event.yaml +++ /dev/null @@ -1,20 +0,0 @@ -get: - tags: - - Transaction - summary: Get Transaction Event - operationId: transaction_event - parameters: - - name: id - in: path - required: true - schema: - type: string - responses: - 200: - $ref: '../../responses/created.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error diff --git a/main/resources/transaction/export.yaml b/main/resources/transaction/export.yaml deleted file mode 100644 index 5a6ac97..0000000 --- a/main/resources/transaction/export.yaml +++ /dev/null @@ -1,37 +0,0 @@ -get: - tags: - - Transaction - summary: Export Transactions - operationId: transaction_download - parameters: - - in: query - name: perPage - schema: - type: integer - description: Number of records to fetch per page - - in: query - name: page - schema: - type: integer - description: The section to retrieve - - in: query - name: from - schema: - type: string - format: date-time - description: The start date - - in: query - name: to - schema: - type: string - format: date-time - description: The end date - responses: - 200: - $ref: '../../responses/created.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error diff --git a/main/resources/transaction/fetch.yaml b/main/resources/transaction/fetch.yaml deleted file mode 100644 index b26ebec..0000000 --- a/main/resources/transaction/fetch.yaml +++ /dev/null @@ -1,21 +0,0 @@ -get: - tags: - - Transaction - summary: Fetch Transaction - operationId: transaction_fetch - parameters: - - name: id - in: path - description: The ID of the transaction to fetch - required: true - schema: - type: string - responses: - 200: - $ref: '../../responses/created.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error diff --git a/main/resources/transaction/initialize.yaml b/main/resources/transaction/initialize.yaml deleted file mode 100644 index 00fc53d..0000000 --- a/main/resources/transaction/initialize.yaml +++ /dev/null @@ -1,21 +0,0 @@ -post: - tags: - - Transaction - summary: Initialize Transaction - operationId: transaction_initialize - description: Create a new transaction - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/transaction/Initialize.yaml' - application/json: - schema: - $ref: '../../schemas/transaction/Initialize.yaml' - responses: - 200: - $ref: '../../responses/transaction/initialize.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error diff --git a/main/resources/transaction/list.yaml b/main/resources/transaction/list.yaml deleted file mode 100644 index 3b998a0..0000000 --- a/main/resources/transaction/list.yaml +++ /dev/null @@ -1,37 +0,0 @@ -get: - tags: - - Transaction - summary: List Transactions - operationId: transaction_list - parameters: - - in: query - name: perPage - schema: - type: integer - description: Number of records to fetch per page - - in: query - name: page - schema: - type: integer - description: The section to retrieve - - in: query - name: from - schema: - type: string - format: date-time - description: The start date - - in: query - name: to - schema: - type: string - format: date-time - description: The end date - responses: - 200: - $ref: '../../responses/created.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error diff --git a/main/resources/transaction/partial-debit.yaml b/main/resources/transaction/partial-debit.yaml deleted file mode 100644 index 549cd3e..0000000 --- a/main/resources/transaction/partial-debit.yaml +++ /dev/null @@ -1,20 +0,0 @@ -post: - tags: - - Transaction - summary: Partial Debit - operationId: transaction_partialDebit - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/transaction/PartialDebit.yaml' - application/json: - schema: - $ref: '../../schemas/transaction/PartialDebit.yaml' - responses: - 200: - $ref: '../../responses/transaction/partial-debit.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error diff --git a/main/resources/transaction/session.yaml b/main/resources/transaction/session.yaml deleted file mode 100644 index b251f50..0000000 --- a/main/resources/transaction/session.yaml +++ /dev/null @@ -1,20 +0,0 @@ -get: - tags: - - Transaction - summary: Get Transaction Session - operationId: transaction_session - parameters: - - name: id - in: path - required: true - schema: - type: string - responses: - 200: - $ref: '../../responses/created.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error diff --git a/main/resources/transaction/timeline.yaml b/main/resources/transaction/timeline.yaml deleted file mode 100644 index 4c894c0..0000000 --- a/main/resources/transaction/timeline.yaml +++ /dev/null @@ -1,20 +0,0 @@ -get: - tags: - - Transaction - summary: Fetch Transaction Timeline - operationId: transaction_timeline - parameters: - - name: id_or_reference - in: path - required: true - schema: - type: string - responses: - 200: - $ref: '../../responses/created.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error diff --git a/main/resources/transaction/totals.yaml b/main/resources/transaction/totals.yaml deleted file mode 100644 index 956d66d..0000000 --- a/main/resources/transaction/totals.yaml +++ /dev/null @@ -1,37 +0,0 @@ -get: - tags: - - Transaction - summary: Transaction Totals - operationId: transaction_totals - parameters: - - in: query - name: perPage - schema: - type: integer - description: Number of records to fetch per page - - in: query - name: page - schema: - type: integer - description: The section to retrieve - - in: query - name: from - schema: - type: string - format: date-time - description: The start date - - in: query - name: to - schema: - type: string - format: date-time - description: The end date - responses: - 200: - $ref: '../../responses/created.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error diff --git a/main/resources/transaction/verify.yaml b/main/resources/transaction/verify.yaml deleted file mode 100644 index 03cd92a..0000000 --- a/main/resources/transaction/verify.yaml +++ /dev/null @@ -1,21 +0,0 @@ -get: - tags: - - Transaction - summary: Verify Transaction - operationId: transaction_verify - parameters: - - name: reference - in: path - description: The transaction reference to verify - required: true - schema: - type: string - responses: - 200: - $ref: '../../responses/created.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error diff --git a/main/resources/transfer-recipient/bulk.yaml b/main/resources/transfer-recipient/bulk.yaml deleted file mode 100644 index d133dff..0000000 --- a/main/resources/transfer-recipient/bulk.yaml +++ /dev/null @@ -1,20 +0,0 @@ -post: - tags: - - Transfer Recipient - summary: Bulk Create Transfer Recipient - operationId: transferrecipient_bulk - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/transfer-recipient/Bulk.yaml' - application/json: - schema: - $ref: '../../schemas/transfer-recipient/Bulk.yaml' - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/transfer-recipient/create.yaml b/main/resources/transfer-recipient/create.yaml deleted file mode 100644 index cf04fe4..0000000 --- a/main/resources/transfer-recipient/create.yaml +++ /dev/null @@ -1,19 +0,0 @@ -tags: - - Transfer Recipient -summary: Create Transfer Recipient -operationId: transferrecipient_create -requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/transfer-recipient/Create.yaml' - application/json: - schema: - $ref: '../../schemas/transfer-recipient/Create.yaml' -responses: - 201: - $ref: '../../responses/transfer-recipient/create.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/transfer-recipient/index.yaml b/main/resources/transfer-recipient/index.yaml deleted file mode 100644 index 38a8921..0000000 --- a/main/resources/transfer-recipient/index.yaml +++ /dev/null @@ -1,4 +0,0 @@ -post: - $ref: ./create.yaml -get: - $ref: ./list.yaml \ No newline at end of file diff --git a/main/resources/transfer-recipient/list.yaml b/main/resources/transfer-recipient/list.yaml deleted file mode 100644 index caba6e7..0000000 --- a/main/resources/transfer-recipient/list.yaml +++ /dev/null @@ -1,36 +0,0 @@ -tags: - - Transfer Recipient -summary: List Transfer Recipients -operationId: transferrecipient_list -parameters: - - in: query - name: perPage - schema: - type: integer - description: Number of records to fetch per page - - in: query - name: page - schema: - type: integer - description: The section to retrieve - - in: query - name: from - schema: - type: string - format: date-time - description: The start date - - in: query - name: to - schema: - type: string - format: date-time - description: The end date -responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/transfer-recipient/transfer-recipient-code.yaml b/main/resources/transfer-recipient/transfer-recipient-code.yaml deleted file mode 100644 index 4fdff3e..0000000 --- a/main/resources/transfer-recipient/transfer-recipient-code.yaml +++ /dev/null @@ -1,57 +0,0 @@ -parameters: -- name: code - description: Transfer recipient code - in: path - required: true - schema: - type: string -get: - tags: - - Transfer Recipient - summary: Fetch Transfer recipient - operationId: transferrecipient_fetch - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error -put: - tags: - - Transfer Recipient - summary: Update Transfer recipient - operationId: transferrecipient_update - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/transfer-recipient/Update.yaml' - application/json: - schema: - $ref: '../../schemas/transfer-recipient/Update.yaml' - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error -delete: - tags: - - Transfer Recipient - summary: Delete Transfer Recipient - operationId: transferrecipient_delete - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/transfer/bulk.yaml b/main/resources/transfer/bulk.yaml deleted file mode 100644 index 437f98a..0000000 --- a/main/resources/transfer/bulk.yaml +++ /dev/null @@ -1,20 +0,0 @@ -post: - tags: - - Transfer - summary: Initiate Bulk Transfer - operationId: transfer_bulk - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/transfer/Bulk.yaml' - application/json: - schema: - $ref: '../../schemas/transfer/Bulk.yaml' - responses: - 200: - $ref: '../../responses/transfer/transfer.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/transfer/disable-otp-finalize.yaml b/main/resources/transfer/disable-otp-finalize.yaml deleted file mode 100644 index affd546..0000000 --- a/main/resources/transfer/disable-otp-finalize.yaml +++ /dev/null @@ -1,20 +0,0 @@ -post: - tags: - - Transfer - summary: Finalize Disabling of OTP requirement for Transfers - operationId: transfer_disableOtpFinalize - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/transfer/DisableOTP.yaml' - application/json: - schema: - $ref: '../../schemas/transfer/DisableOTP.yaml' - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/transfer/disable-otp.yaml b/main/resources/transfer/disable-otp.yaml deleted file mode 100644 index 50a757d..0000000 --- a/main/resources/transfer/disable-otp.yaml +++ /dev/null @@ -1,12 +0,0 @@ -post: - tags: - - Transfer - summary: Disable OTP requirement for Transfers - operationId: transfer_disableOtp - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/transfer/enable-otp.yaml b/main/resources/transfer/enable-otp.yaml deleted file mode 100644 index 66a28ac..0000000 --- a/main/resources/transfer/enable-otp.yaml +++ /dev/null @@ -1,12 +0,0 @@ -post: - tags: - - Transfer - summary: Enable OTP requirement for Transfers - operationId: transfer_enableOtp - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/transfer/export.yaml b/main/resources/transfer/export.yaml deleted file mode 100644 index adf6d28..0000000 --- a/main/resources/transfer/export.yaml +++ /dev/null @@ -1,41 +0,0 @@ -get: - tags: - - Transfer - summary: Export Transfers - operationId: transfer_download - parameters: - - in: query - name: perPage - schema: - type: integer - description: Number of records to fetch per page - - in: query - name: page - schema: - type: integer - description: The section to retrieve - - in: query - name: status - schema: - type: string - - in: query - name: from - schema: - type: string - format: date-time - description: The start date - - in: query - name: to - schema: - type: string - format: date-time - description: The end date - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/transfer/finalize.yaml b/main/resources/transfer/finalize.yaml deleted file mode 100644 index ae95298..0000000 --- a/main/resources/transfer/finalize.yaml +++ /dev/null @@ -1,20 +0,0 @@ -post: - tags: - - Transfer - summary: Finalize Transfer - operationId: transfer_finalize - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/transfer/Finalize.yaml' - application/json: - schema: - $ref: '../../schemas/transfer/Finalize.yaml' - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/transfer/index.yaml b/main/resources/transfer/index.yaml deleted file mode 100644 index 2b9d20d..0000000 --- a/main/resources/transfer/index.yaml +++ /dev/null @@ -1,4 +0,0 @@ -post: - $ref: './initiate.yaml' -get: - $ref: './list.yaml' \ No newline at end of file diff --git a/main/resources/transfer/initiate.yaml b/main/resources/transfer/initiate.yaml deleted file mode 100644 index 2a3b788..0000000 --- a/main/resources/transfer/initiate.yaml +++ /dev/null @@ -1,19 +0,0 @@ -tags: - - Transfer -summary: Initiate Transfer -operationId: transfer_initiate -requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/transfer/Initiate.yaml' - application/json: - schema: - $ref: '../../schemas/transfer/Initiate.yaml' -responses: - 200: - $ref: '../../responses/transfer/transfer.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/transfer/list.yaml b/main/resources/transfer/list.yaml deleted file mode 100644 index a7a51f9..0000000 --- a/main/resources/transfer/list.yaml +++ /dev/null @@ -1,40 +0,0 @@ -tags: - - Transfer -summary: List Transfers -operationId: transfer_list -parameters: - - in: query - name: perPage - schema: - type: integer - description: Number of records to fetch per page - - in: query - name: page - schema: - type: integer - description: The section to retrieve - - in: query - name: status - schema: - type: string - - in: query - name: from - schema: - type: string - format: date-time - description: The start date - - in: query - name: to - schema: - type: string - format: date-time - description: The end date -responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/transfer/resend-otp.yaml b/main/resources/transfer/resend-otp.yaml deleted file mode 100644 index f6a88d1..0000000 --- a/main/resources/transfer/resend-otp.yaml +++ /dev/null @@ -1,20 +0,0 @@ -post: - tags: - - Transfer - summary: Resend OTP for Transfer - operationId: transfer_resendOtp - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/transfer/ResendOTP.yaml' - application/json: - schema: - $ref: '../../schemas/transfer/ResendOTP.yaml' - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/transfer/transfer-code.yaml b/main/resources/transfer/transfer-code.yaml deleted file mode 100644 index 9a91071..0000000 --- a/main/resources/transfer/transfer-code.yaml +++ /dev/null @@ -1,21 +0,0 @@ -parameters: -- name: code - description: Transfer code - in: path - required: true - schema: - type: string -get: - tags: - - Transfer - summary: Fetch Transfer - operationId: transfer_fetch - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/transfer/verify.yaml b/main/resources/transfer/verify.yaml deleted file mode 100644 index 98e7a82..0000000 --- a/main/resources/transfer/verify.yaml +++ /dev/null @@ -1,20 +0,0 @@ -parameters: -- name: reference - in: path - required: true - schema: - type: string -get: - tags: - - Transfer - summary: Verify Transfer - operationId: transfer_verify - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/verification/card-bin.yaml b/main/resources/verification/card-bin.yaml deleted file mode 100644 index d79d5df..0000000 --- a/main/resources/verification/card-bin.yaml +++ /dev/null @@ -1,20 +0,0 @@ -get: - tags: - - Verification - summary: Resolve Card BIN - operationId: verification_resolveCardBin - parameters: - - name: bin - in: path - required: true - schema: - type: string - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/verification/country.yaml b/main/resources/verification/country.yaml deleted file mode 100644 index 314ae61..0000000 --- a/main/resources/verification/country.yaml +++ /dev/null @@ -1,14 +0,0 @@ -get: - tags: - - Verification - summary: List Countries - operationId: verification_listCountries - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/verification/resolve-bank.yaml b/main/resources/verification/resolve-bank.yaml deleted file mode 100644 index c3c6697..0000000 --- a/main/resources/verification/resolve-bank.yaml +++ /dev/null @@ -1,26 +0,0 @@ -get: - tags: - - Verification - summary: Resolve Account Number - operationId: verification_resolveAccountNumber - parameters: - - name: account_number - in: query - schema: - type: integer - example: 0022728151 - - name: bank_code - in: query - schema: - type: integer - example: 063 - responses: - 200: - $ref: '../../responses/verification/resolve-bank.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error - \ No newline at end of file diff --git a/main/resources/verification/state.yaml b/main/resources/verification/state.yaml deleted file mode 100644 index eb80287..0000000 --- a/main/resources/verification/state.yaml +++ /dev/null @@ -1,27 +0,0 @@ -get: - tags: - - Verification - summary: List States (AVS) - operationId: verification_avs - parameters: - - in: query - name: type - schema: - type: string - - in: query - name: country - schema: - type: string - - in: query - name: currency - schema: - type: string - responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' - default: - description: Server error \ No newline at end of file diff --git a/main/resources/verification/validate-bank.yaml b/main/resources/verification/validate-bank.yaml deleted file mode 100644 index 69a4d9d..0000000 --- a/main/resources/verification/validate-bank.yaml +++ /dev/null @@ -1,10 +0,0 @@ -post: - tags: - - Verification - summary: Validate Bank Account - operationId: verification_validateAccountNumber - requestBody: - content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/verification/validate-bank.yaml' diff --git a/main/responses/accepted.yaml b/main/responses/accepted.yaml deleted file mode 100644 index f0eccc2..0000000 --- a/main/responses/accepted.yaml +++ /dev/null @@ -1,10 +0,0 @@ -description: Request accepted for processing -content: - application/json: - schema: - type: object - properties: - status: - type: boolean - message: - type: string \ No newline at end of file diff --git a/main/responses/created.yaml b/main/responses/created.yaml deleted file mode 100644 index 5a9a47b..0000000 --- a/main/responses/created.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: Resource created -content: - application/json: - schema: - $ref: './response.yaml' - examples: - Create Transfer Recipient: - $ref: '../examples/transfer-recipient/create.yaml' \ No newline at end of file diff --git a/main/responses/customer/create.yaml b/main/responses/customer/create.yaml deleted file mode 100644 index f084da1..0000000 --- a/main/responses/customer/create.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: Customer Created -content: - application/json: - schema: - $ref: '../response.yaml' - examples: - Create Customer: - $ref: '../../examples/customer/create.yaml' \ No newline at end of file diff --git a/main/responses/customer/validate.yaml b/main/responses/customer/validate.yaml deleted file mode 100644 index 88c52a2..0000000 --- a/main/responses/customer/validate.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: Customer Validation -content: - application/json: - schema: - $ref: '../response.yaml' - examples: - Validate Customer: - $ref: '../../examples/customer/validate.yaml' \ No newline at end of file diff --git a/main/responses/dedicated-virtual-account/create.yaml b/main/responses/dedicated-virtual-account/create.yaml deleted file mode 100644 index 77fbdc1..0000000 --- a/main/responses/dedicated-virtual-account/create.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: Creation Successful -content: - application/json: - schema: - $ref: '../response.yaml' - examples: - Create Dedicated Account: - $ref: '../../examples/dedicated-virtual-account/create.yaml' \ No newline at end of file diff --git a/main/responses/error.yaml b/main/responses/error.yaml deleted file mode 100644 index 360438a..0000000 --- a/main/responses/error.yaml +++ /dev/null @@ -1,6 +0,0 @@ -type: object -properties: - status: - type: boolean - message: - type: string \ No newline at end of file diff --git a/main/responses/ok.yaml b/main/responses/ok.yaml deleted file mode 100644 index f08a95c..0000000 --- a/main/responses/ok.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: Request successful -content: - application/json: - schema: - $ref: './response.yaml' - examples: - List Transfers: - $ref: '../examples/transfer/list.yaml' \ No newline at end of file diff --git a/main/responses/plan/create.yaml b/main/responses/plan/create.yaml deleted file mode 100644 index 67f9580..0000000 --- a/main/responses/plan/create.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: Create Plan -content: - application/json: - schema: - $ref: '../response.yaml' - examples: - Create Plan: - $ref: '../../examples/plan/create.yaml' \ No newline at end of file diff --git a/main/responses/refund/create.yaml b/main/responses/refund/create.yaml deleted file mode 100644 index b5c4cac..0000000 --- a/main/responses/refund/create.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: Request successful -content: - application/json: - schema: - $ref: '../response.yaml' - examples: - Create Refund: - $ref: '../../examples/refund/create.yaml' diff --git a/main/responses/split/create.yaml b/main/responses/split/create.yaml deleted file mode 100644 index 93f1479..0000000 --- a/main/responses/split/create.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: Split Creation -content: - application/json: - schema: - $ref: '../response.yaml' - examples: - Create Split: - $ref: '../../examples/split/create.yaml' \ No newline at end of file diff --git a/main/responses/subaccount/create.yaml b/main/responses/subaccount/create.yaml deleted file mode 100644 index f842c4e..0000000 --- a/main/responses/subaccount/create.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: Subaccount Creation -content: - application/json: - schema: - $ref: '../response.yaml' - examples: - Create Subaccount: - $ref: '../../examples/subaccount/create.yaml' \ No newline at end of file diff --git a/main/responses/subscription/create.yaml b/main/responses/subscription/create.yaml deleted file mode 100644 index 7752009..0000000 --- a/main/responses/subscription/create.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: Create Subscription -content: - application/json: - schema: - $ref: '../response.yaml' - examples: - Create Subscription: - $ref: '../../examples/subscription/create.yaml' \ No newline at end of file diff --git a/main/responses/transaction/charge-authorization.yaml b/main/responses/transaction/charge-authorization.yaml deleted file mode 100644 index e8aa08e..0000000 --- a/main/responses/transaction/charge-authorization.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: Request successful -content: - application/json: - schema: - $ref: '../response.yaml' - examples: - Charge Authorization: - $ref: '../../examples/transaction/charge-authorization.yaml' \ No newline at end of file diff --git a/main/responses/transaction/initialize.yaml b/main/responses/transaction/initialize.yaml deleted file mode 100644 index 5832a2b..0000000 --- a/main/responses/transaction/initialize.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: Request successful -content: - application/json: - schema: - $ref: '../response.yaml' - examples: - Initiailize Transaction: - $ref: '../../examples/transaction/initialize.yaml' diff --git a/main/responses/transaction/partial-debit.yaml b/main/responses/transaction/partial-debit.yaml deleted file mode 100644 index 3dfeedf..0000000 --- a/main/responses/transaction/partial-debit.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: Request successful -content: - application/json: - schema: - $ref: '../response.yaml' - examples: - Partial Debit: - $ref: '../../examples/transaction/partial-debit.yaml' \ No newline at end of file diff --git a/main/responses/transfer-recipient/create.yaml b/main/responses/transfer-recipient/create.yaml deleted file mode 100644 index 716407a..0000000 --- a/main/responses/transfer-recipient/create.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: Transfer Recipient Created -content: - application/json: - schema: - $ref: '../response.yaml' - examples: - Create Customer: - $ref: '../../examples/transfer-recipient/create.yaml' \ No newline at end of file diff --git a/main/responses/transfer/bulk.yaml b/main/responses/transfer/bulk.yaml deleted file mode 100644 index 4e7dc2b..0000000 --- a/main/responses/transfer/bulk.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: Request successful -content: - application/json: - schema: - $ref: '../bulk-response.yaml' - example: - $ref: '../../examples/transfer/bulk.yaml' \ No newline at end of file diff --git a/main/responses/transfer/list.yaml b/main/responses/transfer/list.yaml deleted file mode 100644 index ecbbdc0..0000000 --- a/main/responses/transfer/list.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: Request successful -content: - application/json: - schema: - $ref: '../response.yaml' - examples: - List Transfers: - $ref: '../../examples/transfer/list.yaml' diff --git a/main/responses/transfer/transfer.yaml b/main/responses/transfer/transfer.yaml deleted file mode 100644 index e72c190..0000000 --- a/main/responses/transfer/transfer.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: Request successful -content: - application/json: - schema: - $ref: '../response.yaml' - examples: - Initiate Transfer: - $ref: '../../examples/transfer/initiate.yaml' \ No newline at end of file diff --git a/main/responses/unauthorized.yaml b/main/responses/unauthorized.yaml deleted file mode 100644 index 4293649..0000000 --- a/main/responses/unauthorized.yaml +++ /dev/null @@ -1,18 +0,0 @@ -description: Unauthorized operation -content: - application/json: - examples: - No-Authorization-Header: - value: - status: false - message: "No Authorization Header was found" - Bad-Authorization-Header: - value: - status: false - message: "Format is Authorization Bearer [secret key]" - Invalid-Key: - value: - status: false - message: "Invalid key" - schema: - $ref: './error.yaml' \ No newline at end of file diff --git a/main/responses/verification/resolve-bank.yaml b/main/responses/verification/resolve-bank.yaml deleted file mode 100644 index 3e60e8b..0000000 --- a/main/responses/verification/resolve-bank.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: Resolve Account Number -content: - application/json: - schema: - $ref: '../response.yaml' - examples: - Resolve Bank: - $ref: '../../examples/verification/resolve-bank.yaml' diff --git a/main/schemas/bulk-charge/Initiate.yaml b/main/schemas/bulk-charge/Initiate.yaml deleted file mode 100644 index c5aef38..0000000 --- a/main/schemas/bulk-charge/Initiate.yaml +++ /dev/null @@ -1,14 +0,0 @@ -type: object -required: - - authorization - - amount -properties: - authorization: - description: Customer's card authorization code - type: string - amount: - description: Amount to charge on the authorization - type: string - reference: - description: Unique transaction reference. Only -, ., = and alphanumeric characters allowed. - type: string \ No newline at end of file diff --git a/main/schemas/channel/MobileMoney.yaml b/main/schemas/channel/MobileMoney.yaml deleted file mode 100644 index c5895cd..0000000 --- a/main/schemas/channel/MobileMoney.yaml +++ /dev/null @@ -1,10 +0,0 @@ -type: object -properties: - phone: - description: Customer's phone number - type: string - provider: - description: | - The telco provider of customer's phone number. - This can be fetched from the List Bank endpoint - type: string \ No newline at end of file diff --git a/main/schemas/channel/USSD.yaml b/main/schemas/channel/USSD.yaml deleted file mode 100644 index e97777d..0000000 --- a/main/schemas/channel/USSD.yaml +++ /dev/null @@ -1,10 +0,0 @@ -type: object -properties: - type: - description: The three-digit USSD code - type: string - enum: - - 737 - - 919 - - 822 - - 966 \ No newline at end of file diff --git a/main/schemas/charge/Charge.yaml b/main/schemas/charge/Charge.yaml deleted file mode 100644 index 4765c50..0000000 --- a/main/schemas/charge/Charge.yaml +++ /dev/null @@ -1,18 +0,0 @@ -allOf: - - $ref: './Create.yaml' - - type: object - properties: - bank: - $ref: '../channel/Bank.yaml' - - type: object - properties: - mobile_money: - $ref: '../channel/MobileMoney.yaml' - - type: object - properties: - ussd: - $ref: '../channel/USSD.yaml' - - type: object - properties: - eft: - $ref: '../channel/EFT.yaml' diff --git a/main/schemas/charge/Create.yaml b/main/schemas/charge/Create.yaml deleted file mode 100644 index c52f0c6..0000000 --- a/main/schemas/charge/Create.yaml +++ /dev/null @@ -1,37 +0,0 @@ -type: object -required: - - email - - amount -properties: - email: - description: Customer's email address - type: string - amount: - description: |- - Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR - type: string - authorization_code: - description: |- - An authorization code to charge. - type: string - pin: - description: |- - 4-digit PIN (send with a non-reusable authorization code) - type: string - reference: - description: |- - Unique transaction reference. Only -, .`, = and alphanumeric characters allowed. - type: string - birthday: - description: |- - The customer's birthday in the format YYYY-MM-DD e.g 2017-05-16 - type: string - format: date-time - device_id: - description: |- - This is the unique identifier of the device a user uses in making payment. - Only -, .`, = and alphanumeric characters are allowed. - type: string - metadata: - description: Stringified JSON object of custom data - type: string \ No newline at end of file diff --git a/main/schemas/charge/SubmitOTP.yaml b/main/schemas/charge/SubmitOTP.yaml deleted file mode 100644 index af9ffa5..0000000 --- a/main/schemas/charge/SubmitOTP.yaml +++ /dev/null @@ -1,12 +0,0 @@ -type: object -required: - - otp - - reference -properties: - otp: - description: Customer's OTP - type: string - reference: - description: |- - The reference of the ongoing transaction - type: string \ No newline at end of file diff --git a/main/schemas/charge/SubmitPin.yaml b/main/schemas/charge/SubmitPin.yaml deleted file mode 100644 index 37eb838..0000000 --- a/main/schemas/charge/SubmitPin.yaml +++ /dev/null @@ -1,12 +0,0 @@ -type: object -required: - - pin - - reference -properties: - pin: - description: Customer's PIN - type: string - reference: - description: |- - Transaction reference that requires the PIN - type: string \ No newline at end of file diff --git a/main/schemas/customer/Customer.yaml b/main/schemas/customer/Customer.yaml deleted file mode 100644 index 0c96315..0000000 --- a/main/schemas/customer/Customer.yaml +++ /dev/null @@ -1,6 +0,0 @@ -allOf: - - $ref: './CustomerRequired.yaml' - - $ref: './CustomerBase.yaml' - - $ref: './CustomerAuthorization.yaml' - - $ref: './CustomerRiskAction.yaml' - - $ref: './CustomerIdentification.yaml' \ No newline at end of file diff --git a/main/schemas/customer/CustomerAuthorization.yaml b/main/schemas/customer/CustomerAuthorization.yaml deleted file mode 100644 index 38685a8..0000000 --- a/main/schemas/customer/CustomerAuthorization.yaml +++ /dev/null @@ -1,7 +0,0 @@ -type: object -required: -- authorization_code -properties: - authorization_code: - description: Customer's authorization code to be deactivated - type: string \ No newline at end of file diff --git a/main/schemas/customer/CustomerIdentification.yaml b/main/schemas/customer/CustomerIdentification.yaml deleted file mode 100644 index 4503069..0000000 --- a/main/schemas/customer/CustomerIdentification.yaml +++ /dev/null @@ -1,38 +0,0 @@ -type: object -required: -- type -- country -- bvn -- bank_code -- account_number -properties: - type: - description: Predefined types of identification. - type: string - enum: - - bvn - - bank_account - country: - description: Two-letter country code of identification issuer - type: string - example: NG - bvn: - description: Customer's Bank Verification Number - type: integer - example: 0123456789 - bank_code: - description: You can get the list of bank codes by calling the List Banks endpoint (https://api.paystack.co/bank). - type: string - example: "007" - account_number: - description: Customer's bank account number. - type: string - example: "0111111111" - first_name: - description: Customer's first name - type: string - example: Uchenna - last_name: - description: Customer's last name - type: string - example: Okoro \ No newline at end of file diff --git a/main/schemas/customer/CustomerRequired.yaml b/main/schemas/customer/CustomerRequired.yaml deleted file mode 100644 index dd30ef3..0000000 --- a/main/schemas/customer/CustomerRequired.yaml +++ /dev/null @@ -1,7 +0,0 @@ -type: object -required: - - email -properties: - email: - description: Customer's email address - type: string \ No newline at end of file diff --git a/main/schemas/customer/CustomerRiskAction.yaml b/main/schemas/customer/CustomerRiskAction.yaml deleted file mode 100644 index 6833cad..0000000 --- a/main/schemas/customer/CustomerRiskAction.yaml +++ /dev/null @@ -1,16 +0,0 @@ -type: object -required: -- customer -properties: - customer: - description: Customer's code, or email address - type: string - risk_action: - description: | - One of the possible risk actions [ default, allow, deny ]. allow to whitelist. - deny to blacklist. Customers start with a default risk action. - type: string - enum: - - default - - allow - - deny \ No newline at end of file diff --git a/main/schemas/dedicated-virtual-account/Create.yaml b/main/schemas/dedicated-virtual-account/Create.yaml deleted file mode 100644 index 05657f7..0000000 --- a/main/schemas/dedicated-virtual-account/Create.yaml +++ /dev/null @@ -1,20 +0,0 @@ -type: object -required: -- customer -properties: - customer: - description: Customer ID or code - type: string - example: CUS_abc123der - preferred_bank: - description: The bank slug for preferred bank. To get a list of available banks, use the List Providers endpoint - type: string - example: wema-bank - subaccount: - description: Subaccount code of the account you want to split the transaction with - type: string - example: ACCT_123455asdin - split_code: - description: Split code consisting of the lists of accounts you want to split the transaction with - type: string - example: SPL_123asbde \ No newline at end of file diff --git a/main/schemas/dispute/Resolve.yaml b/main/schemas/dispute/Resolve.yaml deleted file mode 100644 index c622e2f..0000000 --- a/main/schemas/dispute/Resolve.yaml +++ /dev/null @@ -1,27 +0,0 @@ -type: object -required: - - resolution - - message - - refund_amount - - uploaded_filename -properties: - resolution: - description: Dispute resolution. - type: string - enum: - - merchant-accepted - - declined - message: - description: Reason for resolving - type: string - refund_amount: - description: The amount to refund, in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR - type: string - uploaded_filename: - description: |- - Filename of attachment returned via response from the Dispute upload URL - type: string - evidence: - description: |- - Evidence Id for fraud claims - type: integer \ No newline at end of file diff --git a/main/schemas/dispute/Update.yaml b/main/schemas/dispute/Update.yaml deleted file mode 100644 index be5100b..0000000 --- a/main/schemas/dispute/Update.yaml +++ /dev/null @@ -1,11 +0,0 @@ -type: object -required: - - refund_amount -properties: - refund_amount: - description: The amount to refund, in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR - type: string - uploaded_filename: - description: |- - Filename of attachment returned via response from the Dispute upload URL - type: string \ No newline at end of file diff --git a/main/schemas/page/Create.yaml b/main/schemas/page/Create.yaml deleted file mode 100644 index 755d993..0000000 --- a/main/schemas/page/Create.yaml +++ /dev/null @@ -1,31 +0,0 @@ -type: object -required: - - name -properties: - name: - description: Name of page - type: string - description: - description: The description of the page - type: string - amount: - description: |- - Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR - type: integer - slug: - description: |- - URL slug you would like to be associated with this page. Page will be accessible at https://paystack.com/pay/[slug] - type: string - metadata: - description: Stringified JSON object of custom data - type: string - redirect_url: - description: |- - If you would like Paystack to redirect to a URL upon successful payment, specify the URL here. - type: string - custom_fields: - description: |- - If you would like to accept custom fields, specify them here. - type: array - items: - type: object \ No newline at end of file diff --git a/main/schemas/product/Create.yaml b/main/schemas/product/Create.yaml deleted file mode 100644 index d608a1f..0000000 --- a/main/schemas/product/Create.yaml +++ /dev/null @@ -1,29 +0,0 @@ -type: object -required: - - name - - description - - price - - currency -properties: - name: - description: Name of product - type: string - description: - description: The description of the product - type: string - price: - description: |- - Price should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR - type: integer - currency: - description: |- - Currency in which price is set. Allowed values are: NGN, GHS, ZAR or USD - type: string - limited: - description: |- - Set to true if the product has limited stock. Leave as false if the product has unlimited stock - type: boolean - quantity: - description: |- - Number of products in stock. Use if limited is true - type: integer \ No newline at end of file diff --git a/main/schemas/product/Update.yaml b/main/schemas/product/Update.yaml deleted file mode 100644 index 1bc7d88..0000000 --- a/main/schemas/product/Update.yaml +++ /dev/null @@ -1,24 +0,0 @@ -type: object -properties: - name: - description: Name of product - type: string - description: - description: The description of the product - type: string - price: - description: |- - Price should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR - type: integer - currency: - description: |- - Currency in which price is set. Allowed values are: NGN, GHS, ZAR or USD - type: string - limited: - description: |- - Set to true if the product has limited stock. Leave as false if the product has unlimited stock - type: boolean - quantity: - description: |- - Number of products in stock. Use if limited is true - type: integer \ No newline at end of file diff --git a/main/schemas/subscription/Create.yaml b/main/schemas/subscription/Create.yaml deleted file mode 100644 index 9df170f..0000000 --- a/main/schemas/subscription/Create.yaml +++ /dev/null @@ -1,24 +0,0 @@ -type: object -required: - - customer - - plan -properties: - customer: - description: Customer's email address or customer code - type: string - example: person@example.com - plan: - description: Plan code that the customer should subscribe to - type: string - example: PLN_y4y1wkydoptw6zv - authorization: - description: |- - If customer has multiple authorizations, you can set the desired authorization you wish to use for this subscription here. - If this is not supplied, the customer's most recent authorization would be used - type: string - example: AUTH_Codaad23 - start_date: - description: |- - Set the date for the first debit. (ISO 8601 format) e.g. 2017-05-16T00:30:13+01:00 - type: string - format: date-time \ No newline at end of file diff --git a/main/schemas/transaction/ChargeAuthorization.yaml b/main/schemas/transaction/ChargeAuthorization.yaml deleted file mode 100644 index f3a6475..0000000 --- a/main/schemas/transaction/ChargeAuthorization.yaml +++ /dev/null @@ -1,67 +0,0 @@ -type: object -required: - - email - - amount - - authorization_code -properties: - email: - description: Customer's email address used during the first transaction - type: string - example: person@email.com - amount: - description: Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR - type: integer - example: 10247 - authorization_code: - description: Valid authorization code to charge - type: string - example: AUTH_CODE - reference: - description: Unique transaction reference. Only -, ., = and alphanumeric characters allowed. - type: string - example: 123.uniq=ref-2 - currency: - description: The transaction currency - type: string - enum: - - NGN - - GHS - - ZAR - - USD - metadata: - description: Stringified JSON object of custom data - type: object - example: - cart_id: 398 - custom_fields: - - display_name: Invoice ID - variable_name: Invoice ID - value: 209 - - display_name: Cart Items - variable_name: cart_items - value: 3 bananas, 12 mangoes - split_code: - description: The split code of the transaction split - type: string - example: SPL_123AbZ - subaccount: - description: The code for the subaccount that owns the payment - type: string - example: ACCT_23abcdefgh - transaction_charge: - description: |- - A flat fee to charge the subaccount for a transaction. - This overrides the split percentage set when the subaccount was created - type: integer - example: 12300 - bearer: - description: The bearer of the transaction charge - type: string - enum: - - account - - subaccount - queue: - description: |- - If you are making a scheduled charge call, it is a good idea to queue them so the processing system does not get overloaded causing transaction processing errors. - type: boolean - \ No newline at end of file diff --git a/main/schemas/transaction/CheckAuthorization.yaml b/main/schemas/transaction/CheckAuthorization.yaml deleted file mode 100644 index 11667c9..0000000 --- a/main/schemas/transaction/CheckAuthorization.yaml +++ /dev/null @@ -1,25 +0,0 @@ -type: object -required: - - email - - amount -properties: - email: - description: Customer's email address - type: string - example: person@example.com - amount: - description: Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR - type: integer - example: 10245 - authorization_code: - description: Valid authorization code to charge - type: string - example: AUTH_CODE - currency: - description: The transaction currency - type: string - enum: - - NGN - - GHS - - ZAR - - USD \ No newline at end of file diff --git a/main/schemas/transaction/Initialize.yaml b/main/schemas/transaction/Initialize.yaml deleted file mode 100644 index e84fba9..0000000 --- a/main/schemas/transaction/Initialize.yaml +++ /dev/null @@ -1,84 +0,0 @@ -type: object -required: - - email - - amount -properties: - email: - description: Customer's email address - type: string - example: person@email.com - amount: - description: Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR - type: integer - example: 10247 - currency: - description: The transaction currency - type: string - enum: - - NGN - - GHS - - ZAR - - USD - reference: - description: Unique transaction reference. Only -, ., = and alphanumeric characters allowed. - type: string - example: 123.uniq=ref- - callback_url: - description: Fully qualified url. Use this to override the callback url provided on the dashboard for this transaction - type: string - example: https://example.com/ - plan: - description: |- - If transaction is to create a subscription to a predefined plan, provide plan code here. - This would invalidate the value provided in amount - type: string - example: PLN_123wede - invoice_limit: - description: Number of times to charge customer during subscription to plan - type: integer - example: 10 - metadata: - description: Stringified JSON object of custom data - type: object - example: - metadata: - cart_id: 398 - custom_fields: - - display_name: Invoice ID - variable_name: Invoice ID - value: 209 - - display_name: Cart Items - variable_name: cart_items - value: 3 bananas, 12 mangoes - channels: - description: |- - An array of payment channels to control what channels you want to make available to the user to make a payment with - type: array - enum: - - card - - bank - - ussd - - qr - - eft - - mobile_money - - bank_transfer - split_code: - description: The split code of the transaction split - type: string - example: SPL_123AbZ - subaccount: - description: The code for the subaccount that owns the payment - type: string - example: ACCT_23abcdefgh - transaction_charge: - description: |- - A flat fee to charge the subaccount for a transaction. - This overrides the split percentage set when the subaccount was created - type: integer - example: 12300 - bearer: - description: The bearer of the transaction charge - type: string - enum: - - account - - subaccount \ No newline at end of file diff --git a/main/schemas/transaction/PartialDebit.yaml b/main/schemas/transaction/PartialDebit.yaml deleted file mode 100644 index 39fe5c6..0000000 --- a/main/schemas/transaction/PartialDebit.yaml +++ /dev/null @@ -1,35 +0,0 @@ -type: object -required: - - email - - amount - - authorization_code - - currency -properties: - email: - description: Customer's email address - type: string - example: person@email.com - amount: - description: Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR - type: integer - example: 10247 - authorization_code: - description: Valid authorization code to charge - type: string - example: AUTH_CODE - currency: - description: The transaction currency - type: string - enum: - - NGN - - GHS - - ZAR - - USD - reference: - description: Unique transaction reference. Only -, ., = and alphanumeric characters allowed. - type: string - example: 123.uniq=ref-3 - at_least: - description: Minimum amount to charge - type: integer - example: 5500 \ No newline at end of file diff --git a/main/schemas/transfer-recipient/Bulk.yaml b/main/schemas/transfer-recipient/Bulk.yaml deleted file mode 100644 index e71d5bf..0000000 --- a/main/schemas/transfer-recipient/Bulk.yaml +++ /dev/null @@ -1,11 +0,0 @@ -type: object -required: - - batch -properties: - batch: - description: |- - A list of transfer recipient object. Each object should contain type, name, and bank_code. - Any Create Transfer Recipient param can also be passed. - type: array - items: - $ref: './Create.yaml' \ No newline at end of file diff --git a/main/schemas/transfer-recipient/Create.yaml b/main/schemas/transfer-recipient/Create.yaml deleted file mode 100644 index 5bafaf0..0000000 --- a/main/schemas/transfer-recipient/Create.yaml +++ /dev/null @@ -1,50 +0,0 @@ -type: object -required: - - type - - name - - account_number - - bank_code -properties: - type: - description: Recipient Type - nuban for NGN, mobile_money for MOMO in GHS, basa for ZAR and authorization for all. - type: string - enum: - - nuban - - mobile_money - - basa - - authorization - name: - description: Recipient's name - type: string - example: Ada Lovelace - account_number: - description: Recipient's bank account number - type: string - example: "0000000000" - bank_code: - description: Recipient's bank code. You can get the list of Bank Codes by calling the List Banks endpoint - type: string - example: "011" - description: - description: A description for this recipient - type: string - example: Keeps our servers running - currency: - description: |- - Currency for the account receiving the transfer - type: string - enum: - - NGN - - GHS - - ZAR - - KES - authorization_code: - description: |- - An authorization code from a previous transaction - type: string - example: AUTH_CODE - metadata: - description: Stringified JSON object of custom data - type: string - example: > - {referrer_id: 123} \ No newline at end of file diff --git a/main/schemas/transfer/Bulk.yaml b/main/schemas/transfer/Bulk.yaml deleted file mode 100644 index f7880f1..0000000 --- a/main/schemas/transfer/Bulk.yaml +++ /dev/null @@ -1,13 +0,0 @@ -type: object -required: - - batch -properties: - source: - description: Where should we transfer from? Only balance is allowed for now - type: string - transfers: - description: |- - A list of transfer object. Each object should contain amount, recipient, and reference - type: array - items: - $ref: './Initiate.yaml' \ No newline at end of file diff --git a/main/schemas/transfer/Initiate.yaml b/main/schemas/transfer/Initiate.yaml deleted file mode 100644 index 99191df..0000000 --- a/main/schemas/transfer/Initiate.yaml +++ /dev/null @@ -1,32 +0,0 @@ -type: object -required: - - source - - amount - - recipient -properties: - source: - description: Where should we transfer from? Only balance is allowed for now - type: string - example: balance - amount: - description: Amount to transfer in kobo if currency is NGN. pesewas if currency is GHS and cents for ZAR. - type: integer - example: 10234 - recipient: - description: The transfer recipient's code - type: string - example: RCP_CODE - reason: - description: The reason or narration for the transfer. - type: string - example: Good job - currency: - description: |- - Specify the currency of the transfer. Defaults to NGN. - type: string - reference: - description: |- - If specified, the field should be a unique identifier (in lowercase) for the object. - Only -,_ and alphanumeric characters are allowed. - type: string - example: Transfer-123_unique \ No newline at end of file diff --git a/main/schemas/transfer/ResendOTP.yaml b/main/schemas/transfer/ResendOTP.yaml deleted file mode 100644 index 3663f08..0000000 --- a/main/schemas/transfer/ResendOTP.yaml +++ /dev/null @@ -1,11 +0,0 @@ -type: object -required: - - transfer_code - - reason -properties: - transfer_code: - description: The transfer code that requires an OTP validation - type: string - reason: - description: Either resend_otp or transfer - type: string \ No newline at end of file diff --git a/main/schemas/verification/validate-bank.yaml b/main/schemas/verification/validate-bank.yaml deleted file mode 100644 index b7e88af..0000000 --- a/main/schemas/verification/validate-bank.yaml +++ /dev/null @@ -1,44 +0,0 @@ -type: object -required: - - account_name - - account_number - - account_type - - bank_code - - country_code - - document_type - - document_number -properties: - account_name: - description: Customer's first and last name registered with their bank - type: string - example: Ada Lovelace - account_number: - description: Customer's account number - type: string - example: 0123456789 - account_type: - description: The type of bank account the customer is using. This can either be personal or business. - type: string - enum: - - personal - - business - bank_code: - description: The bank code of the customer's bank. You can get them from our List Banks API - type: string - example: 632005 - country_code: - description: The two digit ISO code of the customer's bank - type: string - example: ZA - document_type: - description: The customer's mode of identification. It could be identityNumber, passportNumber or businessRegistrationNumber - type: string - enum: - - identityNumber - - passportNumber - - businessRegistrationNumber - document_number: - description: Customer's mode of identity number - type: string - example: 1234567890123 - diff --git a/package.json b/package.json index 0011aed..d543514 100644 --- a/package.json +++ b/package.json @@ -3,19 +3,24 @@ "version": "1.0.0", "description": "The OpenAPI specification for the Paystack API", "author": "Damilola Odujoko", - "main": "index.js", + "main": "src/index.js", + "type": "module", "scripts": { - "build": "pnpm build-main && pnpm build-wallet && pnpm build-membership && pnpm build-marketplace && pnpm build-betting && pnpm build-lending && pnpm build-savings", - "build-main": "swagger-cli bundle main/paystack.yaml --outfile dist/paystack.yaml --type yaml", - "build-wallet": "swagger-cli bundle use_cases/wallet.yaml --outfile dist/wallet.yaml --type yaml", - "build-membership": "swagger-cli bundle use_cases/membership.yaml --outfile dist/membership.yaml --type yaml", - "build-marketplace": "swagger-cli bundle use_cases/marketplace.yaml --outfile dist/marketplace.yaml --type yaml", - "build-betting": "swagger-cli bundle use_cases/betting.yaml --outfile dist/betting.yaml --type yaml", - "build-lending": "swagger-cli bundle use_cases/lending.yaml --outfile dist/lending.yaml --type yaml", - "build-savings": "swagger-cli bundle use_cases/savings.yaml --outfile dist/savings.yaml --type yaml", - "lint": "pnpm lint-main && pnpm lint-sdk", - "lint-main": "spectral lint dist/paystack.yaml", - "lint-sdk": "spectral lint ./sdk/paystack.yaml" + "bundle": "pnpm bundle:main && pnpm bundle:usecases", + "bundle:betting": "redocly bundle ./src/assets/use_cases/betting.yaml --output dist/betting.yaml", + "bundle:lending": "redocly bundle ./src/assets/use_cases/lending.yaml --output dist/lending.yaml", + "bundle:marketplace": "redocly bundle ./src/assets/use_cases/marketplace.yaml --output dist/marketplace.yaml", + "bundle:membership": "redocly bundle ./src/assets/use_cases/membership.yaml --output dist/membership.yaml", + "bundle:savings": "redocly bundle ./src/assets/use_cases/savings.yaml --output dist/savings.yaml", + "bundle:wallet": "redocly bundle ./src/assets/use_cases/wallet.yaml --output dist/wallet.yaml", + "bundle:main": "redocly bundle ./src/assets/openapi/openapi.yaml --output dist/paystack.yaml --remove-unused-components", + "bundle:usecases": "pnpm bundle:wallet && pnpm bundle:membership && pnpm bundle:marketplace && pnpm bundle:betting && pnpm bundle:lending && pnpm bundle:savings", + "dev": "pnpm bundle && pnpm start", + "lint": "pnpm lint:main && pnpm lint:sdk", + "lint:main": "spectral lint dist/paystack.yaml", + "lint:sdk": "spectral lint ./sdk/paystack.yaml", + "split": "redocly split ./src/assets/base/paystack.yaml --outDir=./src/assets/openapi", + "start": "nodemon src/index.js" }, "repository": { "type": "git", @@ -31,9 +36,12 @@ }, "homepage": "https://github.com/PaystackOSS/openapi#readme", "devDependencies": { - "@apidevtools/swagger-cli": "^4.0.4", "@quobix/vacuum": "^0.10.1", - "@redocly/cli": "^1.22.1", - "@stoplight/spectral-cli": "^6.5.1" + "@redocly/cli": "^2.0.5", + "@stoplight/spectral-cli": "^6.15.0", + "express": "^5.1.0", + "nodemon": "^3.1.10", + "open": "^10.2.0", + "yaml": "^2.8.1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 922c0cf..c453e63 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,55 +8,44 @@ importers: .: devDependencies: - '@apidevtools/swagger-cli': - specifier: ^4.0.4 - version: 4.0.4(openapi-types@12.1.3) '@quobix/vacuum': specifier: ^0.10.1 version: 0.10.1 '@redocly/cli': - specifier: ^1.22.1 - version: 1.22.1(enzyme@3.11.0) + specifier: ^2.0.5 + version: 2.0.5(@opentelemetry/api@1.9.0)(ajv@8.17.1)(core-js@3.38.1) '@stoplight/spectral-cli': - specifier: ^6.5.1 - version: 6.11.1 + specifier: ^6.15.0 + version: 6.15.0 + express: + specifier: ^5.1.0 + version: 5.1.0 + nodemon: + specifier: ^3.1.10 + version: 3.1.10 + open: + specifier: ^10.2.0 + version: 10.2.0 + yaml: + specifier: ^2.8.1 + version: 2.8.1 packages: - '@apidevtools/json-schema-ref-parser@9.0.6': - resolution: {integrity: sha512-M3YgsLjI0lZxvrpeGVk9Ap032W6TPQkH6pRAZz81Ac3WUNF79VQooAFnp8umjvVzUmD93NkogxEwbSce7qMsUg==} + '@asyncapi/specs@6.9.0': + resolution: {integrity: sha512-gatFEH2hfJXWmv3vogIjBZfiIbPRC/ISn9UEHZZLZDdMBO0USxt3AFgCC9AY1P+eNE7zjXddXCIT7gz32XOK4g==} - '@apidevtools/openapi-schemas@2.1.0': - resolution: {integrity: sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==} - engines: {node: '>=10'} - - '@apidevtools/swagger-cli@4.0.4': - resolution: {integrity: sha512-hdDT3B6GLVovCsRZYDi3+wMcB1HfetTU20l2DC8zD3iFRNMC6QNAZG5fo/6PYeHWBEv7ri4MvnlKodhNB0nt7g==} - engines: {node: '>=10'} - deprecated: This package has been abandoned. Please switch to using the actively maintained @redocly/cli - hasBin: true - - '@apidevtools/swagger-methods@3.0.2': - resolution: {integrity: sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==} - - '@apidevtools/swagger-parser@10.1.0': - resolution: {integrity: sha512-9Kt7EuS/7WbMAUv2gSziqjvxwDbFSg3Xeyfuj5laUODX8o/k/CpsAKiQ8W7/R88eXFTMbJYg6+7uAmOWNKmwnw==} - peerDependencies: - openapi-types: '>=7' - - '@asyncapi/specs@4.3.1': - resolution: {integrity: sha512-EfexhJu/lwF8OdQDm28NKLJHFkx0Gb6O+rcezhZYLPIoNYKXJMh2J1vFGpwmfAcTTh+ffK44Oc2Hs1Q4sLBp+A==} + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} - '@babel/runtime@7.25.6': - resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==} + '@babel/helper-validator-identifier@7.27.1': + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} - '@cfaester/enzyme-adapter-react-18@0.8.0': - resolution: {integrity: sha512-3Z3ThTUouHwz8oIyhTYQljEMNRFtlVyc3VOOHCbxs47U6cnXs8K9ygi/c1tv49s7MBlTXeIcuN+Ttd9aPtILFQ==} - peerDependencies: - enzyme: ^3.11.0 - react: '>=18' - react-dom: '>=18' + '@babel/runtime@7.28.3': + resolution: {integrity: sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==} + engines: {node: '>=6.9.0'} '@emotion/is-prop-valid@1.2.2': resolution: {integrity: sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==} @@ -70,21 +59,52 @@ packages: '@exodus/schemasafe@1.3.0': resolution: {integrity: sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==} - '@jsdevtools/ono@7.1.3': - resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} + '@faker-js/faker@7.6.0': + resolution: {integrity: sha512-XK6BTq1NDMo9Xqw/YkYyGjSsg44fbNwYRx7QK2CuoQgyy+f1rrTDHoExVM5PsyXCtfl2vs2vVJ0MN0yN6LppRw==} + engines: {node: '>=14.0.0', npm: '>=6.0.0'} + + '@humanwhocodes/momoa@2.0.4': + resolution: {integrity: sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA==} + engines: {node: '>=10.10.0'} + + '@isaacs/balanced-match@4.0.1': + resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} + engines: {node: 20 || >=22} + + '@isaacs/brace-expansion@5.0.0': + resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} + engines: {node: 20 || >=22} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@jest/schemas@29.6.3': + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jsep-plugin/assignment@1.3.0': + resolution: {integrity: sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==} + engines: {node: '>= 10.16.0'} + peerDependencies: + jsep: ^0.4.0||^1.0.0 - '@jsep-plugin/regex@1.0.3': - resolution: {integrity: sha512-XfZgry4DwEZvSFtS/6Y+R48D7qJYJK6R9/yJFyUFHCIUMEEHuJ4X95TDgJp5QkmzfLYvapMPzskV5HpIDrREug==} + '@jsep-plugin/regex@1.0.4': + resolution: {integrity: sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==} engines: {node: '>= 10.16.0'} peerDependencies: jsep: ^0.4.0||^1.0.0 - '@jsep-plugin/ternary@1.1.3': - resolution: {integrity: sha512-qtLGzCNzPVJ3kdH6/zoLWDPjauHIKiLSBAR71Wa0+PWvGA8wODUQvRgxtpUA5YqAYL3CQ8S4qXhd/9WuWTZirg==} + '@jsep-plugin/ternary@1.1.4': + resolution: {integrity: sha512-ck5wiqIbqdMX6WRQztBL7ASDty9YLgJ3sSAK5ZpBzXeySvFGCzIvM6UiAI4hTZ22fEcYQVV/zhUbNscggW+Ukg==} engines: {node: '>= 10.16.0'} peerDependencies: jsep: ^0.4.0||^1.0.0 + '@noble/hashes@1.8.0': + resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} + engines: {node: ^14.21.3 || >=16} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -97,25 +117,141 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@opentelemetry/api-logs@0.202.0': + resolution: {integrity: sha512-fTBjMqKCfotFWfLzaKyhjLvyEyq5vDKTTFfBmx21btv3gvy8Lq6N5Dh2OzqeuN4DjtpSvNT1uNVfg08eD2Rfxw==} + engines: {node: '>=8.0.0'} + + '@opentelemetry/api@1.9.0': + resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} + engines: {node: '>=8.0.0'} + + '@opentelemetry/context-async-hooks@2.0.1': + resolution: {integrity: sha512-XuY23lSI3d4PEqKA+7SLtAgwqIfc6E/E9eAQWLN1vlpC53ybO3o6jW4BsXo1xvz9lYyyWItfQDDLzezER01mCw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/core@2.0.1': + resolution: {integrity: sha512-MaZk9SJIDgo1peKevlbhP6+IwIiNPNmswNL4AF0WaQJLbHXjr9SrZMgS12+iqr9ToV4ZVosCcc0f8Rg67LXjxw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/exporter-trace-otlp-http@0.202.0': + resolution: {integrity: sha512-/hKE8DaFCJuaQqE1IxpgkcjOolUIwgi3TgHElPVKGdGRBSmJMTmN/cr6vWa55pCJIXPyhKvcMrbrya7DZ3VmzA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/otlp-exporter-base@0.202.0': + resolution: {integrity: sha512-nMEOzel+pUFYuBJg2znGmHJWbmvMbdX5/RhoKNKowguMbURhz0fwik5tUKplLcUtl8wKPL1y9zPnPxeBn65N0Q==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/otlp-transformer@0.202.0': + resolution: {integrity: sha512-5XO77QFzs9WkexvJQL9ksxL8oVFb/dfi9NWQSq7Sv0Efr9x3N+nb1iklP1TeVgxqJ7m1xWiC/Uv3wupiQGevMw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/resources@2.0.1': + resolution: {integrity: sha512-dZOB3R6zvBwDKnHDTB4X1xtMArB/d324VsbiPkX/Yu0Q8T2xceRthoIVFhJdvgVM2QhGVUyX9tzwiNxGtoBJUw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-logs@0.202.0': + resolution: {integrity: sha512-pv8QiQLQzk4X909YKm0lnW4hpuQg4zHwJ4XBd5bZiXcd9urvrJNoNVKnxGHPiDVX/GiLFvr5DMYsDBQbZCypRQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.4.0 <1.10.0' + + '@opentelemetry/sdk-metrics@2.0.1': + resolution: {integrity: sha512-wf8OaJoSnujMAHWR3g+/hGvNcsC16rf9s1So4JlMiFaFHiE4HpIA3oUh+uWZQ7CNuK8gVW/pQSkgoa5HkkOl0g==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.9.0 <1.10.0' + + '@opentelemetry/sdk-trace-base@2.0.1': + resolution: {integrity: sha512-xYLlvk/xdScGx1aEqvxLwf6sXQLXCjk3/1SQT9X9AoN5rXRhkdvIFShuNNmtTEPRBqcsMbS4p/gJLNI2wXaDuQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-trace-node@2.0.1': + resolution: {integrity: sha512-UhdbPF19pMpBtCWYP5lHbTogLWx9N0EBxtdagvkn5YtsAnCBZzL7SjktG+ZmupRgifsHMjwUaCCaVmqGfSADmA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/semantic-conventions@1.34.0': + resolution: {integrity: sha512-aKcOkyrorBGlajjRdVoJWHTxfxO1vCNHLJVlSDaRHDIdjU+pX8IYQPvPDkYiujKLbRnWU+1TBwEt0QRgSm4SGA==} + engines: {node: '>=14'} + + '@protobufjs/aspromise@1.1.2': + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + + '@protobufjs/base64@1.1.2': + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + + '@protobufjs/codegen@2.0.4': + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + + '@protobufjs/eventemitter@1.1.0': + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + + '@protobufjs/fetch@1.1.0': + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + + '@protobufjs/float@1.0.2': + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + + '@protobufjs/inquire@1.1.0': + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + + '@protobufjs/path@1.1.2': + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + + '@protobufjs/pool@1.1.0': + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + + '@protobufjs/utf8@1.1.0': + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + '@quobix/vacuum@0.10.1': resolution: {integrity: sha512-59KILui8mCqA1x0WjVlwUr2oW0CtDh49MlOlETK8nfeMCJ1SWrjbssp6YL5KdcJX/kGVbjOIxkLSZz+rRwlGcA==} engines: {node: '>=16.0.0'} hasBin: true - '@redocly/ajv@8.11.0': - resolution: {integrity: sha512-9GWx27t7xWhDIR02PA18nzBdLcKQRgc46xNQvjFkrYk4UOmvKhJ/dawwiX0cCOeetN5LcaaiqQbVOWYK62SGHw==} + '@redocly/ajv@8.11.2': + resolution: {integrity: sha512-io1JpnwtIcvojV7QKDUSIuMN/ikdOUd1ReEnUnMKGfDVridQZ31J0MmIuqwuRjWDZfmvr+Q0MqCcfHM2gTivOg==} + + '@redocly/ajv@8.11.3': + resolution: {integrity: sha512-4P3iZse91TkBiY+Dx5DUgxQ9GXkVJf++cmI0MOyLDxV9b5MUBI4II6ES8zA5JCbO72nKAJxWrw4PUPW+YP3ZDQ==} - '@redocly/cli@1.22.1': - resolution: {integrity: sha512-fGBj3KH32JH9Kg4Y3DQ2iF5jfpjT7T5ypA3JOpJcwGZTI/krDzrSxOb7ArX0HCATCBCobkWzDynHBF03j9oPvw==} - engines: {node: '>=14.19.0', npm: '>=7.0.0'} + '@redocly/cli@2.0.5': + resolution: {integrity: sha512-NJTIZLOybSdFoxdLIrkLAA/Li4xFb5rBtfqK8uPDxqlh+POprRMEtcnvLRYN9GMJIFmWb37bSCNYgD5nD4KdQQ==} + engines: {node: '>=22.12.0 || >=20.19.0 <21.0.0', npm: '>=10'} hasBin: true - '@redocly/config@0.10.1': - resolution: {integrity: sha512-H3LnKVGzOaxskwJu8pmJYwBOWjP61qOK7TuTrbafqArDVckE06fhA6l0nO4KvBbjLPjy1Al7UnlxOu23V4Nl0w==} + '@redocly/config@0.22.2': + resolution: {integrity: sha512-roRDai8/zr2S9YfmzUfNhKjOF0NdcOIqF7bhf4MVC5UxpjIysDjyudvlAiVbpPHp3eDRWbdzUgtkK1a7YiDNyQ==} + + '@redocly/config@0.28.0': + resolution: {integrity: sha512-IdY4bSX9bbjXkDX91oO1OVwCzB00UNF0ozoygacTpS5Exa3ewYCB/6BcbA0tGCAvKDIwSY9Jor2cWQ/ycQfBTg==} - '@redocly/openapi-core@1.22.1': - resolution: {integrity: sha512-pjr456gJzrbwPvBjFKlWOd9nZEcr/dp6XSH0c8ijWGWv5K+V0vpUUy2zaTAVsFAoCydx1miEoOcbLhWQ9WC2nw==} - engines: {node: '>=14.19.0', npm: '>=7.0.0'} + '@redocly/openapi-core@1.34.5': + resolution: {integrity: sha512-0EbE8LRbkogtcCXU7liAyC00n9uNG9hJ+eMyHFdUsy9lB/WGqnEBgwjA9q2cyzAVcdTkQqTBBU1XePNnN3OijA==} + engines: {node: '>=18.17.0', npm: '>=9.5.0'} + + '@redocly/openapi-core@2.0.5': + resolution: {integrity: sha512-p8e2MueEIutLoPUEuw9fYoBZPTQILkaE1vBu8KHByhl+QR4HF7fKUVhwcyZOpmj28Vrl+fxCwQ9T3LR79UPgiA==} + engines: {node: '>=22.12.0 || >=20.19.0 <21.0.0', npm: '>=10'} + + '@redocly/respect-core@2.0.5': + resolution: {integrity: sha512-5jCAtbgxWisUHSIjAkOol2c9P9J55Lv4PKDqOef4ZrsMKzJs8DP37jJdCFoymiz7sUL0kK8FYV3aeBhVk0gpVg==} + engines: {node: '>=22.12.0 || >=20.19.0 <21.0.0', npm: '>=10'} '@rollup/plugin-commonjs@22.0.2': resolution: {integrity: sha512-//NdP6iIwPbMTcazYsiBMbJW7gfmpHom33u1beiIoHDEM0Q9clvtQB1T0efvMqHeKsGohiHo97BCPCkBXdscwg==} @@ -129,6 +265,9 @@ packages: peerDependencies: rollup: ^1.20.0||^2.0.0 + '@sinclair/typebox@0.27.8': + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@stoplight/better-ajv-errors@1.0.3': resolution: {integrity: sha512-0p9uXkuB22qGdNfy3VeEhxkU5uwvp/KrBTAbrLBURv6ilxIVwanKwjMc41lQfIVgPGcOkmLbTolfFrSsueu7zA==} engines: {node: ^12.20 || >= 14.13} @@ -155,54 +294,50 @@ packages: resolution: {integrity: sha512-lyIc6JUlUA8Ve5ELywPC8I2Sdnh1zc1zmbYgVarhXIp9YeAB0ReeqmGEOWNtlHkbP2DAA1AL65Wfn2ncjK/jtQ==} engines: {node: '>=8'} - '@stoplight/spectral-cli@6.11.1': - resolution: {integrity: sha512-1zqsQ0TOuVSnxxZ9mHBfC0IygV6ex7nAY6Mp59mLmw5fW103U9yPVK5ZcX9ZngCmr3PdteAnMDUIIaoDGso6nA==} - engines: {node: ^12.20 || >= 14.13} + '@stoplight/spectral-cli@6.15.0': + resolution: {integrity: sha512-FVeQIuqQQnnLfa8vy+oatTKUve7uU+3SaaAfdjpX/B+uB1NcfkKRJYhKT9wMEehDRaMPL5AKIRYMCFerdEbIpw==} + engines: {node: ^16.20 || ^18.18 || >= 20.17} hasBin: true - '@stoplight/spectral-core@1.18.3': - resolution: {integrity: sha512-YY8x7X2SWJIhGTLPol+eFiQpWPz0D0mJdkK2i4A0QJG68KkNhypP6+JBC7/Kz3XWjqr0L/RqAd+N5cQLPOKZGQ==} - engines: {node: ^12.20 || >= 14.13} + '@stoplight/spectral-core@1.20.0': + resolution: {integrity: sha512-5hBP81nCC1zn1hJXL/uxPNRKNcB+/pEIHgCjPRpl/w/qy9yC9ver04tw1W0l/PMiv0UeB5dYgozXVQ4j5a6QQQ==} + engines: {node: ^16.20 || ^18.18 || >= 20.17} - '@stoplight/spectral-formats@1.6.0': - resolution: {integrity: sha512-X27qhUfNluiduH0u/QwJqhOd8Wk5YKdxVmKM03Aijlx0AH1H5mYt3l9r7t2L4iyJrsBaFPnMGt7UYJDGxszbNA==} - engines: {node: '>=12'} + '@stoplight/spectral-formats@1.8.2': + resolution: {integrity: sha512-c06HB+rOKfe7tuxg0IdKDEA5XnjL2vrn/m/OVIIxtINtBzphZrOgtRn7epQ5bQF5SWp84Ue7UJWaGgDwVngMFw==} + engines: {node: ^16.20 || ^18.18 || >= 20.17} - '@stoplight/spectral-formatters@1.3.0': - resolution: {integrity: sha512-ryuMwlzbPUuyn7ybSEbFYsljYmvTaTyD51wyCQs4ROzgfm3Yo5QDD0IsiJUzUpKK/Ml61ZX8ebgiPiRFEJtBpg==} - engines: {node: ^12.20 || >=14.13} + '@stoplight/spectral-formatters@1.5.0': + resolution: {integrity: sha512-lR7s41Z00Mf8TdXBBZQ3oi2uR8wqAtR6NO0KA8Ltk4FSpmAy0i6CKUmJG9hZQjanTnGmwpQkT/WP66p1GY3iXA==} + engines: {node: ^16.20 || ^18.18 || >= 20.17} - '@stoplight/spectral-functions@1.8.0': - resolution: {integrity: sha512-ZrAkYA/ZGbuQ6EyG1gisF4yQ5nWP/+glcqVoGmS6kH6ekaynz2Yp6FL0oIamWj3rWedFUN7ppwTRUdo+9f/uCw==} - engines: {node: '>=12'} + '@stoplight/spectral-functions@1.10.1': + resolution: {integrity: sha512-obu8ZfoHxELOapfGsCJixKZXZcffjg+lSoNuttpmUFuDzVLT3VmH8QkPXfOGOL5Pz80BR35ClNAToDkdnYIURg==} + engines: {node: ^16.20 || ^18.18 || >= 20.17} - '@stoplight/spectral-parsers@1.0.4': - resolution: {integrity: sha512-nCTVvtX6q71M8o5Uvv9kxU31Gk1TRmgD6/k8HBhdCmKG6FWcwgjiZouA/R3xHLn/VwTI/9k8SdG5Mkdy0RBqbQ==} - engines: {node: ^12.20 || >=14.13} + '@stoplight/spectral-parsers@1.0.5': + resolution: {integrity: sha512-ANDTp2IHWGvsQDAY85/jQi9ZrF4mRrA5bciNHX+PUxPr4DwS6iv4h+FVWJMVwcEYdpyoIdyL+SRmHdJfQEPmwQ==} + engines: {node: ^16.20 || ^18.18 || >= 20.17} - '@stoplight/spectral-ref-resolver@1.0.4': - resolution: {integrity: sha512-5baQIYL0NJTSVy8v6RxOR4U51xOUYM8wJri1YvlAT6bPN8m0EIxMwfVYi0xUZEMVeHcWx869nIkoqyWmOutF2A==} - engines: {node: '>=12'} + '@stoplight/spectral-ref-resolver@1.0.5': + resolution: {integrity: sha512-gj3TieX5a9zMW29z3mBlAtDOCgN3GEc1VgZnCVlr5irmR4Qi5LuECuFItAq4pTn5Zu+sW5bqutsCH7D4PkpyAA==} + engines: {node: ^16.20 || ^18.18 || >= 20.17} - '@stoplight/spectral-ruleset-bundler@1.5.2': - resolution: {integrity: sha512-4QUVUFAU+S7IQ9XeCu+0TQMYxKFpKnkOAfa9unRQ1iPL2cviaipEN6witpbAptdHJD3UUjx4OnwlX8WwmXSq9w==} - engines: {node: ^12.20 || >= 14.13} + '@stoplight/spectral-ruleset-bundler@1.6.3': + resolution: {integrity: sha512-AQFRO6OCKg8SZJUupnr3+OzI1LrMieDTEUHsYgmaRpNiDRPvzImE3bzM1KyQg99q58kTQyZ8kpr7sG8Lp94RRA==} + engines: {node: ^16.20 || ^18.18 || >= 20.17} - '@stoplight/spectral-ruleset-migrator@1.9.5': - resolution: {integrity: sha512-76n/HETr3UinVl/xLNldrH9p0JNoD8Gz4K75J6E4OHp4xD0P+BA2e8+W30HjIvqm1LJdLU2BNma0ioy+q3B9RA==} - engines: {node: '>=12'} + '@stoplight/spectral-ruleset-migrator@1.11.2': + resolution: {integrity: sha512-6r5i4hrDmppspSSxdUKKNHc07NGSSIkvwKNk3M5ukCwvSslImvDEimeWAhPBryhmSJ82YAsKr8erZZpKullxWw==} + engines: {node: ^16.20 || ^18.18 || >= 20.17} - '@stoplight/spectral-rulesets@1.19.1': - resolution: {integrity: sha512-rfGK87Y1JJCEeLC8MVdLkjUkRH+Y6VnSF388D+UWihfU9xuq2eNB9phWpTFkG+AG4HLRyGx963BmO6PyM9dBag==} - engines: {node: '>=12'} - - '@stoplight/spectral-runtime@1.1.2': - resolution: {integrity: sha512-fr5zRceXI+hrl82yAVoME+4GvJie8v3wmOe9tU+ZLRRNonizthy8qDi0Z/z4olE+vGreSDcuDOZ7JjRxFW5kTw==} - engines: {node: '>=12'} + '@stoplight/spectral-rulesets@1.22.0': + resolution: {integrity: sha512-l2EY2jiKKLsvnPfGy+pXC0LeGsbJzcQP5G/AojHgf+cwN//VYxW1Wvv4WKFx/CLmLxc42mJYF2juwWofjWYNIQ==} + engines: {node: ^16.20 || ^18.18 || >= 20.17} - '@stoplight/types@12.5.0': - resolution: {integrity: sha512-dwqYcDrGmEyUv5TWrDam5TGOxU72ufyQ7hnOIIDdmW5ezOwZaBFoR5XQ9AsH49w7wgvOqB2Bmo799pJPWnpCbg==} - engines: {node: '>=8'} + '@stoplight/spectral-runtime@1.1.4': + resolution: {integrity: sha512-YHbhX3dqW0do6DhiPSgSGQzr6yQLlWybhKwWx0cqxjMwxej3TqLv3BXMfIUYFKKUqIwH4Q2mV8rrMM8qD2N0rQ==} + engines: {node: ^16.20 || ^18.18 || >= 20.17} '@stoplight/types@13.20.0': resolution: {integrity: sha512-2FNTv05If7ib79VPDA/r9eUet76jewXFH2y2K5vuge6SXbRHtWBhcaRmu+6QpF4/WRNoJj5XYRSwLGXDxysBGA==} @@ -236,14 +371,17 @@ packages: '@types/estree@0.0.39': resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/node@22.5.4': - resolution: {integrity: sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==} + '@types/markdown-escape@1.1.3': + resolution: {integrity: sha512-JIc1+s3y5ujKnt/+N+wq6s/QdL2qZ11fP79MijrVXsAAnzSxCbT2j/3prHRouJdZ2yFLN3vkP0HytfnoCczjOw==} + + '@types/node@24.3.0': + resolution: {integrity: sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==} '@types/sarif@2.1.7': resolution: {integrity: sha512-kRz0VEkJqWLf1LLVN4pT1cg1Z9wAuvI6L97V3m2f5B76Tg8d413ddvLBPTEHAZJlnn4XSvu0FkZtViCQGVyrXQ==} @@ -251,6 +389,9 @@ packages: '@types/stylis@4.2.5': resolution: {integrity: sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==} + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + '@types/urijs@1.19.25': resolution: {integrity: sha512-XOfUup9r3Y06nFAZh3WvO0rBU4OtlfPB/vgxpjg+NRdGU6CN6djdc6OEiH+PcqHCY6eFLo9Ista73uarf4gnBg==} @@ -258,8 +399,12 @@ packages: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} - agent-base@7.1.1: - resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} + accepts@2.0.0: + resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} + engines: {node: '>= 0.6'} + + agent-base@7.1.4: + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} ajv-draft-04@1.0.0: @@ -290,34 +435,35 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - array-buffer-byte-length@1.0.1: - resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} - engines: {node: '>= 0.4'} - - array.prototype.filter@1.0.4: - resolution: {integrity: sha512-r+mCJ7zXgXElgR4IRC+fkvNCeoaavWBs6EdCso5Tbcf+iEMKzBU/His60lt34WEZ9vlb8wDkZvQGcVI5GwkfoQ==} - engines: {node: '>= 0.4'} - - array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + array-buffer-byte-length@1.0.2: + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} - arraybuffer.prototype.slice@1.0.3: - resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + arraybuffer.prototype.slice@1.0.4: + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} engines: {node: '>= 0.4'} as-table@1.0.55: @@ -331,6 +477,10 @@ packages: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true + async-function@1.0.0: + resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} + engines: {node: '>= 0.4'} + asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -341,18 +491,25 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + better-ajv-errors@1.2.0: + resolution: {integrity: sha512-UW+IsFycygIo7bclP9h5ugkNH8EjCSgqyFB/yQ4Hqqa1OEYDtb0uFIkYE0b6+CjkgJYVM5UKI/pJPxjYe9EZlA==} + engines: {node: '>= 12.13.0'} + peerDependencies: + ajv: 4.11.8 - 8 + binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + body-parser@2.2.0: + resolution: {integrity: sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==} + engines: {node: '>=18'} - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} @@ -361,17 +518,29 @@ packages: builtins@1.0.3: resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} - call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} engines: {node: '>= 0.4'} call-me-maybe@1.0.2: resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} - camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - camelize@1.0.1: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} @@ -379,13 +548,6 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - cheerio-select@2.1.0: - resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} - - cheerio@1.0.0: - resolution: {integrity: sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==} - engines: {node: '>=18.17'} - chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -397,9 +559,6 @@ packages: classnames@2.5.1: resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} - cliui@6.0.0: - resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} - cliui@7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} @@ -421,36 +580,49 @@ packages: colorette@1.4.0: resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} - commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + content-disposition@1.0.0: + resolution: {integrity: sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==} + engines: {node: '>= 0.6'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + cookie-signature@1.2.2: + resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} + engines: {node: '>=6.6.0'} + + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + core-js@3.38.1: resolution: {integrity: sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + css-color-keywords@1.0.0: resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==} engines: {node: '>=4'} - css-select@5.1.0: - resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} - css-to-react-native@3.2.0: resolution: {integrity: sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==} - css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} - csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -461,20 +633,20 @@ packages: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} engines: {node: '>= 12'} - data-view-buffer@1.0.1: - resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + data-view-buffer@1.0.2: + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} engines: {node: '>= 0.4'} - data-view-byte-length@1.0.1: - resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + data-view-byte-length@1.0.2: + resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} engines: {node: '>= 0.4'} - data-view-byte-offset@1.0.0: - resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + data-view-byte-offset@1.0.1: + resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} engines: {node: '>= 0.4'} - debug@4.3.7: - resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + debug@4.4.1: + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -482,17 +654,25 @@ packages: supports-color: optional: true - decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - decko@1.2.0: resolution: {integrity: sha512-m8FnyHXV1QX+S1cl+KPFDIl6NMkxtKsy6+U/aYyjrOqWMuwAwYWu7ePqrsUHtDR5Y8Yk2pi/KIDSgF+vT4cPOQ==} + default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} + + default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} + define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} @@ -501,77 +681,71 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + dependency-graph@0.11.0: resolution: {integrity: sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==} engines: {node: '>= 0.6.0'} - discontinuous-range@1.0.0: - resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==} + diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dompurify@3.2.6: + resolution: {integrity: sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==} - domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + dotenv@16.4.7: + resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} + engines: {node: '>=12'} - domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} - dompurify@3.1.6: - resolution: {integrity: sha512-cTOAhc36AalkjtBpfG6O8JimdTMWNXjiePT2xQH/ppBGi/4uIpmj8eKyIkMJErXWARyINV/sB38yf8JCLF5pbQ==} + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - domutils@3.1.0: - resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - encoding-sniffer@0.2.0: - resolution: {integrity: sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==} - - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - - enzyme-shallow-equal@1.0.7: - resolution: {integrity: sha512-/um0GFqUXnpM9SvKtje+9Tjoz3f1fpBC3eXRFrNs8kpYn69JljciYP7KZTqM/YQbUY9KUjvKB4jo/q+L6WGGvg==} + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - enzyme@3.11.0: - resolution: {integrity: sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw==} + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} - es-abstract@1.23.3: - resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + es-abstract@1.24.0: + resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} engines: {node: '>= 0.4'} - es-aggregate-error@1.0.13: - resolution: {integrity: sha512-KkzhUUuD2CUMqEc8JEqsXEMDHzDPE8RCjZeUBitsnB1eNcAJWQPiciKsMXe3Yytj4Flw1XLl46Qcf9OxvZha7A==} + es-aggregate-error@1.0.14: + resolution: {integrity: sha512-3YxX6rVb07B5TV11AV5wsL7nQCHXNwoHPsQC8S4AmBiqYhyNCJ5BRKXkXyDJvs8QzXN20NgRtxe3dEEQD9NLHA==} engines: {node: '>= 0.4'} - es-array-method-boxes-properly@1.0.0: - resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} - - es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} engines: {node: '>= 0.4'} es-errors@1.3.0: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} - es-set-tostringtag@2.0.3: - resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} - es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} - - es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + es-to-primitive@1.3.0: + resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} es6-promise@3.3.1: @@ -581,10 +755,8 @@ packages: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} estree-walker@1.0.1: resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} @@ -592,6 +764,10 @@ packages: estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + event-target-shim@5.0.1: resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} engines: {node: '>=6'} @@ -599,6 +775,10 @@ packages: eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + express@5.1.0: + resolution: {integrity: sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==} + engines: {node: '>= 18'} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -612,11 +792,15 @@ packages: fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - fast-uri@3.0.1: - resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==} + fast-uri@3.0.6: + resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + fast-xml-parser@4.5.3: + resolution: {integrity: sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig==} + hasBin: true + + fastq@1.19.1: + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} fetch-blob@3.2.0: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} @@ -626,24 +810,37 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} + finalhandler@2.1.0: + resolution: {integrity: sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==} + engines: {node: '>= 0.8'} - for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + engines: {node: '>= 0.4'} foreach@2.0.6: resolution: {integrity: sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==} - form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + + form-data@4.0.4: + resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} engines: {node: '>= 6'} formdata-polyfill@4.0.10: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + fresh@2.0.0: + resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} + engines: {node: '>= 0.8'} + fs-extra@10.1.0: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} @@ -663,8 +860,8 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + function.prototype.name@1.1.8: + resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} engines: {node: '>= 0.4'} functions-have-names@1.2.3: @@ -674,24 +871,30 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} - get-port-please@3.1.2: - resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==} + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} get-source@2.0.12: resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} - get-symbol-description@1.0.2: - resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + get-symbol-description@1.1.0: + resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} + glob@11.0.3: + resolution: {integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==} + engines: {node: 20 || >=22} + hasBin: true + glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -700,8 +903,9 @@ packages: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} - gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -711,8 +915,13 @@ packages: engines: {node: '>=0.4.7'} hasBin: true - has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + has-bigints@1.1.0: + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} + engines: {node: '>= 0.4'} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} @@ -721,22 +930,18 @@ packages: has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + has-proto@1.2.0: + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} engines: {node: '>= 0.4'} - has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} has-tostringtag@1.0.2: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} - has@1.0.4: - resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} - engines: {node: '>= 0.4.0'} - hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -745,23 +950,24 @@ packages: resolution: {integrity: sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA==} engines: {node: '>=14'} - html-element-map@1.3.1: - resolution: {integrity: sha512-6XMlxrAFX4UEEGxctfFnmrFaaZFNf9i5fNuV5wZ3WWQ4FVaNP1aX1LkX9j2mfEx1NpjeE/rL3nmgEn23GdFmrg==} - - htmlparser2@9.1.0: - resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==} + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} http2-client@1.3.5: resolution: {integrity: sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==} - https-proxy-agent@7.0.5: - resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} + ignore-by-default@1.0.1: + resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} + immer@9.0.21: resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} @@ -772,97 +978,164 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - internal-slot@1.0.7: - resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + internal-slot@1.1.0: + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} - is-array-buffer@3.0.4: - resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + is-array-buffer@3.0.5: + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} + engines: {node: '>= 0.4'} + + is-async-function@2.1.1: + resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} engines: {node: '>= 0.4'} - is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + is-bigint@1.1.0: + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + engines: {node: '>= 0.4'} is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} - is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + is-boolean-object@1.2.2: + resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} engines: {node: '>= 0.4'} is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-core-module@2.15.1: - resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} - is-data-view@1.0.1: - resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + is-data-view@1.0.2: + resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} engines: {node: '>= 0.4'} - is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + is-date-object@1.1.0: + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} engines: {node: '>= 0.4'} + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} + is-finalizationregistry@1.1.1: + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} + engines: {node: '>= 0.4'} + is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} + is-generator-function@1.1.0: + resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} + engines: {node: '>= 0.4'} + is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + is-negative-zero@2.0.3: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} - is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + is-number-object@1.1.1: + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} engines: {node: '>= 0.4'} is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + is-promise@4.0.0: + resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} + is-reference@1.2.1: resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} - is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} - is-shared-array-buffer@1.0.3: - resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} engines: {node: '>= 0.4'} - is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + is-shared-array-buffer@1.0.4: + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} engines: {node: '>= 0.4'} - is-subset@0.1.1: - resolution: {integrity: sha512-6Ybun0IkarhmEqxXCNw/C0bna6Zb/TkfUX9UbwJtK6ObwAVCxmAP308WWTHviM/zAqXk05cdhYsUsZeGQh99iw==} + is-string@1.1.1: + resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} + engines: {node: '>= 0.4'} - is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + is-symbol@1.1.1: + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} engines: {node: '>= 0.4'} - is-typed-array@1.1.13: - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} - is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + + is-weakref@1.1.1: + resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} + engines: {node: '>= 0.4'} + + is-weakset@2.0.4: + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} + engines: {node: '>= 0.4'} + + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + jackspeak@4.1.1: + resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} + engines: {node: 20 || >=22} + + jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + js-levenshtein@1.1.6: resolution: {integrity: sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==} engines: {node: '>=0.10.0'} @@ -870,37 +1143,34 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - jsep@1.3.9: - resolution: {integrity: sha512-i1rBX5N7VPl0eYb6+mHNp52sEuaS2Wi8CDYx1X5sn9naevL78+265XJqy1qENEk7mRKwS06NHpUqiBwR7qeodw==} + jsep@1.4.0: + resolution: {integrity: sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==} engines: {node: '>= 10.16.0'} json-pointer@0.6.2: resolution: {integrity: sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==} + json-schema-to-ts@2.7.2: + resolution: {integrity: sha512-R1JfqKqbBR4qE8UyBR56Ms30LL62/nlhoz+1UkfI/VE7p54Awu919FZ6ZUPG8zIa3XB65usPJgr1ONVncUGSaQ==} + engines: {node: '>=16'} + json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} jsonc-parser@2.2.1: resolution: {integrity: sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w==} - jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - - jsonpath-plus@6.0.1: - resolution: {integrity: sha512-EvGovdvau6FyLexFH2OeXfIITlgIbgZoAZe3usiySeaIDm5QS+A10DKNpaPBBqqRSZr2HN6HVNXxtwUAr2apEw==} - engines: {node: '>=10.0.0'} + jsonfile@6.2.0: + resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} - jsonpath-plus@7.1.0: - resolution: {integrity: sha512-gTaNRsPWO/K2KY6MrqaUFClF9kmuM6MFH5Dhg1VYDODgFbByw1yb7xu3hrViE/sz+dGOeMWgCzwUwQtAnCTE9g==} - engines: {node: '>=12.0.0'} + jsonpath-plus@10.3.0: + resolution: {integrity: sha512-8TNmfeTCk2Le33A3vRRwtuworG/L5RrgMvdjhKZxvyShO+mBu2fP50OWUjRLNtvw344DdDarFh9buFAZs5ujeA==} + engines: {node: '>=18.0.0'} + hasBin: true jsonpointer@5.0.1: resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} @@ -910,29 +1180,23 @@ packages: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - - lodash.escape@4.0.1: - resolution: {integrity: sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==} - - lodash.flattendeep@4.4.0: - resolution: {integrity: sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==} - - lodash.isequal@4.5.0: - resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} - lodash.topath@4.5.2: resolution: {integrity: sha512-1/W4dM+35DwvE/iEd1M9ekewOSTlpFekhw9mhAtrwjVqUr83/ilQiyAvmg4tVX7Unkcfl1KC+i9WdaT4B6aQcg==} lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + long@5.3.2: + resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} + loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true + lru-cache@11.1.0: + resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==} + engines: {node: 20 || >=22} + lunr@2.3.9: resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} @@ -942,11 +1206,26 @@ packages: mark.js@8.11.1: resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} + markdown-escape@2.0.0: + resolution: {integrity: sha512-Trz4v0+XWlwy68LJIyw3bLbsJiC8XAbRCKF9DbEtZjyndKOGVx6n+wNB0VfoRmY2LKboQLeniap3xrb6LGSJ8A==} + marked@4.3.0: resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==} engines: {node: '>= 12'} hasBin: true + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + media-typer@1.1.0: + resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} + engines: {node: '>= 0.8'} + + merge-descriptors@2.0.0: + resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} + engines: {node: '>=18'} + merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -959,10 +1238,22 @@ packages: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + engines: {node: '>= 0.6'} + mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} + mime-types@3.0.1: + resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==} + engines: {node: '>= 0.6'} + + minimatch@10.0.3: + resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} + engines: {node: 20 || >=22} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -981,6 +1272,10 @@ packages: resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} engines: {node: '>=8'} + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} @@ -990,11 +1285,11 @@ packages: engines: {node: '>=10'} hasBin: true - mobx-react-lite@4.0.7: - resolution: {integrity: sha512-RjwdseshK9Mg8On5tyJZHtGD+J78ZnCnRaxeQDSiciKVQDUbfZcXhmld0VMxAwvcTnPEHZySGGewm467Fcpreg==} + mobx-react-lite@4.1.0: + resolution: {integrity: sha512-QEP10dpHHBeQNv1pks3WnHRCem2Zp636lq54M2nKO2Sarr13pL4u6diQXf65yzXUn0mkk18SyIDCm9UOJYTi1w==} peerDependencies: mobx: ^6.9.0 - react: ^16.8.0 || ^17 || ^18 + react: ^16.8.0 || ^17 || ^18 || ^19 react-dom: '*' react-native: '*' peerDependenciesMeta: @@ -1003,11 +1298,11 @@ packages: react-native: optional: true - mobx-react@9.1.1: - resolution: {integrity: sha512-gVV7AdSrAAxqXOJ2bAbGa5TkPqvITSzaPiiEkzpW4rRsMhSec7C2NBCJYILADHKp2tzOAIETGRsIY0UaCV5aEw==} + mobx-react@9.2.0: + resolution: {integrity: sha512-dkGWCx+S0/1mfiuFfHRH8D9cplmwhxOV5CkXMp38u6rQGG2Pv3FWYztS0M7ncR6TyPRQKaTG/pnitInoYE9Vrw==} peerDependencies: mobx: ^6.9.0 - react: ^16.8.0 || ^17 || ^18 + react: ^16.8.0 || ^17 || ^18 || ^19 react-dom: '*' react-native: '*' peerDependenciesMeta: @@ -1016,34 +1311,32 @@ packages: react-native: optional: true - mobx@6.13.1: - resolution: {integrity: sha512-ekLRxgjWJr8hVxj9ZKuClPwM/iHckx3euIJ3Np7zLVNtqJvfbbq7l370W/98C8EabdQ1pB5Jd3BbDWxJPNnaOg==} - - moo@0.5.2: - resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} + mobx@6.13.7: + resolution: {integrity: sha512-aChaVU/DO5aRPmk1GX8L+whocagUUpBQqoPtJk+cm7UOXUk87J4PeWCh6nNmTTIfEhiR9DI/+FnA8dln/hTK7g==} ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nearley@2.20.1: - resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} - hasBin: true + negotiator@1.0.0: + resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} + engines: {node: '>= 0.6'} neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - nimma@0.2.2: - resolution: {integrity: sha512-V52MLl7BU+tH2Np9tDrIXK8bql3MVUadnMIl/0/oZSGC9keuro0O9UUv9QKp0aMvtN8HRew4G7byY7H4eWsxaQ==} + nimma@0.2.3: + resolution: {integrity: sha512-1ZOI8J+1PKKGceo/5CT5GfQOG6H8I2BencSK06YarZ2wXwH37BSSUWldqJmMJYA5JfqDqffxDXynt6f11AyKcA==} engines: {node: ^12.20 || >=14.13} node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} + deprecated: Use your platform's native DOMException instead node-fetch-h2@2.3.0: resolution: {integrity: sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==} @@ -1069,13 +1362,15 @@ packages: resolution: {integrity: sha512-Pzr3rol8fvhG/oJjIq2NTVB0vmdNNlz22FENhhPojYRZ4/ee08CfK4YuKmuL54V9MLhI1kpzxfOJ/63LzmZzDg==} engines: {node: '>=14'} + nodemon@3.1.10: + resolution: {integrity: sha512-WDjw3pJ0/0jMFmyNDp3gvY2YizjLmmOUQo6DEBY+JgdvW/yQ9mEeSw6H5ythl5Ny2ytb7f9C2nIbjSxMNzbJXw==} + engines: {node: '>=10'} + hasBin: true + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - oas-kit-common@1.0.8: resolution: {integrity: sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==} @@ -1096,82 +1391,73 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-inspect@1.13.2: - resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} - engines: {node: '>= 0.4'} - - object-is@1.1.6: - resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + object.assign@4.1.7: + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} engines: {node: '>= 0.4'} - object.entries@1.1.8: - resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} - engines: {node: '>= 0.4'} - - object.values@1.2.0: - resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} - engines: {node: '>= 0.4'} + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - openapi-sampler@1.5.1: - resolution: {integrity: sha512-tIWIrZUKNAsbqf3bd9U1oH6JEXo8LNYuDlXw26By67EygpjT+ArFnsxxyTMjFWRfbqo5ozkvgSQDK69Gd8CddA==} - - openapi-types@12.1.3: - resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} + open@10.2.0: + resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} + engines: {node: '>=18'} - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} + openapi-sampler@1.6.1: + resolution: {integrity: sha512-s1cIatOqrrhSj2tmJ4abFYZQK6l5v+V4toO5q1Pa0DyN8mtyqy2I+Qrj5W9vOELEtybIMQs/TBZGVO/DtTFK8w==} - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} + outdent@0.8.0: + resolution: {integrity: sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A==} - parse5-htmlparser2-tree-adapter@7.0.0: - resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} + own-keys@1.0.1: + resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} + engines: {node: '>= 0.4'} - parse5-parser-stream@7.1.2: - resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - perfect-scrollbar@1.5.5: - resolution: {integrity: sha512-dzalfutyP3e/FOpdlhVryN4AJ5XDVauVWxybSkLZmakFE2sS3y3pc4JnSprw8tGmHvkaG5Edr5T7LBTZ+WWU2g==} + path-scurry@2.0.0: + resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} + engines: {node: 20 || >=22} + + path-to-regexp@8.2.0: + resolution: {integrity: sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==} + engines: {node: '>=16'} - performance-now@2.1.0: - resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + perfect-scrollbar@1.5.6: + resolution: {integrity: sha512-rixgxw3SxyJbCaSpo1n35A/fwI1r2rdwMKOTCg/AcG+xOEyZcE8UHVjpZMFCVImzsFoCZeJTT+M/rdEIQYO2nw==} - picocolors@1.1.0: - resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -1189,51 +1475,64 @@ packages: resolution: {integrity: sha512-PxkIc/2ZpLiEzQXu5YRDOUgBlfGYBY8156HY5ZcRAwwonMk5W/MrJP2LLkG/hF7GEQzaHo2aS7ho6ZLCOvf+6g==} engines: {node: '>=12.0.0'} - possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + postcss@8.4.49: + resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} engines: {node: ^10 || ^12 || >=14} + pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + printable-characters@1.0.42: resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} - prismjs@1.29.0: - resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + prismjs@1.30.0: + resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} engines: {node: '>=6'} prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} + protobufjs@7.5.3: + resolution: {integrity: sha512-sildjKwVqOI2kmFDiXQ6aEB0fjYTafpEvIBs8tOR8qI4spuL9OPROLVu2qZqi/xgCfsHIwVqlaF8JBjWFHnKbw==} + engines: {node: '>=12.0.0'} - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} - raf@3.4.1: - resolution: {integrity: sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==} + pstree.remy@1.1.8: + resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} - railroad-diagrams@1.0.0: - resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==} + qs@6.14.0: + resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} + engines: {node: '>=0.6'} - randexp@0.4.6: - resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==} - engines: {node: '>=0.12'} + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - react-dom@18.3.1: - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@3.0.0: + resolution: {integrity: sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==} + engines: {node: '>= 0.8'} + + react-dom@19.1.1: + resolution: {integrity: sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==} peerDependencies: - react: ^18.3.1 + react: ^19.1.1 react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} @@ -1241,18 +1540,13 @@ packages: react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - react-shallow-renderer@16.15.0: - resolution: {integrity: sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==} - peerDependencies: - react: ^16.0.0 || ^17.0.0 || ^18.0.0 - - react-tabs@6.0.2: - resolution: {integrity: sha512-aQXTKolnM28k3KguGDBSAbJvcowOQr23A+CUJdzJtOSDOtTwzEaJA+1U4KwhNL9+Obe+jFS7geuvA7ICQPXOnQ==} + react-tabs@6.1.0: + resolution: {integrity: sha512-6QtbTRDKM+jA/MZTTefvigNxo0zz+gnBTVFw2CFVvq+f2BuH0nF0vDLNClL045nuTAdOoK/IL1vTP0ZLX0DAyQ==} peerDependencies: - react: ^18.0.0 + react: ^18.0.0 || ^19.0.0 - react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + react@19.1.1: + resolution: {integrity: sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==} engines: {node: '>=0.10.0'} readable-stream@3.6.2: @@ -1263,24 +1557,25 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - redoc@2.1.5: - resolution: {integrity: sha512-POSbVg+7WLf+/5/c6GWLxL7+9t2D+1WlZdLN0a6qaCQc+ih3XYzteRBkXEN5kjrYrRNjdspfxTZkDLN5WV3Tzg==} + redoc@2.5.0: + resolution: {integrity: sha512-NpYsOZ1PD9qFdjbLVBZJWptqE+4Y6TkUuvEOqPUmoH7AKOmPcE+hYjotLxQNTqVoWL4z0T2uxILmcc8JGDci+Q==} engines: {node: '>=6.9', npm: '>=3.0.0'} peerDependencies: core-js: ^3.1.4 mobx: ^6.0.4 - react: ^16.8.4 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.4 || ^17.0.0 || ^18.0.0 + react: ^16.8.4 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.4 || ^17.0.0 || ^18.0.0 || ^19.0.0 styled-components: ^4.1.1 || ^5.1.1 || ^6.0.5 + reflect.getprototypeof@1.0.10: + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} + engines: {node: '>= 0.4'} + reftools@1.1.9: resolution: {integrity: sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==} - regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - - regexp.prototype.flags@1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + regexp.prototype.flags@1.5.4: + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} require-directory@2.1.1: @@ -1291,45 +1586,48 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} - require-main-filename@2.0.0: - resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} - reserved@0.1.2: resolution: {integrity: sha512-/qO54MWj5L8WCBP9/UNe2iefJc+L9yETbH32xO/ft/EYPOTCR5k+azvDUgdCOKwZH8hXwPd0b8XBL78Nn2U69g==} engines: {node: '>=0.8'} - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + resolve@1.22.10: + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + engines: {node: '>= 0.4'} hasBin: true - ret@0.1.15: - resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} - engines: {node: '>=0.12'} - - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rollup@2.79.1: - resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} + rollup@2.79.2: + resolution: {integrity: sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==} engines: {node: '>=10.0.0'} hasBin: true - rst-selector-parser@2.2.3: - resolution: {integrity: sha512-nDG1rZeP6oFTLN6yNDV/uiAvs1+FS/KlrEwh7+y7dpuApDBy6bI2HTBcc0/V8lv9OTqfyD34eF7au2pm8aBbhA==} + router@2.2.0: + resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} + engines: {node: '>= 18'} + + run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - safe-array-concat@1.1.2: - resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + safe-array-concat@1.1.3: + resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-regex-test@1.0.3: - resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + safe-push-apply@1.0.0: + resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} + engines: {node: '>= 0.4'} + + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} safe-stable-stringify@1.1.1: @@ -1338,16 +1636,24 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + scheduler@0.26.0: + resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} - semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + semver@7.7.2: + resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} engines: {node: '>=10'} hasBin: true - set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + send@1.2.0: + resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} + engines: {node: '>= 18'} + + serve-static@2.2.0: + resolution: {integrity: sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==} + engines: {node: '>= 18'} + + set-cookie-parser@2.7.1: + resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==} set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} @@ -1357,9 +1663,24 @@ packages: resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} engines: {node: '>= 0.4'} + set-proto@1.0.0: + resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} + engines: {node: '>= 0.4'} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + shallowequal@1.1.0: resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + should-equal@2.0.0: resolution: {integrity: sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==} @@ -1378,14 +1699,34 @@ packages: should@13.2.3: resolution: {integrity: sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==} - side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} - simple-eval@1.0.0: - resolution: {integrity: sha512-kpKJR+bqTscgC0xuAl2xHN6bB12lHjC2DCUfqjAx19bQyO3R2EVLOurm3H9AUltv/uFVcSCVNc6faegR+8NYLw==} + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + simple-eval@1.0.1: + resolution: {integrity: sha512-LH7FpTAkeD+y5xQC4fzS+tFtaNlvt3Ib1zKzvhjv/Y+cioV4zIuw4IZr2yhRLu67CWL7FR9/6KXKnjRoZTvGGQ==} engines: {node: '>=12'} + simple-update-notifier@2.0.0: + resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} + engines: {node: '>=10'} + simple-websocket@9.1.0: resolution: {integrity: sha512-8MJPnjRN6A8UCp1I+H/dSFyjwJhp6wta4hsVRhjf8w9qBHRzxYt14RaOcjvQnhD1N4yKOddEjflwMnQM4VtXjQ==} @@ -1393,8 +1734,8 @@ packages: resolution: {integrity: sha512-tf+h5W1IrjNm/9rKKj0JU2MDMruiopx0jjVA5zCdBtcGjfp0+c5rHw/zADLC3IeKlGHtVbHtpfzvYA0OYT+HKg==} engines: {node: '>=8.0.0'} - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} source-map@0.6.1: @@ -1405,25 +1746,39 @@ packages: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} deprecated: Please use @jridgewell/sourcemap-codec instead - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - stacktracey@2.1.8: resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + statuses@2.0.2: + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} + engines: {node: '>= 0.8'} + stickyfill@1.1.1: resolution: {integrity: sha512-GCp7vHAfpao+Qh/3Flh9DXEJ/qSi0KJwJw6zYlZOtRYXWUIpMM6mC2rIep/dK8RQqwW0KxGJIllmjPIBOGN8AA==} + stop-iteration-iterator@1.1.0: + resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} + engines: {node: '>= 0.4'} + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} - string.prototype.trim@1.2.9: - resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string.prototype.trim@1.2.10: + resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} engines: {node: '>= 0.4'} - string.prototype.trimend@1.0.8: - resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + string.prototype.trimend@1.0.9: + resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} + engines: {node: '>= 0.4'} string.prototype.trimstart@1.0.8: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} @@ -1436,8 +1791,15 @@ packages: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} - styled-components@6.1.13: - resolution: {integrity: sha512-M0+N2xSnAtwcVAQeFEsGWFFxXDftHUD7XrKla06QbpUMmbmtFBMMTcKWvFXtWxuD5qQkB8iU5gk6QASlx2ZRMw==} + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strnum@1.1.2: + resolution: {integrity: sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==} + + styled-components@6.1.19: + resolution: {integrity: sha512-1v/e3Dl1BknC37cXMhwGomhO8AkYmN41CqyX9xhUDxry1ns3BFQy2lLDRQXJRdVVWB9OHemv/53xaStimvWyuA==} engines: {node: '>= 16'} peerDependencies: react: '>= 16.8.0' @@ -1446,6 +1808,10 @@ packages: stylis@4.3.2: resolution: {integrity: sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==} + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -1469,32 +1835,47 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + touch@3.1.1: + resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} + hasBin: true + tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + ts-algebra@1.2.2: + resolution: {integrity: sha512-kloPhf1hq3JbCPOTYoOWDKxebWjNb2o/LKnNfkWhxVVisFFmMJPPdJeGoGmM+iRLyoXAR61e08Pb+vUXINg8aA==} + tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - tslib@2.7.0: - resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - typed-array-buffer@1.0.2: - resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + type-is@2.0.1: + resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} + engines: {node: '>= 0.6'} + + typed-array-buffer@1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} engines: {node: '>= 0.4'} - typed-array-byte-length@1.0.1: - resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + typed-array-byte-length@1.0.3: + resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} engines: {node: '>= 0.4'} - typed-array-byte-offset@1.0.2: - resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + typed-array-byte-offset@1.0.4: + resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} engines: {node: '>= 0.4'} - typed-array-length@1.0.6: - resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + typed-array-length@1.0.7: + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} uglify-js@3.19.3: @@ -1502,22 +1883,30 @@ packages: engines: {node: '>=0.8.0'} hasBin: true - unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + unbox-primitive@1.1.0: + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} + engines: {node: '>= 0.4'} + + undefsafe@2.0.5: + resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} - undici-types@6.19.8: - resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + undici-types@7.10.0: + resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==} - undici@6.19.8: - resolution: {integrity: sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==} + undici@6.21.3: + resolution: {integrity: sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==} engines: {node: '>=18.17'} universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + uri-js-replace@1.0.1: + resolution: {integrity: sha512-W+C9NWNLFOoBI2QWDp4UT9pv65r2w5Cx+3sTYFvtMdDBxkKt1syCqsUdSFAChbEe1uK5TfS04wt/nGwmaeIQ0g==} urijs@1.19.11: resolution: {integrity: sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==} @@ -1525,10 +1914,10 @@ packages: url-template@2.0.8: resolution: {integrity: sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==} - use-sync-external-store@1.2.2: - resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==} + use-sync-external-store@1.5.0: + resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -1540,6 +1929,10 @@ packages: validate-npm-package-name@3.0.0: resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + web-streams-polyfill@3.3.3: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} @@ -1547,38 +1940,41 @@ packages: webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - whatwg-encoding@3.1.1: - resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} - engines: {node: '>=18'} - - whatwg-mimetype@4.0.0: - resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} - engines: {node: '>=18'} - whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + which-boxed-primitive@1.1.1: + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} + engines: {node: '>= 0.4'} + + which-builtin-type@1.2.1: + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} + engines: {node: '>= 0.4'} - which-module@2.0.1: - resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} - which-typed-array@1.1.15: - resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + which-typed-array@1.1.19: + resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} engines: {node: '>= 0.4'} + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} - wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -1594,8 +1990,9 @@ packages: utf-8-validate: optional: true - y18n@4.0.3: - resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + wsl-utils@0.1.0: + resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} + engines: {node: '>=18'} y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} @@ -1611,9 +2008,10 @@ packages: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} - yargs-parser@18.1.3: - resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} - engines: {node: '>=6'} + yaml@2.8.1: + resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==} + engines: {node: '>= 14.6'} + hasBin: true yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} @@ -1623,10 +2021,6 @@ packages: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} - yargs@15.4.1: - resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} - engines: {node: '>=8'} - yargs@17.0.1: resolution: {integrity: sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==} engines: {node: '>=12'} @@ -1637,54 +2031,19 @@ packages: snapshots: - '@apidevtools/json-schema-ref-parser@9.0.6': - dependencies: - '@jsdevtools/ono': 7.1.3 - call-me-maybe: 1.0.2 - js-yaml: 3.14.1 - - '@apidevtools/openapi-schemas@2.1.0': {} - - '@apidevtools/swagger-cli@4.0.4(openapi-types@12.1.3)': - dependencies: - '@apidevtools/swagger-parser': 10.1.0(openapi-types@12.1.3) - chalk: 4.1.2 - js-yaml: 3.14.1 - yargs: 15.4.1 - transitivePeerDependencies: - - openapi-types - - '@apidevtools/swagger-methods@3.0.2': {} - - '@apidevtools/swagger-parser@10.1.0(openapi-types@12.1.3)': - dependencies: - '@apidevtools/json-schema-ref-parser': 9.0.6 - '@apidevtools/openapi-schemas': 2.1.0 - '@apidevtools/swagger-methods': 3.0.2 - '@jsdevtools/ono': 7.1.3 - ajv: 8.17.1 - ajv-draft-04: 1.0.0(ajv@8.17.1) - call-me-maybe: 1.0.2 - openapi-types: 12.1.3 - - '@asyncapi/specs@4.3.1': + '@asyncapi/specs@6.9.0': dependencies: '@types/json-schema': 7.0.15 - '@babel/runtime@7.25.6': + '@babel/code-frame@7.27.1': dependencies: - regenerator-runtime: 0.14.1 + '@babel/helper-validator-identifier': 7.27.1 + js-tokens: 4.0.0 + picocolors: 1.1.1 - '@cfaester/enzyme-adapter-react-18@0.8.0(enzyme@3.11.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - enzyme: 3.11.0 - enzyme-shallow-equal: 1.0.7 - function.prototype.name: 1.1.6 - has: 1.0.4 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-is: 18.3.1 - react-shallow-renderer: 16.15.0(react@18.3.1) + '@babel/helper-validator-identifier@7.27.1': {} + + '@babel/runtime@7.28.3': {} '@emotion/is-prop-valid@1.2.2': dependencies: @@ -1696,15 +2055,42 @@ snapshots: '@exodus/schemasafe@1.3.0': {} - '@jsdevtools/ono@7.1.3': {} + '@faker-js/faker@7.6.0': {} + + '@humanwhocodes/momoa@2.0.4': {} + + '@isaacs/balanced-match@4.0.1': {} + + '@isaacs/brace-expansion@5.0.0': + dependencies: + '@isaacs/balanced-match': 4.0.1 + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@jest/schemas@29.6.3': + dependencies: + '@sinclair/typebox': 0.27.8 + + '@jsep-plugin/assignment@1.3.0(jsep@1.4.0)': + dependencies: + jsep: 1.4.0 - '@jsep-plugin/regex@1.0.3(jsep@1.3.9)': + '@jsep-plugin/regex@1.0.4(jsep@1.4.0)': dependencies: - jsep: 1.3.9 + jsep: 1.4.0 - '@jsep-plugin/ternary@1.1.3(jsep@1.3.9)': + '@jsep-plugin/ternary@1.1.4(jsep@1.4.0)': dependencies: - jsep: 1.3.9 + jsep: 1.4.0 + + '@noble/hashes@1.8.0': {} '@nodelib/fs.scandir@2.1.5': dependencies: @@ -1716,85 +2102,234 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 + fastq: 1.19.1 + + '@opentelemetry/api-logs@0.202.0': + dependencies: + '@opentelemetry/api': 1.9.0 + + '@opentelemetry/api@1.9.0': {} + + '@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + + '@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/semantic-conventions': 1.34.0 + + '@opentelemetry/exporter-trace-otlp-http@0.202.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.202.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.202.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/otlp-exporter-base@0.202.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.202.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/otlp-transformer@0.202.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.202.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.202.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) + protobufjs: 7.5.3 + + '@opentelemetry/resources@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.34.0 + + '@opentelemetry/sdk-logs@0.202.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.202.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/sdk-metrics@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.34.0 + + '@opentelemetry/sdk-trace-node@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/context-async-hooks': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) + + '@opentelemetry/semantic-conventions@1.34.0': {} + + '@protobufjs/aspromise@1.1.2': {} + + '@protobufjs/base64@1.1.2': {} + + '@protobufjs/codegen@2.0.4': {} + + '@protobufjs/eventemitter@1.1.0': {} + + '@protobufjs/fetch@1.1.0': + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + + '@protobufjs/float@1.0.2': {} + + '@protobufjs/inquire@1.1.0': {} + + '@protobufjs/path@1.1.2': {} + + '@protobufjs/pool@1.1.0': {} + + '@protobufjs/utf8@1.1.0': {} '@quobix/vacuum@0.10.1': dependencies: node-fetch: 3.3.2 tar: 6.2.1 - '@redocly/ajv@8.11.0': + '@redocly/ajv@8.11.2': + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js-replace: 1.0.1 + + '@redocly/ajv@8.11.3': dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - uri-js: 4.4.1 + uri-js-replace: 1.0.1 - '@redocly/cli@1.22.1(enzyme@3.11.0)': + '@redocly/cli@2.0.5(@opentelemetry/api@1.9.0)(ajv@8.17.1)(core-js@3.38.1)': dependencies: - '@redocly/openapi-core': 1.22.1 + '@opentelemetry/exporter-trace-otlp-http': 0.202.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-node': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.34.0 + '@redocly/openapi-core': 2.0.5(ajv@8.17.1) + '@redocly/respect-core': 2.0.5(ajv@8.17.1) abort-controller: 3.0.0 chokidar: 3.6.0 colorette: 1.4.0 - core-js: 3.38.1 - form-data: 4.0.0 - get-port-please: 3.1.2 - glob: 7.2.3 + cookie: 0.7.2 + dotenv: 16.4.7 + form-data: 4.0.4 + glob: 11.0.3 handlebars: 4.7.8 - mobx: 6.13.1 - node-fetch: 2.7.0 + https-proxy-agent: 7.0.6 + mobx: 6.13.7 pluralize: 8.0.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - redoc: 2.1.5(core-js@3.38.1)(enzyme@3.11.0)(mobx@6.13.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) - semver: 7.6.3 + react: 19.1.1 + react-dom: 19.1.1(react@19.1.1) + redoc: 2.5.0(core-js@3.38.1)(mobx@6.13.7)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(styled-components@6.1.19(react-dom@19.1.1(react@19.1.1))(react@19.1.1)) + semver: 7.7.2 + set-cookie-parser: 2.7.1 simple-websocket: 9.1.0 - styled-components: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + styled-components: 6.1.19(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + undici: 6.21.3 yargs: 17.0.1 transitivePeerDependencies: + - '@opentelemetry/api' + - ajv - bufferutil + - core-js - encoding - - enzyme - react-native - supports-color - utf-8-validate - '@redocly/config@0.10.1': {} + '@redocly/config@0.22.2': {} + + '@redocly/config@0.28.0': + dependencies: + json-schema-to-ts: 2.7.2 - '@redocly/openapi-core@1.22.1': + '@redocly/openapi-core@1.34.5': dependencies: - '@redocly/ajv': 8.11.0 - '@redocly/config': 0.10.1 + '@redocly/ajv': 8.11.3 + '@redocly/config': 0.22.2 colorette: 1.4.0 - https-proxy-agent: 7.0.5 + https-proxy-agent: 7.0.6 js-levenshtein: 1.1.6 js-yaml: 4.1.0 - lodash.isequal: 4.5.0 minimatch: 5.1.6 - node-fetch: 2.7.0 pluralize: 8.0.0 yaml-ast-parser: 0.0.43 transitivePeerDependencies: - - encoding - supports-color - '@rollup/plugin-commonjs@22.0.2(rollup@2.79.1)': + '@redocly/openapi-core@2.0.5(ajv@8.17.1)': + dependencies: + '@redocly/ajv': 8.11.3 + '@redocly/config': 0.28.0 + ajv-formats: 2.1.1(ajv@8.17.1) + colorette: 1.4.0 + js-levenshtein: 1.1.6 + js-yaml: 4.1.0 + minimatch: 10.0.3 + pluralize: 8.0.0 + yaml-ast-parser: 0.0.43 + transitivePeerDependencies: + - ajv + + '@redocly/respect-core@2.0.5(ajv@8.17.1)': + dependencies: + '@faker-js/faker': 7.6.0 + '@noble/hashes': 1.8.0 + '@redocly/ajv': 8.11.2 + '@redocly/openapi-core': 2.0.5(ajv@8.17.1) + better-ajv-errors: 1.2.0(ajv@8.17.1) + colorette: 2.0.20 + jest-diff: 29.7.0 + jest-matcher-utils: 29.7.0 + json-pointer: 0.6.2 + jsonpath-plus: 10.3.0 + openapi-sampler: 1.6.1 + outdent: 0.8.0 + transitivePeerDependencies: + - ajv + + '@rollup/plugin-commonjs@22.0.2(rollup@2.79.2)': dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.79.1) + '@rollup/pluginutils': 3.1.0(rollup@2.79.2) commondir: 1.0.1 estree-walker: 2.0.2 glob: 7.2.3 is-reference: 1.2.1 magic-string: 0.25.9 - resolve: 1.22.8 - rollup: 2.79.1 + resolve: 1.22.10 + rollup: 2.79.2 - '@rollup/pluginutils@3.1.0(rollup@2.79.1)': + '@rollup/pluginutils@3.1.0(rollup@2.79.2)': dependencies: '@types/estree': 0.0.39 estree-walker: 1.0.1 picomatch: 2.3.1 - rollup: 2.79.1 + rollup: 2.79.2 + + '@sinclair/typebox@0.27.8': {} '@stoplight/better-ajv-errors@1.0.3(ajv@8.17.1)': dependencies: @@ -1819,7 +2354,7 @@ snapshots: fast-memoize: 2.5.2 immer: 9.0.21 lodash: 4.17.21 - tslib: 2.7.0 + tslib: 2.8.1 urijs: 1.19.11 '@stoplight/json@3.21.7': @@ -1835,18 +2370,18 @@ snapshots: '@stoplight/path@1.3.2': {} - '@stoplight/spectral-cli@6.11.1': + '@stoplight/spectral-cli@6.15.0': dependencies: '@stoplight/json': 3.21.7 '@stoplight/path': 1.3.2 - '@stoplight/spectral-core': 1.18.3 - '@stoplight/spectral-formatters': 1.3.0 - '@stoplight/spectral-parsers': 1.0.4 - '@stoplight/spectral-ref-resolver': 1.0.4 - '@stoplight/spectral-ruleset-bundler': 1.5.2 - '@stoplight/spectral-ruleset-migrator': 1.9.5 - '@stoplight/spectral-rulesets': 1.19.1 - '@stoplight/spectral-runtime': 1.1.2 + '@stoplight/spectral-core': 1.20.0 + '@stoplight/spectral-formatters': 1.5.0 + '@stoplight/spectral-parsers': 1.0.5 + '@stoplight/spectral-ref-resolver': 1.0.5 + '@stoplight/spectral-ruleset-bundler': 1.6.3 + '@stoplight/spectral-ruleset-migrator': 1.11.2 + '@stoplight/spectral-rulesets': 1.22.0 + '@stoplight/spectral-runtime': 1.1.4 '@stoplight/types': 13.20.0 chalk: 4.1.2 fast-glob: 3.2.12 @@ -1854,144 +2389,146 @@ snapshots: lodash: 4.17.21 pony-cause: 1.1.1 stacktracey: 2.1.8 - tslib: 2.7.0 + tslib: 2.8.1 yargs: 17.7.2 transitivePeerDependencies: - encoding - '@stoplight/spectral-core@1.18.3': + '@stoplight/spectral-core@1.20.0': dependencies: '@stoplight/better-ajv-errors': 1.0.3(ajv@8.17.1) '@stoplight/json': 3.21.7 '@stoplight/path': 1.3.2 - '@stoplight/spectral-parsers': 1.0.4 - '@stoplight/spectral-ref-resolver': 1.0.4 - '@stoplight/spectral-runtime': 1.1.2 + '@stoplight/spectral-parsers': 1.0.5 + '@stoplight/spectral-ref-resolver': 1.0.5 + '@stoplight/spectral-runtime': 1.1.4 '@stoplight/types': 13.6.0 '@types/es-aggregate-error': 1.0.6 '@types/json-schema': 7.0.15 ajv: 8.17.1 ajv-errors: 3.0.0(ajv@8.17.1) ajv-formats: 2.1.1(ajv@8.17.1) - es-aggregate-error: 1.0.13 - jsonpath-plus: 7.1.0 + es-aggregate-error: 1.0.14 + jsonpath-plus: 10.3.0 lodash: 4.17.21 lodash.topath: 4.5.2 minimatch: 3.1.2 - nimma: 0.2.2 + nimma: 0.2.3 pony-cause: 1.1.1 - simple-eval: 1.0.0 - tslib: 2.7.0 + simple-eval: 1.0.1 + tslib: 2.8.1 transitivePeerDependencies: - encoding - '@stoplight/spectral-formats@1.6.0': + '@stoplight/spectral-formats@1.8.2': dependencies: '@stoplight/json': 3.21.7 - '@stoplight/spectral-core': 1.18.3 + '@stoplight/spectral-core': 1.20.0 '@types/json-schema': 7.0.15 - tslib: 2.7.0 + tslib: 2.8.1 transitivePeerDependencies: - encoding - '@stoplight/spectral-formatters@1.3.0': + '@stoplight/spectral-formatters@1.5.0': dependencies: '@stoplight/path': 1.3.2 - '@stoplight/spectral-core': 1.18.3 - '@stoplight/spectral-runtime': 1.1.2 + '@stoplight/spectral-core': 1.20.0 + '@stoplight/spectral-runtime': 1.1.4 '@stoplight/types': 13.20.0 + '@types/markdown-escape': 1.1.3 chalk: 4.1.2 cliui: 7.0.4 lodash: 4.17.21 + markdown-escape: 2.0.0 node-sarif-builder: 2.0.3 strip-ansi: 6.0.1 text-table: 0.2.0 - tslib: 2.7.0 + tslib: 2.8.1 transitivePeerDependencies: - encoding - '@stoplight/spectral-functions@1.8.0': + '@stoplight/spectral-functions@1.10.1': dependencies: '@stoplight/better-ajv-errors': 1.0.3(ajv@8.17.1) '@stoplight/json': 3.21.7 - '@stoplight/spectral-core': 1.18.3 - '@stoplight/spectral-formats': 1.6.0 - '@stoplight/spectral-runtime': 1.1.2 + '@stoplight/spectral-core': 1.20.0 + '@stoplight/spectral-formats': 1.8.2 + '@stoplight/spectral-runtime': 1.1.4 ajv: 8.17.1 ajv-draft-04: 1.0.0(ajv@8.17.1) ajv-errors: 3.0.0(ajv@8.17.1) ajv-formats: 2.1.1(ajv@8.17.1) lodash: 4.17.21 - tslib: 2.7.0 + tslib: 2.8.1 transitivePeerDependencies: - encoding - '@stoplight/spectral-parsers@1.0.4': + '@stoplight/spectral-parsers@1.0.5': dependencies: '@stoplight/json': 3.21.7 '@stoplight/types': 14.1.1 '@stoplight/yaml': 4.3.0 - tslib: 2.7.0 + tslib: 2.8.1 - '@stoplight/spectral-ref-resolver@1.0.4': + '@stoplight/spectral-ref-resolver@1.0.5': dependencies: '@stoplight/json-ref-readers': 1.2.2 '@stoplight/json-ref-resolver': 3.1.6 - '@stoplight/spectral-runtime': 1.1.2 + '@stoplight/spectral-runtime': 1.1.4 dependency-graph: 0.11.0 - tslib: 2.7.0 + tslib: 2.8.1 transitivePeerDependencies: - encoding - '@stoplight/spectral-ruleset-bundler@1.5.2': + '@stoplight/spectral-ruleset-bundler@1.6.3': dependencies: - '@rollup/plugin-commonjs': 22.0.2(rollup@2.79.1) + '@rollup/plugin-commonjs': 22.0.2(rollup@2.79.2) '@stoplight/path': 1.3.2 - '@stoplight/spectral-core': 1.18.3 - '@stoplight/spectral-formats': 1.6.0 - '@stoplight/spectral-functions': 1.8.0 - '@stoplight/spectral-parsers': 1.0.4 - '@stoplight/spectral-ref-resolver': 1.0.4 - '@stoplight/spectral-ruleset-migrator': 1.9.5 - '@stoplight/spectral-rulesets': 1.19.1 - '@stoplight/spectral-runtime': 1.1.2 + '@stoplight/spectral-core': 1.20.0 + '@stoplight/spectral-formats': 1.8.2 + '@stoplight/spectral-functions': 1.10.1 + '@stoplight/spectral-parsers': 1.0.5 + '@stoplight/spectral-ref-resolver': 1.0.5 + '@stoplight/spectral-ruleset-migrator': 1.11.2 + '@stoplight/spectral-rulesets': 1.22.0 + '@stoplight/spectral-runtime': 1.1.4 '@stoplight/types': 13.20.0 - '@types/node': 22.5.4 + '@types/node': 24.3.0 pony-cause: 1.1.1 - rollup: 2.79.1 - tslib: 2.7.0 + rollup: 2.79.2 + tslib: 2.8.1 validate-npm-package-name: 3.0.0 transitivePeerDependencies: - encoding - '@stoplight/spectral-ruleset-migrator@1.9.5': + '@stoplight/spectral-ruleset-migrator@1.11.2': dependencies: '@stoplight/json': 3.21.7 '@stoplight/ordered-object-literal': 1.0.5 '@stoplight/path': 1.3.2 - '@stoplight/spectral-functions': 1.8.0 - '@stoplight/spectral-runtime': 1.1.2 + '@stoplight/spectral-functions': 1.10.1 + '@stoplight/spectral-runtime': 1.1.4 '@stoplight/types': 13.20.0 '@stoplight/yaml': 4.2.3 - '@types/node': 22.5.4 + '@types/node': 24.3.0 ajv: 8.17.1 ast-types: 0.14.2 astring: 1.9.0 reserved: 0.1.2 - tslib: 2.7.0 + tslib: 2.8.1 validate-npm-package-name: 3.0.0 transitivePeerDependencies: - encoding - '@stoplight/spectral-rulesets@1.19.1': + '@stoplight/spectral-rulesets@1.22.0': dependencies: - '@asyncapi/specs': 4.3.1 + '@asyncapi/specs': 6.9.0 '@stoplight/better-ajv-errors': 1.0.3(ajv@8.17.1) '@stoplight/json': 3.21.7 - '@stoplight/spectral-core': 1.18.3 - '@stoplight/spectral-formats': 1.6.0 - '@stoplight/spectral-functions': 1.8.0 - '@stoplight/spectral-runtime': 1.1.2 + '@stoplight/spectral-core': 1.20.0 + '@stoplight/spectral-formats': 1.8.2 + '@stoplight/spectral-functions': 1.10.1 + '@stoplight/spectral-runtime': 1.1.4 '@stoplight/types': 13.20.0 '@types/json-schema': 7.0.15 ajv: 8.17.1 @@ -1999,27 +2536,22 @@ snapshots: json-schema-traverse: 1.0.0 leven: 3.1.0 lodash: 4.17.21 - tslib: 2.7.0 + tslib: 2.8.1 transitivePeerDependencies: - encoding - '@stoplight/spectral-runtime@1.1.2': + '@stoplight/spectral-runtime@1.1.4': dependencies: '@stoplight/json': 3.21.7 '@stoplight/path': 1.3.2 - '@stoplight/types': 12.5.0 + '@stoplight/types': 13.20.0 abort-controller: 3.0.0 lodash: 4.17.21 node-fetch: 2.7.0 - tslib: 2.7.0 + tslib: 2.8.1 transitivePeerDependencies: - encoding - '@stoplight/types@12.5.0': - dependencies: - '@types/json-schema': 7.0.15 - utility-types: 3.11.0 - '@stoplight/types@13.20.0': dependencies: '@types/json-schema': 7.0.15 @@ -2044,44 +2576,50 @@ snapshots: '@stoplight/ordered-object-literal': 1.0.5 '@stoplight/types': 13.20.0 '@stoplight/yaml-ast-parser': 0.0.48 - tslib: 2.7.0 + tslib: 2.8.1 '@stoplight/yaml@4.3.0': dependencies: '@stoplight/ordered-object-literal': 1.0.5 '@stoplight/types': 14.1.1 '@stoplight/yaml-ast-parser': 0.0.50 - tslib: 2.7.0 + tslib: 2.8.1 '@types/es-aggregate-error@1.0.6': dependencies: - '@types/node': 22.5.4 + '@types/node': 24.3.0 '@types/estree@0.0.39': {} - '@types/estree@1.0.5': {} + '@types/estree@1.0.8': {} '@types/json-schema@7.0.15': {} - '@types/node@22.5.4': + '@types/markdown-escape@1.1.3': {} + + '@types/node@24.3.0': dependencies: - undici-types: 6.19.8 + undici-types: 7.10.0 '@types/sarif@2.1.7': {} '@types/stylis@4.2.5': {} + '@types/trusted-types@2.0.7': + optional: true + '@types/urijs@1.19.25': {} abort-controller@3.0.0: dependencies: event-target-shim: 5.0.1 - agent-base@7.1.1: + accepts@2.0.0: dependencies: - debug: 4.3.7 - transitivePeerDependencies: - - supports-color + mime-types: 3.0.1 + negotiator: 1.0.0 + + agent-base@7.1.4: {} ajv-draft-04@1.0.0(ajv@8.17.1): optionalDependencies: @@ -2098,58 +2636,43 @@ snapshots: ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.0.1 + fast-uri: 3.0.6 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 ansi-regex@5.0.1: {} + ansi-regex@6.1.0: {} + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 + ansi-styles@5.2.0: {} + + ansi-styles@6.2.1: {} + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - argparse@1.0.10: - dependencies: - sprintf-js: 1.0.3 - argparse@2.0.1: {} - array-buffer-byte-length@1.0.1: + array-buffer-byte-length@1.0.2: dependencies: - call-bind: 1.0.7 - is-array-buffer: 3.0.4 + call-bound: 1.0.4 + is-array-buffer: 3.0.5 - array.prototype.filter@1.0.4: + arraybuffer.prototype.slice@1.0.4: dependencies: - call-bind: 1.0.7 + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 - es-array-method-boxes-properly: 1.0.0 - es-object-atoms: 1.0.0 - is-string: 1.0.7 - - array.prototype.flat@1.3.2: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-shim-unscopables: 1.0.2 - - arraybuffer.prototype.slice@1.0.3: - dependencies: - array-buffer-byte-length: 1.0.1 - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.24.0 es-errors: 1.3.0 - get-intrinsic: 1.2.4 - is-array-buffer: 3.0.4 - is-shared-array-buffer: 1.0.3 + get-intrinsic: 1.3.0 + is-array-buffer: 3.0.5 as-table@1.0.55: dependencies: @@ -2157,28 +2680,51 @@ snapshots: ast-types@0.14.2: dependencies: - tslib: 2.7.0 + tslib: 2.8.1 astring@1.9.0: {} + async-function@1.0.0: {} + asynckit@0.4.0: {} available-typed-arrays@1.0.7: dependencies: - possible-typed-array-names: 1.0.0 + possible-typed-array-names: 1.1.0 balanced-match@1.0.2: {} + better-ajv-errors@1.2.0(ajv@8.17.1): + dependencies: + '@babel/code-frame': 7.27.1 + '@humanwhocodes/momoa': 2.0.4 + ajv: 8.17.1 + chalk: 4.1.2 + jsonpointer: 5.0.1 + leven: 3.1.0 + binary-extensions@2.3.0: {} - boolbase@1.0.0: {} + body-parser@2.2.0: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 4.4.1(supports-color@5.5.0) + http-errors: 2.0.0 + iconv-lite: 0.6.3 + on-finished: 2.4.1 + qs: 6.14.0 + raw-body: 3.0.0 + type-is: 2.0.1 + transitivePeerDependencies: + - supports-color - brace-expansion@1.1.11: + brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.1: + brace-expansion@2.0.2: dependencies: balanced-match: 1.0.2 @@ -2188,17 +2734,30 @@ snapshots: builtins@1.0.3: {} - call-bind@1.0.7: + bundle-name@4.1.0: + dependencies: + run-applescript: 7.0.0 + + bytes@3.1.2: {} + + call-bind-apply-helpers@1.0.2: dependencies: - es-define-property: 1.0.0 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.4 + + call-bind@1.0.8: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 set-function-length: 1.2.2 - call-me-maybe@1.0.2: {} + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 - camelcase@5.3.1: {} + call-me-maybe@1.0.2: {} camelize@1.0.1: {} @@ -2207,29 +2766,6 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - cheerio-select@2.1.0: - dependencies: - boolbase: 1.0.0 - css-select: 5.1.0 - css-what: 6.1.0 - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.1.0 - - cheerio@1.0.0: - dependencies: - cheerio-select: 2.1.0 - dom-serializer: 2.0.0 - domhandler: 5.0.3 - domutils: 3.1.0 - encoding-sniffer: 0.2.0 - htmlparser2: 9.1.0 - parse5: 7.1.2 - parse5-htmlparser2-tree-adapter: 7.0.0 - parse5-parser-stream: 7.1.2 - undici: 6.19.8 - whatwg-mimetype: 4.0.0 - chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -2246,12 +2782,6 @@ snapshots: classnames@2.5.1: {} - cliui@6.0.0: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 6.2.0 - cliui@7.0.4: dependencies: string-width: 4.2.3 @@ -2274,27 +2804,35 @@ snapshots: colorette@1.4.0: {} + colorette@2.0.20: {} + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 - commander@2.20.3: {} + commondir@1.0.1: {} + + concat-map@0.0.1: {} + + content-disposition@1.0.0: + dependencies: + safe-buffer: 5.2.1 + + content-type@1.0.5: {} - commondir@1.0.1: {} + cookie-signature@1.2.2: {} - concat-map@0.0.1: {} + cookie@0.7.2: {} core-js@3.38.1: {} - css-color-keywords@1.0.0: {} - - css-select@5.1.0: + cross-spawn@7.0.6: dependencies: - boolbase: 1.0.0 - css-what: 6.1.0 - domhandler: 5.0.3 - domutils: 3.1.0 - nth-check: 2.1.1 + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + css-color-keywords@1.0.0: {} css-to-react-native@3.2.0: dependencies: @@ -2302,45 +2840,52 @@ snapshots: css-color-keywords: 1.0.0 postcss-value-parser: 4.2.0 - css-what@6.1.0: {} - csstype@3.1.3: {} data-uri-to-buffer@2.0.2: {} data-uri-to-buffer@4.0.1: {} - data-view-buffer@1.0.1: + data-view-buffer@1.0.2: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.4 es-errors: 1.3.0 - is-data-view: 1.0.1 + is-data-view: 1.0.2 - data-view-byte-length@1.0.1: + data-view-byte-length@1.0.2: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.4 es-errors: 1.3.0 - is-data-view: 1.0.1 + is-data-view: 1.0.2 - data-view-byte-offset@1.0.0: + data-view-byte-offset@1.0.1: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.4 es-errors: 1.3.0 - is-data-view: 1.0.1 + is-data-view: 1.0.2 - debug@4.3.7: + debug@4.4.1(supports-color@5.5.0): dependencies: ms: 2.1.3 - - decamelize@1.2.0: {} + optionalDependencies: + supports-color: 5.5.0 decko@1.2.0: {} + default-browser-id@5.0.0: {} + + default-browser@5.2.1: + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.0 + define-data-property@1.1.4: dependencies: - es-define-property: 1.0.0 + es-define-property: 1.0.1 es-errors: 1.3.0 - gopd: 1.0.1 + gopd: 1.2.0 + + define-lazy-prop@3.0.0: {} define-properties@1.2.1: dependencies: @@ -2350,171 +2895,171 @@ snapshots: delayed-stream@1.0.0: {} + depd@2.0.0: {} + dependency-graph@0.11.0: {} - discontinuous-range@1.0.0: {} + diff-sequences@29.6.3: {} - dom-serializer@2.0.0: - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - entities: 4.5.0 + dompurify@3.2.6: + optionalDependencies: + '@types/trusted-types': 2.0.7 - domelementtype@2.3.0: {} + dotenv@16.4.7: {} - domhandler@5.0.3: + dunder-proto@1.0.1: dependencies: - domelementtype: 2.3.0 + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 - dompurify@3.1.6: {} + eastasianwidth@0.2.0: {} - domutils@3.1.0: - dependencies: - dom-serializer: 2.0.0 - domelementtype: 2.3.0 - domhandler: 5.0.3 + ee-first@1.1.1: {} emoji-regex@8.0.0: {} - encoding-sniffer@0.2.0: - dependencies: - iconv-lite: 0.6.3 - whatwg-encoding: 3.1.1 - - entities@4.5.0: {} + emoji-regex@9.2.2: {} - enzyme-shallow-equal@1.0.7: - dependencies: - hasown: 2.0.2 - object-is: 1.1.6 + encodeurl@2.0.0: {} - enzyme@3.11.0: + es-abstract@1.24.0: dependencies: - array.prototype.flat: 1.3.2 - cheerio: 1.0.0 - enzyme-shallow-equal: 1.0.7 - function.prototype.name: 1.1.6 - has: 1.0.4 - html-element-map: 1.3.1 - is-boolean-object: 1.1.2 - is-callable: 1.2.7 - is-number-object: 1.0.7 - is-regex: 1.1.4 - is-string: 1.0.7 - is-subset: 0.1.1 - lodash.escape: 4.0.1 - lodash.isequal: 4.5.0 - object-inspect: 1.13.2 - object-is: 1.1.6 - object.assign: 4.1.5 - object.entries: 1.1.8 - object.values: 1.2.0 - raf: 3.4.1 - rst-selector-parser: 2.2.3 - string.prototype.trim: 1.2.9 - - es-abstract@1.23.3: - dependencies: - array-buffer-byte-length: 1.0.1 - arraybuffer.prototype.slice: 1.0.3 + array-buffer-byte-length: 1.0.2 + arraybuffer.prototype.slice: 1.0.4 available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - data-view-buffer: 1.0.1 - data-view-byte-length: 1.0.1 - data-view-byte-offset: 1.0.0 - es-define-property: 1.0.0 + call-bind: 1.0.8 + call-bound: 1.0.4 + data-view-buffer: 1.0.2 + data-view-byte-length: 1.0.2 + data-view-byte-offset: 1.0.1 + es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-set-tostringtag: 2.0.3 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.6 - get-intrinsic: 1.2.4 - get-symbol-description: 1.0.2 + es-object-atoms: 1.1.1 + es-set-tostringtag: 2.1.0 + es-to-primitive: 1.3.0 + function.prototype.name: 1.1.8 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + get-symbol-description: 1.1.0 globalthis: 1.0.4 - gopd: 1.0.1 + gopd: 1.2.0 has-property-descriptors: 1.0.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 + has-proto: 1.2.0 + has-symbols: 1.1.0 hasown: 2.0.2 - internal-slot: 1.0.7 - is-array-buffer: 3.0.4 + internal-slot: 1.1.0 + is-array-buffer: 3.0.5 is-callable: 1.2.7 - is-data-view: 1.0.1 + is-data-view: 1.0.2 is-negative-zero: 2.0.3 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.3 - is-string: 1.0.7 - is-typed-array: 1.1.13 - is-weakref: 1.0.2 - object-inspect: 1.13.2 + is-regex: 1.2.1 + is-set: 2.0.3 + is-shared-array-buffer: 1.0.4 + is-string: 1.1.1 + is-typed-array: 1.1.15 + is-weakref: 1.1.1 + math-intrinsics: 1.1.0 + object-inspect: 1.13.4 object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 - safe-array-concat: 1.1.2 - safe-regex-test: 1.0.3 - string.prototype.trim: 1.2.9 - string.prototype.trimend: 1.0.8 + object.assign: 4.1.7 + own-keys: 1.0.1 + regexp.prototype.flags: 1.5.4 + safe-array-concat: 1.1.3 + safe-push-apply: 1.0.0 + safe-regex-test: 1.1.0 + set-proto: 1.0.0 + stop-iteration-iterator: 1.1.0 + string.prototype.trim: 1.2.10 + string.prototype.trimend: 1.0.9 string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.2 - typed-array-byte-length: 1.0.1 - typed-array-byte-offset: 1.0.2 - typed-array-length: 1.0.6 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.15 + typed-array-buffer: 1.0.3 + typed-array-byte-length: 1.0.3 + typed-array-byte-offset: 1.0.4 + typed-array-length: 1.0.7 + unbox-primitive: 1.1.0 + which-typed-array: 1.1.19 - es-aggregate-error@1.0.13: + es-aggregate-error@1.0.14: dependencies: define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.24.0 es-errors: 1.3.0 function-bind: 1.1.2 globalthis: 1.0.4 has-property-descriptors: 1.0.2 set-function-name: 2.0.2 - es-array-method-boxes-properly@1.0.0: {} - - es-define-property@1.0.0: - dependencies: - get-intrinsic: 1.2.4 + es-define-property@1.0.1: {} es-errors@1.3.0: {} - es-object-atoms@1.0.0: + es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 - es-set-tostringtag@2.0.3: + es-set-tostringtag@2.1.0: dependencies: - get-intrinsic: 1.2.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 has-tostringtag: 1.0.2 hasown: 2.0.2 - es-shim-unscopables@1.0.2: - dependencies: - hasown: 2.0.2 - - es-to-primitive@1.2.1: + es-to-primitive@1.3.0: dependencies: is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 + is-date-object: 1.1.0 + is-symbol: 1.1.1 es6-promise@3.3.1: {} escalade@3.2.0: {} - esprima@4.0.1: {} + escape-html@1.0.3: {} estree-walker@1.0.1: {} estree-walker@2.0.2: {} + etag@1.8.1: {} + event-target-shim@5.0.1: {} eventemitter3@5.0.1: {} + express@5.1.0: + dependencies: + accepts: 2.0.0 + body-parser: 2.2.0 + content-disposition: 1.0.0 + content-type: 1.0.5 + cookie: 0.7.2 + cookie-signature: 1.2.2 + debug: 4.4.1(supports-color@5.5.0) + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 2.1.0 + fresh: 2.0.0 + http-errors: 2.0.0 + merge-descriptors: 2.0.0 + mime-types: 3.0.1 + on-finished: 2.4.1 + once: 1.4.0 + parseurl: 1.3.3 + proxy-addr: 2.0.7 + qs: 6.14.0 + range-parser: 1.2.1 + router: 2.2.0 + send: 1.2.0 + serve-static: 2.2.0 + statuses: 2.0.2 + type-is: 2.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + fast-deep-equal@3.1.3: {} fast-glob@3.2.12: @@ -2529,11 +3074,15 @@ snapshots: fast-safe-stringify@2.1.1: {} - fast-uri@3.0.1: {} + fast-uri@3.0.6: {} - fastq@1.17.1: + fast-xml-parser@4.5.3: dependencies: - reusify: 1.0.4 + strnum: 1.1.2 + + fastq@1.19.1: + dependencies: + reusify: 1.1.0 fetch-blob@3.2.0: dependencies: @@ -2544,31 +3093,48 @@ snapshots: dependencies: to-regex-range: 5.0.1 - find-up@4.1.0: + finalhandler@2.1.0: dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 + debug: 4.4.1(supports-color@5.5.0) + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color - for-each@0.3.3: + for-each@0.3.5: dependencies: is-callable: 1.2.7 foreach@2.0.6: {} - form-data@4.0.0: + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + form-data@4.0.4: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.2 mime-types: 2.1.35 formdata-polyfill@4.0.10: dependencies: fetch-blob: 3.2.0 + forwarded@0.2.0: {} + + fresh@2.0.0: {} + fs-extra@10.1.0: dependencies: graceful-fs: 4.2.11 - jsonfile: 6.1.0 + jsonfile: 6.2.0 universalify: 2.0.1 fs-minipass@2.1.0: @@ -2582,42 +3148,61 @@ snapshots: function-bind@1.1.2: {} - function.prototype.name@1.1.6: + function.prototype.name@1.1.8: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.23.3 functions-have-names: 1.2.3 + hasown: 2.0.2 + is-callable: 1.2.7 functions-have-names@1.2.3: {} get-caller-file@2.0.5: {} - get-intrinsic@1.2.4: + get-intrinsic@1.3.0: dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 es-errors: 1.3.0 + es-object-atoms: 1.1.1 function-bind: 1.1.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 hasown: 2.0.2 + math-intrinsics: 1.1.0 - get-port-please@3.1.2: {} + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 get-source@2.0.12: dependencies: data-uri-to-buffer: 2.0.2 source-map: 0.6.1 - get-symbol-description@1.0.2: + get-symbol-description@1.1.0: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.4 es-errors: 1.3.0 - get-intrinsic: 1.2.4 + get-intrinsic: 1.3.0 glob-parent@5.1.2: dependencies: is-glob: 4.0.3 + glob@11.0.3: + dependencies: + foreground-child: 3.3.1 + jackspeak: 4.1.1 + minimatch: 10.0.3 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 2.0.0 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -2630,11 +3215,9 @@ snapshots: globalthis@1.0.4: dependencies: define-properties: 1.2.1 - gopd: 1.0.1 + gopd: 1.2.0 - gopd@1.0.1: - dependencies: - get-intrinsic: 1.2.4 + gopd@1.2.0: {} graceful-fs@4.2.11: {} @@ -2647,23 +3230,25 @@ snapshots: optionalDependencies: uglify-js: 3.19.3 - has-bigints@1.0.2: {} + has-bigints@1.1.0: {} + + has-flag@3.0.0: {} has-flag@4.0.0: {} has-property-descriptors@1.0.2: dependencies: - es-define-property: 1.0.0 + es-define-property: 1.0.1 - has-proto@1.0.3: {} + has-proto@1.2.0: + dependencies: + dunder-proto: 1.0.1 - has-symbols@1.0.3: {} + has-symbols@1.1.0: {} has-tostringtag@1.0.2: dependencies: - has-symbols: 1.0.3 - - has@1.0.4: {} + has-symbols: 1.1.0 hasown@2.0.2: dependencies: @@ -2671,24 +3256,20 @@ snapshots: hpagent@1.2.0: {} - html-element-map@1.3.1: - dependencies: - array.prototype.filter: 1.0.4 - call-bind: 1.0.7 - - htmlparser2@9.1.0: + http-errors@2.0.0: dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.1.0 - entities: 4.5.0 + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 http2-client@1.3.5: {} - https-proxy-agent@7.0.5: + https-proxy-agent@7.0.6: dependencies: - agent-base: 7.1.1 - debug: 4.3.7 + agent-base: 7.1.4 + debug: 4.4.1(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -2696,6 +3277,8 @@ snapshots: dependencies: safer-buffer: 2.1.2 + ignore-by-default@1.0.1: {} + immer@9.0.21: {} inflight@1.0.6: @@ -2705,149 +3288,219 @@ snapshots: inherits@2.0.4: {} - internal-slot@1.0.7: + internal-slot@1.1.0: dependencies: es-errors: 1.3.0 hasown: 2.0.2 - side-channel: 1.0.6 + side-channel: 1.1.0 + + ipaddr.js@1.9.1: {} + + is-array-buffer@3.0.5: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 - is-array-buffer@3.0.4: + is-async-function@2.1.1: dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 + async-function: 1.0.0 + call-bound: 1.0.4 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 - is-bigint@1.0.4: + is-bigint@1.1.0: dependencies: - has-bigints: 1.0.2 + has-bigints: 1.1.0 is-binary-path@2.1.0: dependencies: binary-extensions: 2.3.0 - is-boolean-object@1.1.2: + is-boolean-object@1.2.2: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.4 has-tostringtag: 1.0.2 is-callable@1.2.7: {} - is-core-module@2.15.1: + is-core-module@2.16.1: dependencies: hasown: 2.0.2 - is-data-view@1.0.1: + is-data-view@1.0.2: dependencies: - is-typed-array: 1.1.13 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + is-typed-array: 1.1.15 - is-date-object@1.0.5: + is-date-object@1.1.0: dependencies: + call-bound: 1.0.4 has-tostringtag: 1.0.2 + is-docker@3.0.0: {} + is-extglob@2.1.1: {} + is-finalizationregistry@1.1.1: + dependencies: + call-bound: 1.0.4 + is-fullwidth-code-point@3.0.0: {} + is-generator-function@1.1.0: + dependencies: + call-bound: 1.0.4 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + + is-map@2.0.3: {} + is-negative-zero@2.0.3: {} - is-number-object@1.0.7: + is-number-object@1.1.1: dependencies: + call-bound: 1.0.4 has-tostringtag: 1.0.2 is-number@7.0.0: {} + is-promise@4.0.0: {} + is-reference@1.2.1: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.8 - is-regex@1.1.4: + is-regex@1.2.1: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.4 + gopd: 1.2.0 has-tostringtag: 1.0.2 + hasown: 2.0.2 + + is-set@2.0.3: {} - is-shared-array-buffer@1.0.3: + is-shared-array-buffer@1.0.4: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.4 - is-string@1.0.7: + is-string@1.1.1: dependencies: + call-bound: 1.0.4 has-tostringtag: 1.0.2 - is-subset@0.1.1: {} + is-symbol@1.1.1: + dependencies: + call-bound: 1.0.4 + has-symbols: 1.1.0 + safe-regex-test: 1.1.0 + + is-typed-array@1.1.15: + dependencies: + which-typed-array: 1.1.19 + + is-weakmap@2.0.2: {} - is-symbol@1.0.4: + is-weakref@1.1.1: dependencies: - has-symbols: 1.0.3 + call-bound: 1.0.4 - is-typed-array@1.1.13: + is-weakset@2.0.4: dependencies: - which-typed-array: 1.1.15 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 - is-weakref@1.0.2: + is-wsl@3.1.0: dependencies: - call-bind: 1.0.7 + is-inside-container: 1.0.0 isarray@2.0.5: {} - js-levenshtein@1.1.6: {} + isexe@2.0.0: {} - js-tokens@4.0.0: {} + jackspeak@4.1.1: + dependencies: + '@isaacs/cliui': 8.0.2 + + jest-diff@29.7.0: + dependencies: + chalk: 4.1.2 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 - js-yaml@3.14.1: + jest-get-type@29.6.3: {} + + jest-matcher-utils@29.7.0: dependencies: - argparse: 1.0.10 - esprima: 4.0.1 + chalk: 4.1.2 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + js-levenshtein@1.1.6: {} + + js-tokens@4.0.0: {} js-yaml@4.1.0: dependencies: argparse: 2.0.1 - jsep@1.3.9: {} + jsep@1.4.0: {} json-pointer@0.6.2: dependencies: foreach: 2.0.6 + json-schema-to-ts@2.7.2: + dependencies: + '@babel/runtime': 7.28.3 + '@types/json-schema': 7.0.15 + ts-algebra: 1.2.2 + json-schema-traverse@1.0.0: {} jsonc-parser@2.2.1: {} - jsonfile@6.1.0: + jsonfile@6.2.0: dependencies: universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 - jsonpath-plus@6.0.1: - optional: true - - jsonpath-plus@7.1.0: {} + jsonpath-plus@10.3.0: + dependencies: + '@jsep-plugin/assignment': 1.3.0(jsep@1.4.0) + '@jsep-plugin/regex': 1.0.4(jsep@1.4.0) + jsep: 1.4.0 jsonpointer@5.0.1: {} leven@3.1.0: {} - locate-path@5.0.0: - dependencies: - p-locate: 4.1.0 - - lodash.escape@4.0.1: {} - - lodash.flattendeep@4.4.0: {} - - lodash.isequal@4.5.0: {} - lodash.topath@4.5.2: {} lodash@4.17.21: {} + long@5.3.2: {} + loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 + lru-cache@11.1.0: {} + lunr@2.3.9: {} magic-string@0.25.9: @@ -2856,8 +3509,16 @@ snapshots: mark.js@8.11.1: {} + markdown-escape@2.0.0: {} + marked@4.3.0: {} + math-intrinsics@1.1.0: {} + + media-typer@1.1.0: {} + + merge-descriptors@2.0.0: {} + merge2@1.4.1: {} micromatch@4.0.8: @@ -2867,17 +3528,27 @@ snapshots: mime-db@1.52.0: {} + mime-db@1.54.0: {} + mime-types@2.1.35: dependencies: mime-db: 1.52.0 + mime-types@3.0.1: + dependencies: + mime-db: 1.54.0 + + minimatch@10.0.3: + dependencies: + '@isaacs/brace-expansion': 5.0.0 + minimatch@3.1.2: dependencies: - brace-expansion: 1.1.11 + brace-expansion: 1.1.12 minimatch@5.1.6: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 2.0.2 minimist@1.2.8: {} @@ -2887,6 +3558,8 @@ snapshots: minipass@5.0.0: {} + minipass@7.1.2: {} + minizlib@2.1.2: dependencies: minipass: 3.3.6 @@ -2894,47 +3567,40 @@ snapshots: mkdirp@1.0.4: {} - mobx-react-lite@4.0.7(mobx@6.13.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + mobx-react-lite@4.1.0(mobx@6.13.7)(react-dom@19.1.1(react@19.1.1))(react@19.1.1): dependencies: - mobx: 6.13.1 - react: 18.3.1 - use-sync-external-store: 1.2.2(react@18.3.1) + mobx: 6.13.7 + react: 19.1.1 + use-sync-external-store: 1.5.0(react@19.1.1) optionalDependencies: - react-dom: 18.3.1(react@18.3.1) + react-dom: 19.1.1(react@19.1.1) - mobx-react@9.1.1(mobx@6.13.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + mobx-react@9.2.0(mobx@6.13.7)(react-dom@19.1.1(react@19.1.1))(react@19.1.1): dependencies: - mobx: 6.13.1 - mobx-react-lite: 4.0.7(mobx@6.13.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 + mobx: 6.13.7 + mobx-react-lite: 4.1.0(mobx@6.13.7)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + react: 19.1.1 optionalDependencies: - react-dom: 18.3.1(react@18.3.1) - - mobx@6.13.1: {} + react-dom: 19.1.1(react@19.1.1) - moo@0.5.2: {} + mobx@6.13.7: {} ms@2.1.3: {} - nanoid@3.3.7: {} + nanoid@3.3.11: {} - nearley@2.20.1: - dependencies: - commander: 2.20.3 - moo: 0.5.2 - railroad-diagrams: 1.0.0 - randexp: 0.4.6 + negotiator@1.0.0: {} neo-async@2.6.2: {} - nimma@0.2.2: + nimma@0.2.3: dependencies: - '@jsep-plugin/regex': 1.0.3(jsep@1.3.9) - '@jsep-plugin/ternary': 1.1.3(jsep@1.3.9) + '@jsep-plugin/regex': 1.0.4(jsep@1.4.0) + '@jsep-plugin/ternary': 1.1.4(jsep@1.4.0) astring: 1.9.0 - jsep: 1.3.9 + jsep: 1.4.0 optionalDependencies: - jsonpath-plus: 6.0.1 + jsonpath-plus: 10.3.0 lodash.topath: 4.5.2 node-domexception@1.0.0: {} @@ -2962,11 +3628,20 @@ snapshots: '@types/sarif': 2.1.7 fs-extra: 10.1.0 - normalize-path@3.0.0: {} - - nth-check@2.1.1: + nodemon@3.1.10: dependencies: - boolbase: 1.0.0 + chokidar: 3.6.0 + debug: 4.4.1(supports-color@5.5.0) + ignore-by-default: 1.0.1 + minimatch: 3.1.2 + pstree.remy: 1.1.8 + semver: 7.7.2 + simple-update-notifier: 2.0.0 + supports-color: 5.5.0 + touch: 3.1.1 + undefsafe: 2.0.5 + + normalize-path@3.0.0: {} oas-kit-common@1.0.8: dependencies: @@ -2984,7 +3659,7 @@ snapshots: oas-kit-common: 1.0.8 reftools: 1.1.9 yaml: 1.10.2 - yargs: 17.7.2 + yargs: 17.0.1 oas-schema-walker@1.1.5: {} @@ -3001,81 +3676,70 @@ snapshots: object-assign@4.1.1: {} - object-inspect@1.13.2: {} - - object-is@1.1.6: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 + object-inspect@1.13.4: {} object-keys@1.1.1: {} - object.assign@4.1.5: + object.assign@4.1.7: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 define-properties: 1.2.1 - has-symbols: 1.0.3 + es-object-atoms: 1.1.1 + has-symbols: 1.1.0 object-keys: 1.1.1 - object.entries@1.1.8: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 - - object.values@1.2.0: + on-finished@2.4.1: dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 + ee-first: 1.1.1 once@1.4.0: dependencies: wrappy: 1.0.2 - openapi-sampler@1.5.1: - dependencies: - '@types/json-schema': 7.0.15 - json-pointer: 0.6.2 - - openapi-types@12.1.3: {} - - p-limit@2.3.0: + open@10.2.0: dependencies: - p-try: 2.2.0 + default-browser: 5.2.1 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + wsl-utils: 0.1.0 - p-locate@4.1.0: + openapi-sampler@1.6.1: dependencies: - p-limit: 2.3.0 + '@types/json-schema': 7.0.15 + fast-xml-parser: 4.5.3 + json-pointer: 0.6.2 - p-try@2.2.0: {} + outdent@0.8.0: {} - parse5-htmlparser2-tree-adapter@7.0.0: + own-keys@1.0.1: dependencies: - domhandler: 5.0.3 - parse5: 7.1.2 + get-intrinsic: 1.3.0 + object-keys: 1.1.1 + safe-push-apply: 1.0.0 - parse5-parser-stream@7.1.2: - dependencies: - parse5: 7.1.2 + package-json-from-dist@1.0.1: {} - parse5@7.1.2: - dependencies: - entities: 4.5.0 + parseurl@1.3.3: {} path-browserify@1.0.1: {} - path-exists@4.0.0: {} - path-is-absolute@1.0.1: {} + path-key@3.1.1: {} + path-parse@1.0.7: {} - perfect-scrollbar@1.5.5: {} + path-scurry@2.0.0: + dependencies: + lru-cache: 11.1.0 + minipass: 7.1.2 + + path-to-regexp@8.2.0: {} - performance-now@2.1.0: {} + perfect-scrollbar@1.5.6: {} - picocolors@1.1.0: {} + picocolors@1.1.1: {} picomatch@2.3.1: {} @@ -3083,23 +3747,29 @@ snapshots: polished@4.3.1: dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.28.3 pony-cause@1.1.1: {} - possible-typed-array-names@1.0.0: {} + possible-typed-array-names@1.1.0: {} postcss-value-parser@4.2.0: {} - postcss@8.4.38: + postcss@8.4.49: dependencies: - nanoid: 3.3.7 - picocolors: 1.1.0 - source-map-js: 1.2.0 + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + pretty-format@29.7.0: + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.3.1 printable-characters@1.0.42: {} - prismjs@1.29.0: {} + prismjs@1.30.0: {} prop-types@15.8.1: dependencies: @@ -3107,50 +3777,63 @@ snapshots: object-assign: 4.1.1 react-is: 16.13.1 - punycode@2.3.1: {} - - queue-microtask@1.2.3: {} + protobufjs@7.5.3: + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 24.3.0 + long: 5.3.2 - raf@3.4.1: + proxy-addr@2.0.7: dependencies: - performance-now: 2.1.0 + forwarded: 0.2.0 + ipaddr.js: 1.9.1 - railroad-diagrams@1.0.0: {} + pstree.remy@1.1.8: {} - randexp@0.4.6: + qs@6.14.0: dependencies: - discontinuous-range: 1.0.0 - ret: 0.1.15 + side-channel: 1.1.0 + + queue-microtask@1.2.3: {} randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 - react-dom@18.3.1(react@18.3.1): + range-parser@1.2.1: {} + + raw-body@3.0.0: dependencies: - loose-envify: 1.4.0 - react: 18.3.1 - scheduler: 0.23.2 + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.6.3 + unpipe: 1.0.0 + + react-dom@19.1.1(react@19.1.1): + dependencies: + react: 19.1.1 + scheduler: 0.26.0 react-is@16.13.1: {} react-is@18.3.1: {} - react-shallow-renderer@16.15.0(react@18.3.1): - dependencies: - object-assign: 4.1.1 - react: 18.3.1 - react-is: 18.3.1 - - react-tabs@6.0.2(react@18.3.1): + react-tabs@6.1.0(react@19.1.1): dependencies: clsx: 2.1.1 prop-types: 15.8.1 - react: 18.3.1 + react: 19.1.1 - react@18.3.1: - dependencies: - loose-envify: 1.4.0 + react@19.1.1: {} readable-stream@3.6.2: dependencies: @@ -3162,117 +3845,158 @@ snapshots: dependencies: picomatch: 2.3.1 - redoc@2.1.5(core-js@3.38.1)(enzyme@3.11.0)(mobx@6.13.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)): + redoc@2.5.0(core-js@3.38.1)(mobx@6.13.7)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(styled-components@6.1.19(react-dom@19.1.1(react@19.1.1))(react@19.1.1)): dependencies: - '@cfaester/enzyme-adapter-react-18': 0.8.0(enzyme@3.11.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@redocly/openapi-core': 1.22.1 + '@redocly/openapi-core': 1.34.5 classnames: 2.5.1 core-js: 3.38.1 decko: 1.2.0 - dompurify: 3.1.6 + dompurify: 3.2.6 eventemitter3: 5.0.1 json-pointer: 0.6.2 lunr: 2.3.9 mark.js: 8.11.1 marked: 4.3.0 - mobx: 6.13.1 - mobx-react: 9.1.1(mobx@6.13.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - openapi-sampler: 1.5.1 + mobx: 6.13.7 + mobx-react: 9.2.0(mobx@6.13.7)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + openapi-sampler: 1.6.1 path-browserify: 1.0.1 - perfect-scrollbar: 1.5.5 + perfect-scrollbar: 1.5.6 polished: 4.3.1 - prismjs: 1.29.0 + prismjs: 1.30.0 prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-tabs: 6.0.2(react@18.3.1) + react: 19.1.1 + react-dom: 19.1.1(react@19.1.1) + react-tabs: 6.1.0(react@19.1.1) slugify: 1.4.7 stickyfill: 1.1.1 - styled-components: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + styled-components: 6.1.19(react-dom@19.1.1(react@19.1.1))(react@19.1.1) swagger2openapi: 7.0.8 url-template: 2.0.8 transitivePeerDependencies: - encoding - - enzyme - react-native - supports-color - reftools@1.1.9: {} + reflect.getprototypeof@1.0.10: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.0 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + which-builtin-type: 1.2.1 - regenerator-runtime@0.14.1: {} + reftools@1.1.9: {} - regexp.prototype.flags@1.5.2: + regexp.prototype.flags@1.5.4: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 es-errors: 1.3.0 + get-proto: 1.0.1 + gopd: 1.2.0 set-function-name: 2.0.2 require-directory@2.1.1: {} require-from-string@2.0.2: {} - require-main-filename@2.0.0: {} - reserved@0.1.2: {} - resolve@1.22.8: + resolve@1.22.10: dependencies: - is-core-module: 2.15.1 + is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - ret@0.1.15: {} - - reusify@1.0.4: {} + reusify@1.1.0: {} - rollup@2.79.1: + rollup@2.79.2: optionalDependencies: fsevents: 2.3.3 - rst-selector-parser@2.2.3: + router@2.2.0: dependencies: - lodash.flattendeep: 4.4.0 - nearley: 2.20.1 + debug: 4.4.1(supports-color@5.5.0) + depd: 2.0.0 + is-promise: 4.0.0 + parseurl: 1.3.3 + path-to-regexp: 8.2.0 + transitivePeerDependencies: + - supports-color + + run-applescript@7.0.0: {} run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 - safe-array-concat@1.1.2: + safe-array-concat@1.1.3: dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 + call-bind: 1.0.8 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + has-symbols: 1.1.0 isarray: 2.0.5 safe-buffer@5.2.1: {} - safe-regex-test@1.0.3: + safe-push-apply@1.0.0: + dependencies: + es-errors: 1.3.0 + isarray: 2.0.5 + + safe-regex-test@1.1.0: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.4 es-errors: 1.3.0 - is-regex: 1.1.4 + is-regex: 1.2.1 safe-stable-stringify@1.1.1: {} safer-buffer@2.1.2: {} - scheduler@0.23.2: + scheduler@0.26.0: {} + + semver@7.7.2: {} + + send@1.2.0: dependencies: - loose-envify: 1.4.0 + debug: 4.4.1(supports-color@5.5.0) + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 2.0.0 + http-errors: 2.0.0 + mime-types: 3.0.1 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color - semver@7.6.3: {} + serve-static@2.2.0: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 1.2.0 + transitivePeerDependencies: + - supports-color - set-blocking@2.0.0: {} + set-cookie-parser@2.7.1: {} set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.4 - gopd: 1.0.1 + get-intrinsic: 1.3.0 + gopd: 1.2.0 has-property-descriptors: 1.0.2 set-function-name@2.0.2: @@ -3282,8 +4006,22 @@ snapshots: functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 + set-proto@1.0.0: + dependencies: + dunder-proto: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + + setprototypeof@1.2.0: {} + shallowequal@1.1.0: {} + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + should-equal@2.0.0: dependencies: should-type: 1.4.0 @@ -3310,20 +4048,47 @@ snapshots: should-type-adaptors: 1.1.0 should-util: 1.0.1 - side-channel@1.0.6: + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + side-channel@1.1.0: dependencies: - call-bind: 1.0.7 es-errors: 1.3.0 - get-intrinsic: 1.2.4 - object-inspect: 1.13.2 + object-inspect: 1.13.4 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + + signal-exit@4.1.0: {} + + simple-eval@1.0.1: + dependencies: + jsep: 1.4.0 - simple-eval@1.0.0: + simple-update-notifier@2.0.0: dependencies: - jsep: 1.3.9 + semver: 7.7.2 simple-websocket@9.1.0: dependencies: - debug: 4.3.7 + debug: 4.4.1(supports-color@5.5.0) queue-microtask: 1.2.3 randombytes: 2.1.0 readable-stream: 3.6.2 @@ -3335,45 +4100,62 @@ snapshots: slugify@1.4.7: {} - source-map-js@1.2.0: {} + source-map-js@1.2.1: {} source-map@0.6.1: {} sourcemap-codec@1.4.8: {} - sprintf-js@1.0.3: {} - stacktracey@2.1.8: dependencies: as-table: 1.0.55 get-source: 2.0.12 + statuses@2.0.1: {} + + statuses@2.0.2: {} + stickyfill@1.1.1: {} + stop-iteration-iterator@1.1.0: + dependencies: + es-errors: 1.3.0 + internal-slot: 1.1.0 + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - string.prototype.trim@1.2.9: + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + string.prototype.trim@1.2.10: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 + define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 + es-abstract: 1.24.0 + es-object-atoms: 1.1.1 + has-property-descriptors: 1.0.2 - string.prototype.trimend@1.0.8: + string.prototype.trimend@1.0.9: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 string.prototype.trimstart@1.0.8: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 string_decoder@1.3.0: dependencies: @@ -3383,22 +4165,32 @@ snapshots: dependencies: ansi-regex: 5.0.1 - styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + + strnum@1.1.2: {} + + styled-components@6.1.19(react-dom@19.1.1(react@19.1.1))(react@19.1.1): dependencies: '@emotion/is-prop-valid': 1.2.2 '@emotion/unitless': 0.8.1 '@types/stylis': 4.2.5 css-to-react-native: 3.2.0 csstype: 3.1.3 - postcss: 8.4.38 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + postcss: 8.4.49 + react: 19.1.1 + react-dom: 19.1.1(react@19.1.1) shallowequal: 1.1.0 stylis: 4.3.2 tslib: 2.6.2 stylis@4.3.2: {} + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -3417,7 +4209,7 @@ snapshots: oas-validator: 5.0.8 reftools: 1.1.9 yaml: 1.10.2 - yargs: 17.7.2 + yargs: 17.0.1 transitivePeerDependencies: - encoding @@ -3436,73 +4228,88 @@ snapshots: dependencies: is-number: 7.0.0 + toidentifier@1.0.1: {} + + touch@3.1.1: {} + tr46@0.0.3: {} + ts-algebra@1.2.2: {} + tslib@1.14.1: {} tslib@2.6.2: {} - tslib@2.7.0: {} + tslib@2.8.1: {} - typed-array-buffer@1.0.2: + type-is@2.0.1: dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-typed-array: 1.1.13 + content-type: 1.0.5 + media-typer: 1.1.0 + mime-types: 3.0.1 - typed-array-byte-length@1.0.1: + typed-array-buffer@1.0.3: dependencies: - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 + call-bound: 1.0.4 + es-errors: 1.3.0 + is-typed-array: 1.1.15 - typed-array-byte-offset@1.0.2: + typed-array-byte-length@1.0.3: dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 - typed-array-length@1.0.6: + typed-array-byte-offset@1.0.4: dependencies: - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 - possible-typed-array-names: 1.0.0 + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + reflect.getprototypeof: 1.0.10 + + typed-array-length@1.0.7: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + is-typed-array: 1.1.15 + possible-typed-array-names: 1.1.0 + reflect.getprototypeof: 1.0.10 uglify-js@3.19.3: optional: true - unbox-primitive@1.0.2: + unbox-primitive@1.1.0: dependencies: - call-bind: 1.0.7 - has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 + call-bound: 1.0.4 + has-bigints: 1.1.0 + has-symbols: 1.1.0 + which-boxed-primitive: 1.1.1 + + undefsafe@2.0.5: {} - undici-types@6.19.8: {} + undici-types@7.10.0: {} - undici@6.19.8: {} + undici@6.21.3: {} universalify@2.0.1: {} - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 + unpipe@1.0.0: {} + + uri-js-replace@1.0.1: {} urijs@1.19.11: {} url-template@2.0.8: {} - use-sync-external-store@1.2.2(react@18.3.1): + use-sync-external-store@1.5.0(react@19.1.1): dependencies: - react: 18.3.1 + react: 19.1.1 util-deprecate@1.0.2: {} @@ -3512,58 +4319,83 @@ snapshots: dependencies: builtins: 1.0.3 + vary@1.1.2: {} + web-streams-polyfill@3.3.3: {} webidl-conversions@3.0.1: {} - whatwg-encoding@3.1.1: - dependencies: - iconv-lite: 0.6.3 - - whatwg-mimetype@4.0.0: {} - whatwg-url@5.0.0: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 - which-boxed-primitive@1.0.2: + which-boxed-primitive@1.1.1: + dependencies: + is-bigint: 1.1.0 + is-boolean-object: 1.2.2 + is-number-object: 1.1.1 + is-string: 1.1.1 + is-symbol: 1.1.1 + + which-builtin-type@1.2.1: dependencies: - is-bigint: 1.0.4 - is-boolean-object: 1.1.2 - is-number-object: 1.0.7 - is-string: 1.0.7 - is-symbol: 1.0.4 + call-bound: 1.0.4 + function.prototype.name: 1.1.8 + has-tostringtag: 1.0.2 + is-async-function: 2.1.1 + is-date-object: 1.1.0 + is-finalizationregistry: 1.1.1 + is-generator-function: 1.1.0 + is-regex: 1.2.1 + is-weakref: 1.1.1 + isarray: 2.0.5 + which-boxed-primitive: 1.1.1 + which-collection: 1.0.2 + which-typed-array: 1.1.19 - which-module@2.0.1: {} + which-collection@1.0.2: + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.4 - which-typed-array@1.1.15: + which-typed-array@1.1.19: dependencies: available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 + call-bind: 1.0.8 + call-bound: 1.0.4 + for-each: 0.3.5 + get-proto: 1.0.1 + gopd: 1.2.0 has-tostringtag: 1.0.2 + which@2.0.2: + dependencies: + isexe: 2.0.0 + wordwrap@1.0.0: {} - wrap-ansi@6.2.0: + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - wrap-ansi@7.0.0: + wrap-ansi@8.1.0: dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 wrappy@1.0.2: {} ws@7.5.10: {} - y18n@4.0.3: {} + wsl-utils@0.1.0: + dependencies: + is-wsl: 3.1.0 y18n@5.0.8: {} @@ -3573,29 +4405,12 @@ snapshots: yaml@1.10.2: {} - yargs-parser@18.1.3: - dependencies: - camelcase: 5.3.1 - decamelize: 1.2.0 + yaml@2.8.1: {} yargs-parser@20.2.9: {} yargs-parser@21.1.1: {} - yargs@15.4.1: - dependencies: - cliui: 6.0.0 - decamelize: 1.2.0 - find-up: 4.1.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - require-main-filename: 2.0.0 - set-blocking: 2.0.0 - string-width: 4.2.3 - which-module: 2.0.1 - y18n: 4.0.3 - yargs-parser: 18.1.3 - yargs@17.0.1: dependencies: cliui: 7.0.4 diff --git a/base/paystack.yaml b/src/assets/base/paystack.yaml similarity index 60% rename from base/paystack.yaml rename to src/assets/base/paystack.yaml index 824bd4a..11b6904 100644 --- a/base/paystack.yaml +++ b/src/assets/base/paystack.yaml @@ -1,9 +1,8 @@ -# yaml-language-server: $schema=https://json-schema.org/draft/2020-12/schema - openapi: 3.0.1 info: title: Paystack - description: The OpenAPI specification of the Paystack API that merchants and developers can harness to build financial solutions in Africa. + description: The OpenAPI specification of the Paystack API that merchants and + developers can harness to build financial solutions in Africa. version: 1.0.0 contact: email: techsupport@paystack.com @@ -17,29 +16,37 @@ tags: description: | A collection of endpoints for managing payments x-product-name: Transactions - - name: Transaction Split - description: | - A collection of endpoints for spliting a transaction and managing the splits + - name: Split + description: > + A collection of endpoints for spliting a transaction and managing the + splits x-product-name: Transaction Splits - name: Terminal - description: | + description: > A collection of endpoints for building delightful in-person payment experiences x-product-name: Terminal - - name: Customer + - name: Virtual Terminal description: | - A collection of endpoints for creating and managing customers on an integration + A collection of endpoints for building in-person payments without a physical terminal + x-product-name: Virtual Terminal + - name: Customer + description: > + A collection of endpoints for creating and managing customers on an + integration x-product-name: Customers - name: Direct Debit description: | A collection of endpoints for managing Direct Debit x-product-name: Direct Debit - name: Dedicated Virtual Account - description: | - A collection of endpoints for creating and managing payment accounts for customers + description: > + A collection of endpoints for creating and managing payment accounts for + customers x-product-name: Dedicated Virtual Accounts - name: Apple Pay - description: | - A collection of endpoints for managing application's top-level domain or subdomain accepting payment via Apple Pay + description: > + A collection of endpoints for managing application's top-level domain or + subdomain accepting payment via Apple Pay x-product-name: Apple Pay - name: Subaccount description: | @@ -82,36 +89,42 @@ tags: A collection of endpoints for gaining insights into payouts x-product-name: Settlements - name: Transfer Recipient - description: | - A collection of endpoints for creating and managing beneficiaries that you send money to + description: > + A collection of endpoints for creating and managing beneficiaries that you + send money to x-product-name: Transfer Recipients - name: Transfer description: | A collection of endpoints for automating sending money to beneficiaries x-product-name: Transfers - name: Balance - description: | - A collection of endpoints gaining insights into the amount on an integration + description: > + A collection of endpoints gaining insights into the amount on an + integration x-product-name: Balance - name: Charge - description: | - A collection of endpoints for configuring and managing the payment channels when initiating a payment + description: > + A collection of endpoints for configuring and managing the payment + channels when initiating a payment x-product-name: Charges - name: Bulk Charge - description: | - A collection of endpoints for creating and managing multiple recurring payments + description: > + A collection of endpoints for creating and managing multiple recurring + payments x-product-name: Bulk Charges - name: Integration description: | A collection of endpoints for managing some settings on an integration x-product-name: Integration - name: Refund - description: | - A collection of endpoints for creating and managing transaction reimbursement + description: > + A collection of endpoints for creating and managing transaction + reimbursement x-product-name: Refunds - name: Dispute - description: | - A collection of endpoints for managing transactions complaint made by customers + description: > + A collection of endpoints for managing transactions complaint made by + customers x-product-name: Disputes - name: Bank description: | @@ -133,17 +146,21 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TransactionInitialize' + $ref: "#/components/schemas/TransactionInitialize" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/TransactionInitialize' + $ref: "#/components/schemas/TransactionInitialize" responses: - '200': - $ref: '#/components/responses/TransactionInitializeSuccess' - '400': - $ref: '#/components/responses/TransactionInitializeBadRequestResponse' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/TransactionInitializeResponse" + "400": + $ref: "#/components/responses/TransactionInitializeBadRequestResponse" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /transaction/verify/{reference}: @@ -161,12 +178,16 @@ paths: schema: type: string responses: - '200': - $ref: '#/components/responses/TransactionVerifySuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/VerifyResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /transaction: @@ -184,14 +205,16 @@ paths: type: boolean - in: query name: next - description: | - An alphanumeric value returned for every cursor based retrieval, used to retrieve the next set of data + description: > + An alphanumeric value returned for every cursor based retrieval, + used to retrieve the next set of data schema: type: string - in: query name: previous - description: | - An alphanumeric value returned for every cursor based retrieval, used to retrieve the previous set of data + description: > + An alphanumeric value returned for every cursor based retrieval, + used to retrieve the previous set of data schema: type: string - in: query @@ -203,7 +226,7 @@ paths: name: page schema: type: integer - description: Used to indicate the offeset to retrieve data from + description: The offset to retrieve data from - in: query name: from description: The start date @@ -217,53 +240,64 @@ paths: type: string format: date-time - in: query - name: channel - description: The payment method the customer used to complete the transaction + name: status + description: Filter transaction by status schema: type: string enum: - - card + - success + - failed + - abandoned + - reversed + - in: query + name: source + description: The origin of the payment + schema: + type: string + enum: + - merchantApi + - checkout - pos - - bank - - dedicated_nuban - - ussd - - bank_transfer + - virtualTerminal - in: query name: terminal_id - description: The terminal ID to filter all transactions from a terminal + description: Filter transactions by a terminal ID + schema: + type: string + - in: query + name: virtual_account_number + description: Filter transactions by a virtual account number schema: type: string - in: query name: customer_code - description: The customer code to filter all transactions from a customer + description: Filter transactions by a customer code schema: type: string - in: query name: amount - description: Filter transactions by a certain amount + description: Filter transactions by a specific amount schema: type: integer format: int64 - in: query - name: status - description: Filter transaction by status + name: settlement + description: The settlement ID to filter for settled transactions schema: - type: string - enum: - - success - - failed - - abandoned - - reversed + type: integer + format: int64 - in: query - name: source - description: The origin of the payment + name: channel + description: The payment method the customer used to complete the transaction schema: type: string enum: - - merchantApi - - checkout + - card - pos - - virtualTerminal + - bank + - dedicated_nuban + - ussd + - bank_transfer - in: query name: subaccount_code description: Filter transaction by subaccount code @@ -274,19 +308,17 @@ paths: description: Filter transaction by split code schema: type: string - - in: query - name: settlement - description: The settlement ID to filter for settled transactions - schema: - type: integer - format: int64 responses: - '200': - $ref: '#/components/responses/TransactionListSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/TransactionListResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /transaction/{id}: @@ -304,12 +336,16 @@ paths: schema: type: string responses: - '200': - $ref: '#/components/responses/TransactionFetchSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/TransactionFetchResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /transaction/timeline/{id}: @@ -318,7 +354,8 @@ paths: - Transaction summary: Fetch Transaction Timeline operationId: transaction_timeline - description: Get the details about the lifecycle of a transaction from initiation to completion + description: Get the details about the lifecycle of a transaction from + initiation to completion parameters: - name: id in: path @@ -328,12 +365,16 @@ paths: format: int64 example: 3936799950 responses: - '200': - $ref: '#/components/responses/TransactionTimelineSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/TransactionTimelineResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /transaction/totals: @@ -350,21 +391,25 @@ paths: schema: type: string format: date-time - example: '2024-06-01T00:00:01Z' + example: 2024-06-01T00:00:01Z - in: query name: to description: The end date schema: type: string format: date-time - example: '2024-06-30T13:36:54Z' + example: 2024-06-30T13:36:54Z responses: - '200': - $ref: '#/components/responses/TransactionTotalsSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/TransactionTotalsResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /transaction/export: @@ -372,7 +417,8 @@ paths: tags: - Transaction summary: Export Transactions - operationId: transaction_download + operationId: transaction_export + x-operationId: transaction_exportTransaction parameters: - in: query name: from @@ -380,14 +426,14 @@ paths: schema: type: string format: date-time - example: '2024-06-01T00:00:01Z' + example: 2024-06-01T00:00:01Z - in: query name: to description: The end date schema: type: string format: date-time - example: '2024-06-30T13:36:54Z' + example: 2024-06-30T13:36:54Z - in: query name: status description: Filter by the status of the transaction @@ -402,10 +448,10 @@ paths: example: success - in: query name: customer - description: Filter by customer code + description: Filter by customer ID schema: - type: string - example: CUS_eqt26928wowif7z + type: number + example: 123172416 - in: query name: subaccount_code description: Filter by subaccount code @@ -420,12 +466,16 @@ paths: format: int64 example: 5687910 responses: - '200': - $ref: '#/components/responses/TransactionExportSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/TransactionExportResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /transaction/charge_authorization: @@ -438,15 +488,19 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TransactionChargeAuthorization' + $ref: "#/components/schemas/TransactionChargeAuthorization" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/TransactionChargeAuthorization' + $ref: "#/components/schemas/TransactionChargeAuthorization" responses: - '200': - $ref: '#/components/responses/TransactionChargeSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/ChargeAuthorizationResponse" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /transaction/partial_debit: @@ -459,15 +513,19 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TransactionPartialDebit' + $ref: "#/components/schemas/TransactionPartialDebit" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/TransactionPartialDebit' + $ref: "#/components/schemas/TransactionPartialDebit" responses: - '200': - $ref: '#/components/responses/TransactionPartialDebitSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/TransactionPartialDebitResponse" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /transaction/{id}/event: @@ -485,12 +543,12 @@ paths: format: int64 example: 3936799950 responses: - '200': - $ref: '#/components/responses/Ok' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/Ok" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /transaction/{id}/session: @@ -508,12 +566,12 @@ paths: format: int64 example: 3936799950 responses: - '200': - $ref: '#/components/responses/Ok' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/Ok" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /split: @@ -526,58 +584,76 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/SplitCreate' + $ref: "#/components/schemas/SplitCreate" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/SplitCreate' + $ref: "#/components/schemas/SplitCreate" responses: - '200': - $ref: '#/components/responses/SplitCreateSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/SplitCreateResponse" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error get: tags: - Split - summary: List/Search Splits + summary: List Splits operationId: split_list parameters: - name: name + description: The name of the split in: query schema: type: string - name: active + description: The status of the split in: query schema: - type: string - - name: sort_by - in: query + type: boolean + - in: query + name: per_page schema: - type: string - - name: from - in: query + type: integer + description: The number of records to fetch per request + - in: query + name: page schema: - type: string - - name: to - in: query + type: integer + description: The offset to retrieve data from + - in: query + name: from + description: The start date schema: type: string - - name: perPage - in: query + format: date-time + - in: query + name: to + description: The end date schema: type: string - - name: page - in: query + format: date-time + - in: query + name: subaccount_code + description: Filter by subaccount code schema: type: string + example: ACCT_dskvlw3y3dMukmt responses: - '200': - $ref: '#/components/responses/SplitListSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/SplitListResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /split/{id}: @@ -593,12 +669,16 @@ paths: schema: type: string responses: - '200': - $ref: '#/components/responses/SplitFetchSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/SplitFetchResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error put: @@ -610,10 +690,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/SplitUpdate' + $ref: "#/components/schemas/SplitUpdate" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/SplitUpdate' + $ref: "#/components/schemas/SplitUpdate" parameters: - name: id in: path @@ -621,12 +701,16 @@ paths: schema: type: string responses: - '200': - $ref: '#/components/responses/SplitUpdateSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/SplitUpdateResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /split/{id}/subaccount/add: @@ -639,10 +723,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/SplitSubaccounts' + $ref: "#/components/schemas/SplitSubaccounts" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/SplitSubaccounts' + $ref: "#/components/schemas/SplitSubaccounts" parameters: - name: id in: path @@ -651,10 +735,14 @@ paths: type: string example: application/json responses: - '200': - $ref: '#/components/responses/SplitAddUpdateSubaccountSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/SplitAddUpdateSubaccountResponse" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /split/{id}/subaccount/remove: @@ -667,10 +755,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/SplitSubaccounts' + $ref: "#/components/schemas/SplitSubaccounts" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/SplitSubaccounts' + $ref: "#/components/schemas/SplitSubaccounts" parameters: - name: id in: path @@ -678,10 +766,14 @@ paths: schema: type: string responses: - '200': - $ref: '#/components/responses/SplitRemoveSubaccountSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/SplitRemoveSubaccountResponse" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /terminal/{id}/event: @@ -702,15 +794,15 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TerminalSendEvent' + $ref: "#/components/schemas/TerminalSendEvent" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/TerminalSendEvent' + $ref: "#/components/schemas/TerminalSendEvent" responses: - '200': - $ref: '#/components/responses/Ok' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + $ref: "#/components/responses/Ok" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /terminal/{terminal_id}/event/{event_id}: @@ -734,12 +826,12 @@ paths: type: string example: 616d721e8c5cd40a0cdd54a6 responses: - '200': - $ref: '#/components/responses/Ok' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/Ok" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /terminal/{terminal_id}/presence: @@ -757,12 +849,12 @@ paths: type: string example: Z0R4orOU responses: - '200': - $ref: '#/components/responses/TerminalGetStatusSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/TerminalGetStatusSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /terminal: @@ -786,12 +878,12 @@ paths: schema: type: string responses: - '200': - $ref: '#/components/responses/TerminalListsSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/TerminalListsSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /terminal/{terminal_id}: @@ -808,12 +900,12 @@ paths: description: Get the details of a Terminal operationId: terminal_fetch responses: - '200': - $ref: '#/components/responses/TerminalGetSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/TerminalGetSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error put: @@ -825,17 +917,17 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TerminalUpate' + $ref: "#/components/schemas/TerminalUpate" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/TerminalUpate' + $ref: "#/components/schemas/TerminalUpate" responses: - '200': - $ref: '#/components/responses/TerminalUpdateSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/TerminalUpdateSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /terminal/commission_device: @@ -849,15 +941,15 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TerminalActivationToggle' + $ref: "#/components/schemas/TerminalActivationToggle" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/TerminalActivationToggle' + $ref: "#/components/schemas/TerminalActivationToggle" responses: - '200': - $ref: '#/components/responses/TerminalCommissionDeviceSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + $ref: "#/components/responses/TerminalCommissionDeviceSuccess" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /terminal/decommission_device: @@ -871,83 +963,57 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TerminalActivationToggle' + $ref: "#/components/schemas/TerminalActivationToggle" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/TerminalActivationToggle' + $ref: "#/components/schemas/TerminalActivationToggle" responses: - '200': - $ref: '#/components/responses/TerminalDecommissionDeviceSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + $ref: "#/components/responses/TerminalDecommissionDeviceSuccess" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error - /customer: + /virtual_terminal: post: tags: - - Customer - summary: Create Customer - operationId: customer_create + - Virtual Terminal + summary: Create Virtual Terminal + operationId: virtualTerminal_create requestBody: content: application/json: schema: - $ref: '#/components/schemas/CustomerCreate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/CustomerCreate' + $ref: '#/components/schemas/VirtualTerminalCreate' responses: '200': - $ref: '#/components/responses/CustomerCreateSuccess' + $ref: '#/components/responses/VirtualTerminalCreateSuccess' '401': $ref: '#/components/responses/Unauthorized' default: description: Server error get: tags: - - Customer - summary: List Customers - operationId: customer_list - description: List customers on your integration + - Virtual Terminal + summary: List Virtual Terminals + operationId: virtualTerminal_list parameters: - - name: use_cursor - in: query - schema: - type: boolean - - name: next - in: query - schema: - type: string - - name: previous - in: query - schema: - type: string - - name: from - in: query - schema: - type: string - - name: to - in: query - schema: - type: string - name: perPage in: query schema: - type: string + type: integer - name: page in: query schema: - type: string + type: integer responses: '200': - $ref: '#/components/responses/CustomerListSuccess' + $ref: '#/components/responses/VirtualTerminalListSuccess' '401': $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' default: description: Server error - /customer/{code}: + /virtual_terminal/{code}: parameters: - name: code in: path @@ -956,636 +1022,993 @@ paths: type: string get: tags: - - Customer - summary: Fetch Customer - operationId: customer_fetch + - Virtual Terminal + summary: Fetch Virtual Terminal + operationId: virtualTerminal_fetch responses: '200': - $ref: '#/components/responses/CustomerFetchSuccess' + $ref: '#/components/responses/VirtualTerminalFetchSuccess' '401': $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' default: description: Server error put: tags: - - Customer - summary: Update Customer - operationId: customer_update + - Virtual Terminal + summary: Update Virtual Terminal + operationId: virtualTerminal_update requestBody: content: application/json: schema: - $ref: '#/components/schemas/CustomerUpdate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/CustomerUpdate' + $ref: '#/components/schemas/VirtualTerminalUpdate' responses: '200': - $ref: '#/components/responses/CustomerUpdateSuccess' + $ref: '#/components/responses/VirtualTerminalUpdateSuccess' '401': $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' default: description: Server error - /customer/set_risk_action: + /virtual_terminal/{code}/deactivate: + parameters: + - name: code + in: path + required: true + schema: + type: string + put: + tags: + - Virtual Terminal + summary: Deactivate Virtual Terminal + operationId: virtualTerminal_deactivate + responses: + '200': + $ref: '#/components/responses/VirtualTerminalDeactivateSuccess' + '401': + $ref: '#/components/responses/Unauthorized' + default: + description: Server error + /virtual_terminal/{code}/destination/assign: + parameters: + - name: code + in: path + required: true + schema: + type: string post: tags: - - Customer - summary: White/blacklist Customer - description: Set customer's risk action by whitelisting or blacklisting the customer - operationId: customer_riskAction + - Virtual Terminal + summary: Assign Destination to Virtual Terminal + operationId: virtualTerminal_destinationAssign requestBody: content: application/json: schema: - $ref: '#/components/schemas/CustomerRiskAction' + $ref: '#/components/schemas/VirtualTerminalDestinationAssign' application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/CustomerRiskAction' + $ref: '#/components/schemas/VirtualTerminalDestinationAssign' responses: '200': - $ref: '#/components/responses/CustomerWhitelistBlacklistSuccess' + $ref: '#/components/responses/VirtualTerminalDestinationAssignSuccess' '401': $ref: '#/components/responses/Unauthorized' default: description: Server error - /customer/deactivate_authorization: + /virtual_terminal/{code}/destination/unassign: + parameters: + - name: code + in: path + required: true + schema: + type: string post: tags: - - Customer - summary: Deactivate Authorization - operationId: customer_deactivateAuthorization - description: Deactivate a customer's card + - Virtual Terminal + summary: Unassign Destination from Virtual Terminal + operationId: virtualTerminal_destinationUnassign requestBody: content: application/json: schema: - $ref: '#/components/schemas/CustomerDeactivateAuthorization' + $ref: '#/components/schemas/VirtualTerminalDestinationUnassign' application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/CustomerDeactivateAuthorization' + $ref: '#/components/schemas/VirtualTerminalDestinationUnassign' responses: '200': - $ref: '#/components/responses/CustomerDeactivateAuthorizationSuccess' + $ref: '#/components/responses/VirtualTerminalDestinationUnassignSuccess' '401': $ref: '#/components/responses/Unauthorized' default: description: Server error - /customer/{code}/identification: + /virtual_terminal/{code}/split_code: parameters: - name: code in: path required: true schema: type: string - post: + put: tags: - - Customer - summary: Validate Customer - operationId: customer_validate - description: Validate a customer's identity + - Virtual Terminal + summary: Add Split Code to Virtual Terminal + operationId: virtualTerminal_addSplitCode requestBody: content: application/json: schema: - $ref: '#/components/schemas/CustomerValidate' + $ref: '#/components/schemas/VirtualTerminalAddSplitCode' application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/CustomerValidate' + $ref: '#/components/schemas/VirtualTerminalAddSplitCode' responses: - '202': - $ref: '#/components/responses/CustomerValidateSuccess' + '200': + $ref: '#/components/responses/VirtualTerminalAddSplitCodeSuccess' '401': $ref: '#/components/responses/Unauthorized' default: - description: Server error - /dedicated_account: - post: + description: Server Error + delete: tags: - - Dedicated Virtual Account - summary: Create Dedicated Account - operationId: dedicatedAccount_create + - Virtual Terminal + summary: Remove Split Code from Virtual Terminal + operationId: virtualTerminal_deleteSplitCode requestBody: content: application/json: schema: - $ref: '#/components/schemas/DedicatedVirtualAccountCreate' + $ref: '#/components/schemas/VirtualTerminalDeleteSplitCode' application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/DedicatedVirtualAccountCreate' + $ref: '#/components/schemas/VirtualTerminalDeleteSplitCode' responses: '200': - $ref: '#/components/responses/DedicatedNubanCreateSuccess' + $ref: '#/components/responses/VirtualTerminalDeleteSplitCodeSuccess' '401': $ref: '#/components/responses/Unauthorized' + default: + description: Server Error + /customer: + post: + tags: + - Customer + summary: Create Customer + operationId: customer_create + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CustomerCreate" + application/x-www-form-urlencoded: + schema: + $ref: "#/components/schemas/CustomerCreate" + responses: + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/CustomerCreateResponse" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error get: tags: - - Dedicated Virtual Account - summary: List Dedicated Accounts - operationId: dedicatedAccount_list + - Customer + summary: List Customers + operationId: customer_list + description: List customers on your integration parameters: - - name: account_number + - name: use_cursor + description: A flag to indicate if cursor based pagination should be used in: query schema: - type: string - - name: customer + type: boolean + - name: next + description: > + An alphanumeric value returned for every cursor based retrieval, + used to retrieve the next set of data in: query schema: type: string - - name: active - in: query - schema: - type: boolean - - name: currency + - name: previous + description: > + An alphanumeric value returned for every cursor based retrieval, + used to retrieve the previous set of data in: query schema: type: string - - name: provider_slug + - name: from + description: The start date in: query schema: type: string - - name: bank_id + format: date-time + - name: to + description: The end date in: query schema: type: string + format: date-time - name: perPage + description: The number of records to fetch per request in: query schema: type: string - name: page in: query + description: The offset to retrieve data from schema: type: string responses: - '200': - $ref: '#/components/responses/DedicatedNubanFetchSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' - default: - description: Server error - /dedicated_account/assign: - post: - tags: - - Dedicated Virtual Account - summary: Assign Dedicated Account - operationId: dedicatedAccount_assign - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DedicatedVirtualAccountAssign' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/DedicatedVirtualAccountAssign' - responses: - '200': - $ref: '#/components/responses/Ok' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/CustomerListResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error - /dedicated_account/{account_id}: + /customer/{code}: parameters: - - name: account_id + - name: code in: path required: true schema: type: string get: tags: - - Dedicated Virtual Account - summary: Fetch Dedicated Account - operationId: dedicatedAccount_fetch - responses: - '200': - $ref: '#/components/responses/DedicatedNubanFetchSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' - default: - description: Server error - delete: - tags: - - Dedicated Virtual Account - summary: Deactivate Dedicated Account - operationId: dedicatedAccount_deactivate + - Customer + summary: Fetch Customer + operationId: customer_fetch responses: - '200': - $ref: '#/components/responses/DedicatedNubanDeactivateSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/CustomerFetchResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error - /dedicated_account/requery: - parameters: - - name: account_number - description: Virtual account number to requery - in: query - schema: - type: string - - name: provider_slug - description: The bank's slug in lowercase, without spaces e.g. `wema-bank` - in: query - schema: - type: string - - name: date - description: The day the transfer was made in `YYYY-MM-DD` format - in: query - schema: - type: string - get: + put: tags: - - Dedicated Virtual Account - summary: Requery Dedicated Account - operationId: dedicatedAccount_requery + - Customer + summary: Update Customer + operationId: customer_update + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CustomerUpdate" + application/x-www-form-urlencoded: + schema: + $ref: "#/components/schemas/CustomerUpdate" responses: - '200': - $ref: '#/components/responses/Ok' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/CustomerUpdateResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error - /dedicated_account/split: + /customer/set_risk_action: post: tags: - - Dedicated Virtual Account - summary: Split Dedicated Account Transaction - operationId: dedicatedAccount_addSplit + - Customer + summary: Set Risk Action + description: Set customer's risk action by whitelisting or blacklisting the customer + operationId: customer_riskAction requestBody: content: application/json: schema: - $ref: '#/components/schemas/DedicatedVirtualAccountSplit' + $ref: "#/components/schemas/CustomerRiskAction" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/DedicatedVirtualAccountSplit' + $ref: "#/components/schemas/CustomerRiskAction" responses: - '200': - $ref: '#/components/responses/Ok' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/CustomerWhitelistBlacklistResponse" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error - delete: + /customer/deactivate_authorization: + post: tags: - - Dedicated Virtual Account - summary: Remove Split from Dedicated Account - operationId: dedicatedAccount_removeSplit + - Customer + summary: Deactivate Authorization + operationId: customer_deactivateAuthorization + description: Deactivate a customer's card requestBody: content: application/json: schema: - $ref: '#/components/schemas/DedicatedVirtualAccountSplit' + $ref: "#/components/schemas/CustomerDeactivateAuthorization" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/DedicatedVirtualAccountSplit' + $ref: "#/components/schemas/CustomerDeactivateAuthorization" responses: - '200': - $ref: '#/components/responses/Ok' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/CustomerDeactivateAuthorizationResponse" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error - /dedicated_account/available_providers: - get: + /customer/{code}/identification: + parameters: + - name: code + in: path + required: true + schema: + type: string + post: tags: - - Dedicated Virtual Account - summary: Fetch Bank Providers - operationId: dedicatedAccount_availableProviders + - Customer + summary: Validate Customer + operationId: customer_validate + description: Validate a customer's identity + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CustomerValidate" + application/x-www-form-urlencoded: + schema: + $ref: "#/components/schemas/CustomerValidate" responses: - '200': - $ref: '#/components/responses/Ok' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "202": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/CustomerValidateResponse" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error - /apple-pay/domain: + /customer/authorization/initialize: post: tags: - - Apple Pay - summary: Register Domain - description: Register a top-level domain or subdomain for your Apple Pay integration. - operationId: applePay_registerDomain + - Customer + summary: Initialize Authorization + description: Initiate a request to create a reusable authorization code for recurring transactions + operationId: customer_initializeAuthorization requestBody: + required: true content: application/json: schema: - $ref: '#/components/schemas/ApplePayParam' + $ref: '#/components/schemas/CustomerAuthorizationInitializeRequest' application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/ApplePayParam' + $ref: '#/components/schemas/CustomerAuthorizationInitializeRequest' responses: '200': - $ref: '#/components/responses/ApplePayOkResponse' + $ref: '#/components/responses/CustomerAuthorizationInitializeSuccess' '401': $ref: '#/components/responses/Unauthorized' default: description: Server error + /customer/authorization/verify/{reference}: get: tags: - - Apple Pay - summary: List Domains - description: Lists all registered domains on your integration - operationId: applePay_listDomain + - Customer + summary: Verify Authorization + description: Check the status of an authorization request + operationId: customer_verifyAuthorization parameters: - - name: use_cursor - in: query - schema: - type: boolean - - name: next - in: query - schema: - type: string - - name: previous - in: query + - name: reference + in: path + description: The reference returned in the initialization response + required: true schema: type: string responses: '200': - $ref: '#/components/responses/Ok' + $ref: '#/components/responses/CustomerAuthorizationVerifySuccess' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' default: description: Server error - delete: + /customer/{id}/initialize-direct-debit: + parameters: + - name: id + in: path + required: true + schema: + type: string + description: The ID of the customer to initialize the direct debit for + post: tags: - - Apple Pay - summary: Unregister Domain - description: Unregister a top-level domain or subdomain previously used for your Apple Pay integration. - operationId: applePay_unregisterDomain + - Customer + summary: Initialize Direct Debit + operationId: customer_initializeDirectDebit + description: Initialize the process of linking an account to a customer for Direct Debit transactions requestBody: content: application/json: schema: - $ref: '#/components/schemas/ApplePayParam' + $ref: '#/components/schemas/CustomerInitializeDirectDebitRequest' application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/ApplePayParam' + $ref: '#/components/schemas/CustomerInitializeDirectDebitRequest' responses: '200': - $ref: '#/components/responses/Ok' + $ref: '#/components/responses/CustomerInitializeDirectDebitSuccess' '401': $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' default: description: Server error - /subaccount: - post: + /customer/{id}/directdebit-activation-charge: + put: tags: - - Subaccount - summary: Create Subaccount - operationId: subaccount_create + - Customer + summary: Direct Debit Activation Charge + operationId: customer_directDebitActivationCharge + description: Trigger an activation charge on an inactive mandate on behalf of your customer + parameters: + - name: id + in: path + required: true + schema: + type: integer + description: The customer ID attached to the authorization requestBody: content: application/json: schema: - $ref: '#/components/schemas/SubaccountCreate' + $ref: '#/components/schemas/CustomerDirectDebitActivationChargeRequest' application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/SubaccountCreate' + $ref: '#/components/schemas/CustomerDirectDebitActivationChargeRequest' responses: '200': - $ref: '#/components/responses/SubaccountCreateSuccess' + $ref: '#/components/responses/CustomerDirectDebitActivationChargeSuccess' '401': $ref: '#/components/responses/Unauthorized' default: description: Server error + /customer/{id}/directdebit-mandate-authorizations: get: tags: - - Subaccount - summary: List Subaccounts - operationId: subaccount_list + - Customer + summary: Fetch Mandate Authorizations + operationId: customer_fetchMandateAuthorizations + description: Get the list of direct debit mandates associated with a customer parameters: - - in: query - name: perPage - schema: - type: integer - description: Number of records to fetch per page - - in: query - name: page - schema: - type: integer - description: The section to retrieve - - in: query - name: from - schema: - type: string - format: date-time - description: The start date - - in: query - name: to + - name: id + in: path + required: true schema: type: string - format: date-time - description: The end date + description: The customer ID for the authorizations to fetch responses: '200': - $ref: '#/components/responses/SubaccountListSuccess' + $ref: '#/components/responses/CustomerFetchMandateAuthorizationsSuccess' '401': $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' default: description: Server error - /subaccount/{code}: - parameters: - - name: code - in: path - required: true - schema: - type: string - get: + /directdebit/activation-charge: + put: tags: - - Subaccount - summary: Fetch Subaccount - operationId: subaccount_fetch + - Direct Debit + summary: Trigger Activation Charge + description: Trigger activation charge for specified customers + operationId: directdebit_triggerActivationCharge + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/DirectDebitActivationChargeRequest' responses: '200': - $ref: '#/components/responses/SubaccountFetchSuccess' + $ref: '#/components/responses/DirectDebitActivationChargeSuccess' '401': $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' default: description: Server error - put: + /directdebit/mandate-authorizations: + get: tags: - - Subaccount - summary: Update Subaccount - operationId: subaccount_update - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SubaccountUpdate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SubaccountUpdate' + - Direct Debit + summary: List Mandate Authorizations + description: Get a list of all the direct debit mandates on your integration + operationId: directdebit_listMandateAuthorizations + parameters: + - name: cursor + in: query + description: The cursor value of the next set of authorizations to fetch. You can get this from the meta object of the response + schema: + type: string + - name: status + in: query + description: Filter by the authorization status + schema: + type: string + enum: + - pending + - active + - revoked + - name: per_page + in: query + description: The number of authorizations to fetch per request + schema: + type: integer responses: '200': - $ref: '#/components/responses/SubaccountUpdateSuccess' + $ref: '#/components/responses/CustomerFetchMandateAuthorizationsSuccess' '401': $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' default: description: Server error - /plan: + /dedicated_account: post: tags: - - Plan - summary: Create Plan - operationId: plan_create + - Dedicated Virtual Account + summary: Create Dedicated Account + operationId: dedicatedAccount_create requestBody: content: application/json: schema: - $ref: '#/components/schemas/PlanCreate' + $ref: "#/components/schemas/DedicatedVirtualAccountCreate" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/PlanCreate' + $ref: "#/components/schemas/DedicatedVirtualAccountCreate" responses: - '200': - $ref: '#/components/responses/PlanCreateSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/DedicatedNubanCreateResponse" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error get: tags: - - Plan - summary: List Plans - operationId: plan_list + - Dedicated Virtual Account + summary: List Dedicated Accounts + operationId: dedicatedAccount_list parameters: - - in: query - name: perPage + - name: account_number + in: query schema: - type: integer - description: Number of records to fetch per page - - in: query - name: page + type: string + - name: customer + in: query schema: - type: integer - description: The section to retrieve - - in: query - name: interval + type: string + - name: active + in: query + schema: + type: boolean + - name: currency + in: query schema: type: string - description: Specify interval of the plan - - in: query - name: amount + - name: provider_slug + in: query schema: - type: integer - description: The amount on the plans to retrieve - - in: query - name: from + type: string + - name: bank_id + in: query schema: type: string - format: date-time - description: The start date - - in: query - name: to + - name: perPage + in: query + schema: + type: string + - name: page + in: query schema: type: string - format: date-time - description: The end date responses: - '200': - $ref: '#/components/responses/PlanListSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/DedicatedNubanListResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error - /plan/{code}: + /dedicated_account/assign: + post: + tags: + - Dedicated Virtual Account + summary: Assign Dedicated Account + operationId: dedicatedAccount_assign + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/DedicatedVirtualAccountAssign" + application/x-www-form-urlencoded: + schema: + $ref: "#/components/schemas/DedicatedVirtualAccountAssign" + responses: + "200": + $ref: "#/components/responses/Ok" + "401": + $ref: "#/components/responses/Unauthorized" + default: + description: Server error + /dedicated_account/{account_id}: parameters: - - name: code + - name: account_id in: path required: true schema: type: string get: tags: - - Plan - summary: Fetch Plan - operationId: plan_fetch + - Dedicated Virtual Account + summary: Fetch Dedicated Account + operationId: dedicatedAccount_fetch responses: - '200': - $ref: '#/components/responses/PlanFetchSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/DedicatedNubanFetchResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" + default: + description: Server error + delete: + tags: + - Dedicated Virtual Account + summary: Deactivate Dedicated Account + operationId: dedicatedAccount_deactivate + responses: + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/DedicatedNubanDeactivateResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" + default: + description: Server error + /dedicated_account/requery: + parameters: + - name: account_number + description: Virtual account number to requery + in: query + schema: + type: string + - name: provider_slug + description: The bank's slug in lowercase, without spaces e.g. `wema-bank` + in: query + schema: + type: string + - name: date + description: The day the transfer was made in `YYYY-MM-DD` format + in: query + schema: + type: string + get: + tags: + - Dedicated Virtual Account + summary: Requery Dedicated Account + operationId: dedicatedAccount_requery + responses: + "200": + $ref: "#/components/responses/Ok" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" + default: + description: Server error + /dedicated_account/split: + post: + tags: + - Dedicated Virtual Account + summary: Split Dedicated Account Transaction + operationId: dedicatedAccount_addSplit + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/DedicatedVirtualAccountSplit" + application/x-www-form-urlencoded: + schema: + $ref: "#/components/schemas/DedicatedVirtualAccountSplit" + responses: + "200": + $ref: "#/components/responses/Ok" + "401": + $ref: "#/components/responses/Unauthorized" + default: + description: Server error + delete: + tags: + - Dedicated Virtual Account + summary: Remove Split from Dedicated Account + operationId: dedicatedAccount_removeSplit + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/DedicatedVirtualAccountSplit" + application/x-www-form-urlencoded: + schema: + $ref: "#/components/schemas/DedicatedVirtualAccountSplit" + responses: + "200": + $ref: "#/components/responses/Ok" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" + default: + description: Server error + /dedicated_account/available_providers: + get: + tags: + - Dedicated Virtual Account + summary: Fetch Bank Providers + operationId: dedicatedAccount_availableProviders + responses: + "200": + $ref: "#/components/responses/Ok" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" + default: + description: Server error + /apple-pay/domain: + post: + tags: + - Apple Pay + summary: Register Domain + description: Register a top-level domain or subdomain for your Apple Pay integration. + operationId: applePay_registerDomain + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ApplePayParam" + application/x-www-form-urlencoded: + schema: + $ref: "#/components/schemas/ApplePayParam" + responses: + "200": + $ref: "#/components/responses/ApplePayOkResponse" + "401": + $ref: "#/components/responses/Unauthorized" + default: + description: Server error + get: + tags: + - Apple Pay + summary: List Domains + description: Lists all registered domains on your integration + operationId: applePay_listDomain + parameters: + - name: use_cursor + in: query + schema: + type: boolean + - name: next + in: query + schema: + type: string + - name: previous + in: query + schema: + type: string + responses: + "200": + $ref: "#/components/responses/Ok" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" + default: + description: Server error + delete: + tags: + - Apple Pay + summary: Unregister Domain + description: + Unregister a top-level domain or subdomain previously used for your + Apple Pay integration. + operationId: applePay_unregisterDomain + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ApplePayParam" + application/x-www-form-urlencoded: + schema: + $ref: "#/components/schemas/ApplePayParam" + responses: + "200": + $ref: "#/components/responses/Ok" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" + default: + description: Server error + /subaccount: + post: + tags: + - Subaccount + summary: Create Subaccount + operationId: subaccount_create + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/SubaccountCreate" + application/x-www-form-urlencoded: + schema: + $ref: "#/components/schemas/SubaccountCreate" + responses: + "201": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/SubaccountCreateResponse" + "401": + $ref: "#/components/responses/Unauthorized" + default: + description: Server error + get: + tags: + - Subaccount + summary: List Subaccounts + operationId: subaccount_list + parameters: + - in: query + name: perPage + schema: + type: integer + description: Number of records to fetch per request + - in: query + name: page + schema: + type: integer + description: The offset to retrieve data from + - in: query + name: active + schema: + type: boolean + description: Filter by active or inactive subaccounts + responses: + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/SubaccountListResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" + default: + description: Server error + /subaccount/{code}: + parameters: + - name: code + in: path + required: true + schema: + type: string + get: + tags: + - Subaccount + summary: Fetch Subaccount + operationId: subaccount_fetch + responses: + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/SubaccountFetchResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error put: tags: - - Plan - summary: Update Plan - operationId: plan_update + - Subaccount + summary: Update Subaccount + operationId: subaccount_update requestBody: content: application/json: schema: - $ref: '#/components/schemas/PlanUpdate' + $ref: "#/components/schemas/SubaccountUpdate" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/PlanUpdate' + $ref: "#/components/schemas/SubaccountUpdate" responses: - '200': - $ref: '#/components/responses/PlanUpdateSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/SubaccountUpdateResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error - /subscription: + /plan: post: tags: - - Subscription - summary: Create Subscription - operationId: subscription_create + - Plan + summary: Create Plan + operationId: plan_create requestBody: content: application/json: schema: - $ref: '#/components/schemas/SubscriptionCreate' + $ref: "#/components/schemas/PlanCreate" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/SubscriptionCreate' + $ref: "#/components/schemas/PlanCreate" responses: - '200': - $ref: '#/components/responses/SubscriptionCreateSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + $ref: "#/components/responses/PlanCreateSuccess" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error get: tags: - - Subscription - summary: List Subscriptions - operationId: subscription_list + - Plan + summary: List Plans + operationId: plan_list parameters: - in: query name: perPage @@ -1598,15 +2021,15 @@ paths: type: integer description: The section to retrieve - in: query - name: plan + name: interval schema: type: string - description: Plan ID + description: Specify interval of the plan - in: query - name: customer + name: amount schema: - type: string - description: Customer ID + type: integer + description: The amount on the plans to retrieve - in: query name: from schema: @@ -1620,15 +2043,15 @@ paths: format: date-time description: The end date responses: - '200': - $ref: '#/components/responses/SubscriptionListSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/PlanListSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error - /subscription/{code}: + /plan/{code}: parameters: - name: code in: path @@ -1637,65 +2060,176 @@ paths: type: string get: tags: - - Subscription - summary: Fetch Subscription - operationId: subscription_fetch + - Plan + summary: Fetch Plan + operationId: plan_fetch responses: - '200': - $ref: '#/components/responses/SubscriptionFetchSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/PlanFetchSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error - /subscription/disable: - post: + put: tags: - - Subscription - summary: Disable Subscription - operationId: subscription_disable + - Plan + summary: Update Plan + operationId: plan_update requestBody: content: application/json: schema: - $ref: '#/components/schemas/SubscriptionToggle' + $ref: "#/components/schemas/PlanUpdate" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/SubscriptionToggle' + $ref: "#/components/schemas/PlanUpdate" responses: - '200': - $ref: '#/components/responses/SubscriptionDisableSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + $ref: "#/components/responses/PlanUpdateSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error - /subscription/enable: + /subscription: post: tags: - Subscription - summary: Enable Subscription - operationId: subscription_enable + summary: Create Subscription + operationId: subscription_create requestBody: content: application/json: schema: - $ref: '#/components/schemas/SubscriptionToggle' + $ref: "#/components/schemas/SubscriptionCreate" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/SubscriptionToggle' + $ref: "#/components/schemas/SubscriptionCreate" responses: - '200': - $ref: '#/components/responses/Ok' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + $ref: "#/components/responses/SubscriptionCreateSuccess" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error - /subscription/{code}/manage/link: get: tags: - Subscription - summary: Generate Update Subscription Link + summary: List Subscriptions + operationId: subscription_list + parameters: + - in: query + name: perPage + schema: + type: integer + description: Number of records to fetch per page + - in: query + name: page + schema: + type: integer + description: The section to retrieve + - in: query + name: plan + schema: + type: string + description: Plan ID + - in: query + name: customer + schema: + type: string + description: Customer ID + - in: query + name: from + schema: + type: string + format: date-time + description: The start date + - in: query + name: to + schema: + type: string + format: date-time + description: The end date + responses: + "200": + $ref: "#/components/responses/SubscriptionListSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" + default: + description: Server error + /subscription/{code}: + parameters: + - name: code + in: path + required: true + schema: + type: string + get: + tags: + - Subscription + summary: Fetch Subscription + operationId: subscription_fetch + responses: + "200": + $ref: "#/components/responses/SubscriptionFetchSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" + default: + description: Server error + /subscription/disable: + post: + tags: + - Subscription + summary: Disable Subscription + operationId: subscription_disable + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/SubscriptionToggle" + application/x-www-form-urlencoded: + schema: + $ref: "#/components/schemas/SubscriptionToggle" + responses: + "200": + $ref: "#/components/responses/SubscriptionDisableSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + default: + description: Server error + /subscription/enable: + post: + tags: + - Subscription + summary: Enable Subscription + operationId: subscription_enable + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/SubscriptionToggle" + application/x-www-form-urlencoded: + schema: + $ref: "#/components/schemas/SubscriptionToggle" + responses: + "200": + $ref: "#/components/responses/Ok" + "401": + $ref: "#/components/responses/Unauthorized" + default: + description: Server error + /subscription/{code}/manage/link: + get: + tags: + - Subscription + summary: Generate Update Subscription Link operationId: subscription_manageLink parameters: - name: code @@ -1704,10 +2238,10 @@ paths: schema: type: string responses: - '200': - $ref: '#/components/responses/Ok' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + $ref: "#/components/responses/Ok" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /subscription/{code}/manage/email: @@ -1723,10 +2257,10 @@ paths: schema: type: string responses: - '200': - $ref: '#/components/responses/Ok' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + $ref: "#/components/responses/Ok" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /product: @@ -1739,15 +2273,15 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ProductCreate' + $ref: "#/components/schemas/ProductCreate" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/ProductCreate' + $ref: "#/components/schemas/ProductCreate" responses: - '201': - $ref: '#/components/responses/ProductCreateSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "201": + $ref: "#/components/responses/ProductCreateSuccess" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error get: @@ -1781,12 +2315,12 @@ paths: format: date-time description: The end date responses: - '200': - $ref: '#/components/responses/ProductListsSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/ProductListsSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /product/{id}: @@ -1802,12 +2336,12 @@ paths: summary: Fetch Product operationId: product_fetch responses: - '200': - $ref: '#/components/responses/ProductFetchSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/ProductFetchSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error put: @@ -1819,17 +2353,17 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ProductUpdate' + $ref: "#/components/schemas/ProductUpdate" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/ProductUpdate' + $ref: "#/components/schemas/ProductUpdate" responses: - '200': - $ref: '#/components/responses/ProductUpdateSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/ProductUpdateSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error delete: @@ -1838,12 +2372,12 @@ paths: summary: Delete Product operationId: product_delete responses: - '200': - $ref: '#/components/responses/ProductDeleteSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/ProductDeleteSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /storefront: @@ -1856,15 +2390,15 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/StorefrontCreate' + $ref: "#/components/schemas/StorefrontCreate" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/StorefrontCreate' + $ref: "#/components/schemas/StorefrontCreate" responses: - '200': - $ref: '#/components/responses/StorefrontCreateSuccess' - '400': - $ref: '#/components/responses/Unauthorized' + "200": + $ref: "#/components/responses/StorefrontCreateSuccess" + "400": + $ref: "#/components/responses/Unauthorized" default: description: Server error get: @@ -1889,12 +2423,12 @@ paths: - active - inactive responses: - '200': - $ref: '#/components/responses/StorefrontListSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/StorefrontListSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /storefront/{id}: @@ -1910,12 +2444,12 @@ paths: summary: Fetch Storefront operationId: storefront_fetch responses: - '200': - $ref: '#/components/responses/StorefrontFetchSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/StorefrontFetchSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error put: @@ -1927,17 +2461,17 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/StorefrontUpdate' + $ref: "#/components/schemas/StorefrontUpdate" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/StorefrontUpdate' + $ref: "#/components/schemas/StorefrontUpdate" responses: - '200': - $ref: '#/components/responses/StorefrontUpdateSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/StorefrontUpdateSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error delete: @@ -1946,12 +2480,12 @@ paths: summary: Delete Storefront operationId: storefront_delete responses: - '200': - $ref: '#/components/responses/StorefrontDeleteSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/StorefrontDeleteSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /storefront/verify/{slug}: @@ -1967,12 +2501,12 @@ paths: summary: Verify Storefront Slug operationId: storefront_verifySlug responses: - '200': - $ref: '#/components/responses/Ok' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/Ok" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /storefront/{id}/order: @@ -1990,10 +2524,10 @@ paths: type: string example: Z0R4orOU responses: - '200': - $ref: '#/components/responses/Ok' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + $ref: "#/components/responses/Ok" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /storefront/{id}/product: @@ -2012,17 +2546,17 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/StorefrontAddProducts' + $ref: "#/components/schemas/StorefrontAddProducts" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/StorefrontAddProducts' + $ref: "#/components/schemas/StorefrontAddProducts" responses: - '200': - $ref: '#/components/responses/Ok' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/Ok" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error get: @@ -2031,12 +2565,12 @@ paths: summary: List Products in Storefront operationId: storefront_listProducts responses: - '200': - $ref: '#/components/responses/Ok' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/Ok" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /storefront/{id}/publish: @@ -2052,12 +2586,12 @@ paths: summary: Publish Storefront operationId: storefront_publish responses: - '200': - $ref: '#/components/responses/Ok' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/Ok" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /storefront/{id}/duplicate: @@ -2073,12 +2607,12 @@ paths: summary: Duplicate Storefront operationId: storefront_duplicate responses: - '200': - $ref: '#/components/responses/Ok' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/Ok" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /order: @@ -2091,15 +2625,15 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/OrderCreate' + $ref: "#/components/schemas/OrderCreate" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/OrderCreate' + $ref: "#/components/schemas/OrderCreate" responses: - '200': - $ref: '#/components/responses/OrderCreateSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + $ref: "#/components/responses/OrderCreateSuccess" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error get: @@ -2131,12 +2665,12 @@ paths: format: date-time description: The end date responses: - '200': - $ref: '#/components/responses/OrderListSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/OrderListSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /order/{id}: @@ -2152,12 +2686,12 @@ paths: summary: Fetch Order operationId: order_fetch responses: - '200': - $ref: '#/components/responses/OrderFetchSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/OrderFetchSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /order/product/{id}: @@ -2173,12 +2707,12 @@ paths: summary: Fetch Products Order operationId: order_fetchProducts responses: - '200': - $ref: '#/components/responses/OrderFetchProductSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/OrderFetchProductSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /order/{code}/validate: @@ -2194,12 +2728,12 @@ paths: summary: Validate pay for me order operationId: order_validatePayForMe responses: - '200': - $ref: '#/components/responses/OrderValidateSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/OrderValidateSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /page: @@ -2212,15 +2746,15 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/PageCreate' + $ref: "#/components/schemas/PageCreate" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/PageCreate' + $ref: "#/components/schemas/PageCreate" responses: - '200': - $ref: '#/components/responses/PageCreateSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + $ref: "#/components/responses/PageCreateSuccess" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error get: @@ -2252,12 +2786,12 @@ paths: format: date-time description: The end date responses: - '200': - $ref: '#/components/responses/PageListSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/PageListSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /page/{id}: @@ -2273,12 +2807,12 @@ paths: summary: Fetch Page operationId: page_fetch responses: - '200': - $ref: '#/components/responses/PageFetchSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/PageFetchSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error put: @@ -2290,17 +2824,17 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/PageUpdate' + $ref: "#/components/schemas/PageUpdate" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/PageUpdate' + $ref: "#/components/schemas/PageUpdate" responses: - '200': - $ref: '#/components/responses/PageUpdateSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/PageUpdateSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /page/check_slug_availability/{slug}: @@ -2316,12 +2850,12 @@ paths: summary: Check Slug Availability operationId: page_checkSlugAvailability responses: - '200': - $ref: '#/components/responses/PageCheckSlugAvailabilitySuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/PageCheckSlugAvailabilitySuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /page/{id}/product: @@ -2340,15 +2874,15 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/PageProduct' + $ref: "#/components/schemas/PageProduct" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/PageProduct' + $ref: "#/components/schemas/PageProduct" responses: - '200': - $ref: '#/components/responses/PageAddProductsSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + $ref: "#/components/responses/PageAddProductsSuccess" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /paymentrequest: @@ -2361,15 +2895,15 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/PaymentRequestCreate' + $ref: "#/components/schemas/PaymentRequestCreate" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/PaymentRequestCreate' + $ref: "#/components/schemas/PaymentRequestCreate" responses: - '200': - $ref: '#/components/responses/PaymentRequestCreateSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + $ref: "#/components/responses/PaymentRequestCreateSuccess" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error get: @@ -2402,7 +2936,9 @@ paths: name: currency schema: type: string - description: If your integration supports more than one currency, choose the one to filter + description: + If your integration supports more than one currency, choose the one + to filter - in: query name: from schema: @@ -2416,12 +2952,12 @@ paths: format: date-time description: The end date responses: - '200': - $ref: '#/components/responses/PaymentRequestListSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/PaymentRequestListSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /paymentrequest/{id}: @@ -2437,12 +2973,12 @@ paths: summary: Fetch Payment Request operationId: paymentRequest_fetch responses: - '200': - $ref: '#/components/responses/PaymentRequestListSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/PaymentRequestListSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error put: @@ -2454,17 +2990,17 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/PaymentRequestUpdate' + $ref: "#/components/schemas/PaymentRequestUpdate" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/PaymentRequestUpdate' + $ref: "#/components/schemas/PaymentRequestUpdate" responses: - '200': - $ref: '#/components/responses/PaymentRequestUpdateSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/PaymentRequestUpdateSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /paymentrequest/verify/{id}: @@ -2480,12 +3016,12 @@ paths: summary: Verify Payment Request operationId: paymentRequest_verify responses: - '200': - $ref: '#/components/responses/PaymentRequestVerifySuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/PaymentRequestVerifySuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /paymentrequest/notify/{id}: @@ -2501,10 +3037,10 @@ paths: summary: Send Notification operationId: paymentRequest_notify responses: - '200': - $ref: '#/components/responses/PaymentRequestSendNotificationSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + $ref: "#/components/responses/PaymentRequestSendNotificationSuccess" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /paymentrequest/totals: @@ -2514,12 +3050,12 @@ paths: summary: Payment Request Total operationId: paymentRequest_totals responses: - '200': - $ref: '#/components/responses/PaymentRequestTotalSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/PaymentRequestTotalSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /paymentrequest/finalize/{id}: @@ -2535,10 +3071,10 @@ paths: summary: Finalize Payment Request operationId: paymentRequest_finalize responses: - '200': - $ref: '#/components/responses/PaymentRequestFinalizeSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + $ref: "#/components/responses/PaymentRequestFinalizeSuccess" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /paymentrequest/archive/{id}: @@ -2554,10 +3090,10 @@ paths: summary: Archive Payment Request operationId: paymentRequest_archive responses: - '200': - $ref: '#/components/responses/PaymentRequestArchiveSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + $ref: "#/components/responses/PaymentRequestArchiveSuccess" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /settlement: @@ -2578,12 +3114,12 @@ paths: type: integer example: 2 responses: - '200': - $ref: '#/components/responses/Ok' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/Ok" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /settlement/{id}/transaction: @@ -2599,12 +3135,12 @@ paths: schema: type: string responses: - '200': - $ref: '#/components/responses/Ok' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/Ok" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /transferrecipient: @@ -2617,15 +3153,19 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TransferRecipientCreate' + $ref: "#/components/schemas/TransferRecipientCreate" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/TransferRecipientCreate' + $ref: "#/components/schemas/TransferRecipientCreate" responses: - '201': - $ref: '#/components/responses/TransferRecipientCreateSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "201": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/TransferRecipientCreateResponse" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error get: @@ -2635,34 +3175,45 @@ paths: operationId: transferrecipient_list parameters: - in: query - name: perPage + name: use_cursor + description: A flag to indicate if cursor based pagination should be used schema: - type: integer - description: Number of records to fetch per page + type: boolean - in: query - name: page + name: next + description: > + An alphanumeric value returned for every cursor based retrieval, + used to retrieve the next set of data schema: - type: integer - description: The section to retrieve + type: string - in: query - name: from + name: previous + description: > + An alphanumeric value returned for every cursor based retrieval, + used to retrieve the previous set of data schema: type: string - format: date-time - description: The start date - in: query - name: to + name: per_page schema: - type: string - format: date-time - description: The end date + type: integer + description: The number of records to fetch per request + - in: query + name: page + schema: + type: integer + description: The offset to retrieve data from responses: - '200': - $ref: '#/components/responses/TransferRecipientListSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/TransferRecipientListResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /transferrecipient/bulk: @@ -2675,15 +3226,19 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TransferRecipientBulk' + $ref: "#/components/schemas/TransferRecipientBulk" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/TransferRecipientBulk' + $ref: "#/components/schemas/TransferRecipientBulk" responses: - '200': - $ref: '#/components/responses/TransferRecipientBulkCreateSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/TransferRecipientBulkCreateResponse" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /transferrecipient/{code}: @@ -2700,12 +3255,16 @@ paths: summary: Fetch Transfer recipient operationId: transferrecipient_fetch responses: - '200': - $ref: '#/components/responses/TransferRecipientFetchSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/TransferRecipientFetchResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error put: @@ -2717,17 +3276,21 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TransferRecipientUpdate' + $ref: "#/components/schemas/TransferRecipientUpdate" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/TransferRecipientUpdate' + $ref: "#/components/schemas/TransferRecipientUpdate" responses: - '200': - $ref: '#/components/responses/TransferRecipientUpdateSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/TransferRecipientUpdateResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error delete: @@ -2736,12 +3299,16 @@ paths: summary: Delete Transfer Recipient operationId: transferrecipient_delete responses: - '200': - $ref: '#/components/responses/TransferRecipientDeleteSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/TransferRecipientDeleteResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /transfer: @@ -2754,15 +3321,19 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TransferInitiate' + $ref: "#/components/schemas/TransferInitiate" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/TransferInitiate' + $ref: "#/components/schemas/TransferInitiate" responses: - '200': - $ref: '#/components/responses/TransferCreateSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/TransferCreateResponse" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error get: @@ -2772,38 +3343,78 @@ paths: operationId: transfer_list parameters: - in: query - name: perPage + name: use_cursor + description: A flag to indicate if cursor based pagination should be used schema: - type: integer - description: Number of records to fetch per page + type: boolean - in: query - name: page + name: next + description: > + An alphanumeric value returned for every cursor based retrieval, + used to retrieve the next set of data schema: - type: integer - description: The section to retrieve + type: string - in: query - name: status + name: previous + description: > + An alphanumeric value returned for every cursor based retrieval, + used to retrieve the previous set of data schema: type: string + - in: query + name: per_page + schema: + type: integer + description: The number of records to fetch per request + - in: query + name: page + schema: + type: integer + description: The offset to retrieve data from - in: query name: from + description: The start date schema: type: string format: date-time - description: The start date - in: query name: to + description: The end date schema: type: string format: date-time - description: The end date + - in: query + name: recipient + description: Filter transfer by the recipient code + schema: + type: string + - in: query + name: status + description: Filter transfer by status + schema: + type: string + default: pending + enum: + - pending + - success + - failed + - otp + - abandoned + - reversed + - blocked + - rejected + - received responses: - '200': - $ref: '#/components/responses/TransferListSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/TransferListResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /transfer/finalize_transfer: @@ -2816,15 +3427,15 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TransferFinalize' + $ref: "#/components/schemas/TransferFinalize" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/TransferFinalize' + $ref: "#/components/schemas/TransferFinalize" responses: - '200': - $ref: '#/components/responses/Ok' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + $ref: "#/components/responses/Ok" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /transfer/bulk: @@ -2837,15 +3448,19 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TransferBulk' + $ref: "#/components/schemas/TransferBulk" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/TransferBulk' + $ref: "#/components/schemas/TransferBulk" responses: - '200': - $ref: '#/components/responses/TransferBulkSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/TransferBulkResponse" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /transfer/{code}: @@ -2862,12 +3477,16 @@ paths: summary: Fetch Transfer operationId: transfer_fetch responses: - '200': - $ref: '#/components/responses/TransferFetchSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/TransferFetchResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /transfer/verify/{reference}: @@ -2883,12 +3502,16 @@ paths: schema: type: string responses: - '200': - $ref: '#/components/responses/TransferVerifySuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/TransferVerifyResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /transfer/export: @@ -2896,22 +3519,29 @@ paths: tags: - Transfer summary: Export Transfers - operationId: transfer_download + operationId: transfer_exportTransfer parameters: - in: query - name: perPage - schema: - type: integer - description: Number of records to fetch per page - - in: query - name: page + name: recipient + description: Export transfer by the recipient code schema: - type: integer - description: The section to retrieve + type: string - in: query name: status + description: Export transfer by status schema: type: string + default: pending + enum: + - pending + - success + - failed + - otp + - abandoned + - reversed + - blocked + - rejected + - received - in: query name: from schema: @@ -2925,12 +3555,12 @@ paths: format: date-time description: The end date responses: - '200': - $ref: '#/components/responses/Ok' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/Ok" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /transfer/resend_otp: @@ -2943,49 +3573,61 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TransferResendOTP' + $ref: "#/components/schemas/TransferResendOTP" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/TransferResendOTP' + $ref: "#/components/schemas/TransferResendOTP" responses: - '200': - $ref: '#/components/responses/TransferResendsOtpSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/TransferResendsOtpResponse" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /transfer/disable_otp: post: tags: - Transfer - summary: Disable OTP requirement for Transfers + summary: Disable OTP for Transfers operationId: transfer_disableOtp responses: - '200': - $ref: '#/components/responses/TransferDisablesOtpSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/TransferDisablesOtpResponse" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /transfer/disable_otp_finalize: post: tags: - Transfer - summary: Finalize Disabling of OTP requirement for Transfers + summary: Finalize Disabling OTP for Transfers operationId: transfer_disableOtpFinalize requestBody: content: application/json: schema: - $ref: '#/components/schemas/TransferFinalizeDisableOTP' + $ref: "#/components/schemas/TransferFinalizeDisableOTP" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/TransferFinalizeDisableOTP' + $ref: "#/components/schemas/TransferFinalizeDisableOTP" responses: - '200': - $ref: '#/components/responses/TransferFinalizeDisablesOtpSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/TransferFinalizeDisablesOtpResponse" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /transfer/enable_otp: @@ -2995,10 +3637,14 @@ paths: summary: Enable OTP requirement for Transfers operationId: transfer_enableOtp responses: - '200': - $ref: '#/components/responses/TransferEnablesOtpSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/TransferEnablesOtpResponse" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /balance: @@ -3009,12 +3655,16 @@ paths: operationId: balance_fetch description: You can only transfer from what you have responses: - '200': - $ref: '#/components/responses/BalanceCheckSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/BalanceCheckResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /balance/ledger: @@ -3047,12 +3697,16 @@ paths: format: date-time description: The end date responses: - '200': - $ref: '#/components/responses/BalanceFetchLedgerSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/BalanceFetchLedgerResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /charge: @@ -3066,48 +3720,52 @@ paths: application/json: schema: allOf: - - $ref: '#/components/schemas/ChargeCreate' + - $ref: "#/components/schemas/ChargeCreate" - type: object properties: bank: - $ref: '#/components/schemas/Bank' + $ref: "#/components/schemas/Bank" - type: object properties: mobile_money: - $ref: '#/components/schemas/MobileMoney' + $ref: "#/components/schemas/MobileMoney" - type: object properties: ussd: - $ref: '#/components/schemas/USSD' + $ref: "#/components/schemas/USSD" - type: object properties: eft: - $ref: '#/components/schemas/EFT' + $ref: "#/components/schemas/EFT" application/x-www-form-urlencoded: schema: allOf: - - $ref: '#/components/schemas/ChargeCreate' + - $ref: "#/components/schemas/ChargeCreate" - type: object properties: bank: - $ref: '#/components/schemas/Bank' + $ref: "#/components/schemas/Bank" - type: object properties: mobile_money: - $ref: '#/components/schemas/MobileMoney' + $ref: "#/components/schemas/MobileMoney" - type: object properties: ussd: - $ref: '#/components/schemas/USSD' + $ref: "#/components/schemas/USSD" - type: object properties: eft: - $ref: '#/components/schemas/EFT' + $ref: "#/components/schemas/EFT" responses: - '200': - $ref: '#/components/responses/ChargeCreateSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/ChargeCreateResponse" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /charge/submit_pin: @@ -3120,15 +3778,19 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ChargeSubmitPin' + $ref: "#/components/schemas/ChargeSubmitPin" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/ChargeSubmitPin' + $ref: "#/components/schemas/ChargeSubmitPin" responses: - '200': - $ref: '#/components/responses/ChargeSubmitPinSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/ChargeSubmitPinResponse" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /charge/submit_otp: @@ -3141,15 +3803,19 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ChargeSubmitOTP' + $ref: "#/components/schemas/ChargeSubmitOTP" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/ChargeSubmitOTP' + $ref: "#/components/schemas/ChargeSubmitOTP" responses: - '200': - $ref: '#/components/responses/ChargeSubmitOtpSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/ChargeSubmitOtpResponse" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /charge/submit_phone: @@ -3162,15 +3828,19 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ChargeSubmitPhone' + $ref: "#/components/schemas/ChargeSubmitPhone" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/ChargeSubmitPhone' + $ref: "#/components/schemas/ChargeSubmitPhone" responses: - '200': - $ref: '#/components/responses/ChargeSubmitPhoneSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/ChargeSubmitPhoneResponse" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /charge/submit_birthday: @@ -3183,15 +3853,19 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ChargeSubmitBirthday' + $ref: "#/components/schemas/ChargeSubmitBirthday" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/ChargeSubmitBirthday' + $ref: "#/components/schemas/ChargeSubmitBirthday" responses: - '200': - $ref: '#/components/responses/ChargeSubmitBirthdaySuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/ChargeSubmitBirthdayResponse" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /charge/submit_address: @@ -3204,15 +3878,15 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ChargeSubmitAddress' + $ref: "#/components/schemas/ChargeSubmitAddress" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/ChargeSubmitAddress' + $ref: "#/components/schemas/ChargeSubmitAddress" responses: - '200': - $ref: '#/components/responses/Ok' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + $ref: "#/components/responses/Ok" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /charge/{reference}: @@ -3228,12 +3902,16 @@ paths: schema: type: string responses: - '200': - $ref: '#/components/responses/ChargeCheckPendingSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/ChargeCheckPendingResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /bulkcharge: @@ -3248,26 +3926,21 @@ paths: schema: type: array items: - properties: - charges: - title: charges - type: object - items: - $ref: '#/components/schemas/BulkChargeInitiate' + $ref: "#/components/schemas/BulkChargeInitiate" application/x-www-form-urlencoded: schema: type: array items: - properties: - charges: - type: object - items: - $ref: '#/components/schemas/BulkChargeInitiate' + $ref: "#/components/schemas/BulkChargeInitiate" responses: - '200': - $ref: '#/components/responses/BulkChargeInitiateSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/BulkChargeInitiateResponse" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error get: @@ -3285,26 +3958,27 @@ paths: name: page schema: type: integer - description: The section to retrieve - - in: query - name: from - schema: - type: string - format: date-time - description: The start date + description: The offset to retrieve data from - in: query - name: to + name: status schema: type: string - format: date-time - description: The end date + enum: + - active + - paused + - complete + description: Filter by the status of the charges responses: - '200': - $ref: '#/components/responses/BulkChargeListSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/BulkChargeListResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /bulkcharge/{code}: @@ -3321,19 +3995,23 @@ paths: summary: Fetch Bulk Charge Batch operationId: bulkCharge_fetch responses: - '200': - $ref: '#/components/responses/BulkChargeFetchSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/BulkChargeFetchResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /bulkcharge/{code}/charges: get: tags: - Bulk Charge - summary: Fetch Charges in a Batch + summary: List Charges in a Batch operationId: bulkCharge_charges parameters: - name: code @@ -3342,13 +4020,38 @@ paths: required: true schema: type: string + - in: query + name: perPage + schema: + type: integer + description: Number of records to fetch per page + - in: query + name: page + schema: + type: integer + description: The offset to retrieve data from + - in: query + name: status + schema: + type: string + enum: + - success + - failed + - pending + - error + - inactive_authorization + description: Filter by the status of the charges responses: - '200': - $ref: '#/components/responses/BulkChargeFetchBulkBatchChargesSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/BulkChargeFetchBulkBatchChargesResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /bulkcharge/pause/{code}: @@ -3365,12 +4068,16 @@ paths: schema: type: string responses: - '200': - $ref: '#/components/responses/BulkChargePauseSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/BulkChargePauseResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /bulkcharge/resume/{code}: @@ -3387,12 +4094,16 @@ paths: schema: type: string responses: - '200': - $ref: '#/components/responses/BulkChargeResumeSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/BulkChargeResumeResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /integration/payment_session_timeout: @@ -3402,12 +4113,16 @@ paths: summary: Fetch Payment Session Timeout operationId: integration_fetchPaymentSessionTimeout responses: - '200': - $ref: '#/components/responses/Ok' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/ControlPanelFetchPaymentSessionTimeoutResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error put: @@ -3419,14 +4134,18 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/PaymentSession' + $ref: "#/components/schemas/PaymentSession" responses: - '200': - $ref: '#/components/responses/Ok' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + description: "" + content: + application/json: + schema: + $ref: "#/components/schemas/ControlPanelUpdatePaymentSessionTimeoutResponse" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /refund: @@ -3439,15 +4158,15 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/RefundCreate' + $ref: "#/components/schemas/RefundCreate" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/RefundCreate' + $ref: "#/components/schemas/RefundCreate" responses: - '200': - $ref: '#/components/responses/RefundCreateSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + $ref: "#/components/responses/RefundCreateSuccess" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error get: @@ -3479,12 +4198,12 @@ paths: format: date-time description: The end date responses: - '200': - $ref: '#/components/responses/RefundListSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/RefundListSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /refund/{id}: @@ -3500,12 +4219,12 @@ paths: schema: type: string responses: - '200': - $ref: '#/components/responses/RefundFetchSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/RefundFetchSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /dispute: @@ -3527,7 +4246,9 @@ paths: type: integer - in: query name: status - description: Dispute Status. Acceptable values are awaiting-merchant-feedback, awaiting-bank-feedback, pending, resolved + description: + Dispute Status. Acceptable values are awaiting-merchant-feedback, + awaiting-bank-feedback, pending, resolved schema: type: string - in: query @@ -3548,12 +4269,12 @@ paths: format: date-time description: The end date responses: - '200': - $ref: '#/components/responses/DisputeListSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/DisputeListSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /dispute/{id}: @@ -3570,12 +4291,12 @@ paths: summary: Fetch Dispute operationId: dispute_fetch responses: - '200': - $ref: '#/components/responses/DisputeFetchSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/DisputeFetchSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error put: @@ -3587,17 +4308,17 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/DisputeUpdate' + $ref: "#/components/schemas/DisputeUpdate" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/DisputeUpdate' + $ref: "#/components/schemas/DisputeUpdate" responses: - '200': - $ref: '#/components/responses/DisputeUpdateSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/DisputeUpdateSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /dispute/{id}/upload_url: @@ -3614,12 +4335,12 @@ paths: schema: type: string responses: - '200': - $ref: '#/components/responses/DisputeUploadURLSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/DisputeUploadURLSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /dispute/export: @@ -3656,12 +4377,12 @@ paths: format: date-time description: The end date responses: - '200': - $ref: '#/components/responses/DisputeExportSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/DisputeExportSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /dispute/transaction/{id}: @@ -3678,12 +4399,12 @@ paths: schema: type: string responses: - '200': - $ref: '#/components/responses/DisputeListTransactionSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/DisputeListTransactionSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /dispute/{id}/resolve: @@ -3703,17 +4424,17 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/DisputeResolve' + $ref: "#/components/schemas/DisputeResolve" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/DisputeResolve' + $ref: "#/components/schemas/DisputeResolve" responses: - '200': - $ref: '#/components/responses/DisputeResolveSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/DisputeResolveSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /dispute/{id}/evidence: @@ -3726,10 +4447,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/DisputeEvidence' + $ref: "#/components/schemas/DisputeEvidence" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/DisputeEvidence' + $ref: "#/components/schemas/DisputeEvidence" parameters: - name: id description: Dispute ID @@ -3738,10 +4459,10 @@ paths: schema: type: string responses: - '200': - $ref: '#/components/responses/DisputeAddEvidenceSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + $ref: "#/components/responses/DisputeAddEvidenceSuccess" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /bank: @@ -3780,12 +4501,12 @@ paths: schema: type: string responses: - '200': - $ref: '#/components/responses/MiscellaneousListBanksSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/MiscellaneousListBanksSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /bank/resolve: @@ -3806,12 +4527,12 @@ paths: type: integer example: 63 responses: - '200': - $ref: '#/components/responses/VerificationResolveAccountNumberSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/VerificationResolveAccountNumberSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /bank/validate: @@ -3824,15 +4545,15 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/BankValidateRequest' + $ref: "#/components/schemas/BankValidateRequest" application/x-www-form-urlencoded: schema: - $ref: '#/components/schemas/BankValidateRequest' + $ref: "#/components/schemas/BankValidateRequest" responses: - '200': - $ref: '#/components/responses/VerificationValidateAccountSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + $ref: "#/components/responses/VerificationValidateAccountSuccess" + "401": + $ref: "#/components/responses/Unauthorized" default: description: Server error /decision/bin/{bin}: @@ -3848,12 +4569,12 @@ paths: schema: type: string responses: - '200': - $ref: '#/components/responses/VerificationResolveCardBINSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/VerificationResolveCardBINSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /country: @@ -3863,12 +4584,12 @@ paths: summary: List Countries operationId: miscellaneous_listCountries responses: - '200': - $ref: '#/components/responses/MiscellaneousListCountriesSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' + "200": + $ref: "#/components/responses/MiscellaneousListCountriesSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error /address_verification/states: @@ -3891,285 +4612,117 @@ paths: schema: type: string responses: - '200': - $ref: '#/components/responses/MiscellaneousListStatesSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' - default: - description: Server error - /directdebit/activation-charge: - put: - tags: - - Direct Debit - summary: Trigger Activation Charge - description: Trigger activation charge for specified customers - operationId: directdebit_triggerActivationCharge - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/DirectDebitActivationChargeRequest' - responses: - '200': - $ref: '#/components/responses/DirectDebitActivationChargeSuccess' - '401': - $ref: '#/components/responses/Unauthorized' + "200": + $ref: "#/components/responses/MiscellaneousListStatesSuccess" + "401": + $ref: "#/components/responses/Unauthorized" + "404": + $ref: "#/components/responses/NotFound" default: description: Server error - /directdebit/mandate-authorizations: - get: - tags: - - Direct Debit - summary: List Mandate Authorizations - description: Get a list of all the direct debit mandates on your integration - operationId: directdebit_listMandateAuthorizations - parameters: - - name: cursor - in: query - description: The cursor value of the next set of authorizations to fetch. You can get this from the meta object of the response - schema: - type: string - - name: status - in: query - description: Filter by the authorization status - schema: - type: string - enum: - - pending - - active - - revoked - - name: per_page - in: query - description: The number of authorizations to fetch per request - schema: - type: integer - responses: - '200': - $ref: '#/components/responses/CustomerFetchMandateAuthorizationsSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - default: - description: Server error - /customer/authorization/initialize: - post: - tags: - - Customer - summary: Initialize Authorization - description: Initiate a request to create a reusable authorization code for recurring transactions - operationId: customer_initializeAuthorization - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CustomerAuthorizationInitializeRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/CustomerAuthorizationInitializeRequest' - responses: - '200': - $ref: '#/components/responses/CustomerAuthorizationInitializeSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - default: - description: Server error - /customer/authorization/verify/{reference}: - get: - tags: - - Customer - summary: Verify Authorization - description: Check the status of an authorization request - operationId: customer_verifyAuthorization - parameters: - - name: reference - in: path - description: The reference returned in the initialization response - required: true - schema: - type: string - responses: - '200': - $ref: '#/components/responses/CustomerAuthorizationVerifySuccess' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/NotFound' - default: - description: Server error - /customer/{id}/initialize-direct-debit: - parameters: - - name: id - in: path - required: true - schema: - type: string - description: The ID of the customer to initialize the direct debit for - post: - tags: - - Customer - summary: Initialize Direct Debit - operationId: customer_initializeDirectDebit - description: Initialize the process of linking an account to a customer for Direct Debit transactions - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CustomerInitializeDirectDebitRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/CustomerInitializeDirectDebitRequest' - responses: - '200': - $ref: '#/components/responses/CustomerInitializeDirectDebitSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - default: - description: Server error - /customer/{id}/directdebit-activation-charge: - put: - tags: - - Customer - summary: Direct Debit Activation Charge - operationId: customer_directDebitActivationCharge - description: Trigger an activation charge on an inactive mandate on behalf of your customer - parameters: - - name: id - in: path - required: true - schema: - type: integer - description: The customer ID attached to the authorization - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CustomerDirectDebitActivationChargeRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/CustomerDirectDebitActivationChargeRequest' - responses: - '200': - $ref: '#/components/responses/CustomerDirectDebitActivationChargeSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - default: - description: Server error - /customer/{id}/directdebit-mandate-authorizations: - get: - tags: - - Customer - summary: Fetch Mandate Authorizations - operationId: customer_fetchMandateAuthorizations - description: Get the list of direct debit mandates associated with a customer - parameters: - - name: id - in: path - required: true - schema: - type: string - description: The customer ID for the authorizations to fetch - responses: - '200': - $ref: '#/components/responses/CustomerFetchMandateAuthorizationsSuccess' - '401': - $ref: '#/components/responses/Unauthorized' - default: - description: Server error -components: - securitySchemes: - bearerAuth: - type: http - scheme: bearer - description: Secret key in the format sk_domain_xxxxxx - schemas: - Currency: - description: List of all support currencies - type: string - enum: - - GHS - - KES - - NGN - - ZAR - - USD - example: GHS - SplitSubaccounts: - type: object - properties: - subaccount: - description: Subaccount code of the customer or partner - type: string - share: - description: The percentage or flat quota of the customer or partner - type: string - SplitCreate: - type: object - description: | - Split configuration for transactions - properties: - name: - description: Name of the transaction split - type: string - type: - description: The type of transaction split you want to create. - type: string - enum: - - percentage - - flat - subaccounts: - description: A list of object containing subaccount code and number of shares - type: array - items: - $ref: '#/components/schemas/SplitSubaccounts' - currency: - description: The transaction currency - type: string - enum: - - NGN - - GHS - - ZAR - - USD - bearer_type: - description: This allows you specify how the transaction charge should be processed - type: string - enum: - - subaccount - - account - - all-proportional - - all - bearer_subaccount: - description: This is the subaccount code of the customer or partner that would bear the transaction charge if you specified subaccount as the bearer type - type: string - required: - - name - - type - - subaccounts - - currency - TransactionInitialize: - description: Initialize a transaction - type: object - required: - - email - - amount - properties: - email: - description: Customer's email address - type: string - amount: - description: | - Amount should be in smallest denomination of the currency. For example if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR - type: integer - currency: - $ref: '#/components/schemas/Currency' - reference: - description: Unique transaction reference. Only -, ., = and alphanumeric characters allowed. - type: string - channels: - description: An array of payment channels to control what channels you want to make available to the user to make a payment with - type: array - items: +components: + securitySchemes: + bearerAuth: + type: http + scheme: bearer + description: Secret key in the format sk_domain_xxxxxx + schemas: + Currency: + description: List of all support currencies + type: string + enum: + - GHS + - KES + - NGN + - ZAR + - USD + example: GHS + SplitSubaccounts: + type: object + properties: + subaccount: + description: Subaccount code of the customer or partner + type: string + share: + description: The percentage or flat quota of the customer or partner + type: string + SplitCreate: + type: object + description: | + Split configuration for transactions + properties: + name: + description: Name of the transaction split + type: string + type: + description: The type of transaction split you want to create. + type: string + enum: + - percentage + - flat + subaccounts: + description: A list of object containing subaccount code and number of shares + type: array + items: + $ref: "#/components/schemas/SplitSubaccounts" + currency: + description: The transaction currency + type: string + enum: + - NGN + - GHS + - ZAR + - USD + bearer_type: + description: + This allows you specify how the transaction charge should be + processed + type: string + enum: + - subaccount + - account + - all-proportional + - all + bearer_subaccount: + description: + This is the subaccount code of the customer or partner that would + bear the transaction charge if you specified subaccount as the + bearer type + type: string + required: + - name + - type + - subaccounts + - currency + TransactionInitialize: + description: Initialize a transaction + type: object + required: + - email + - amount + properties: + email: + description: Customer's email address + type: string + amount: + description: > + Amount should be in smallest denomination of the currency. For + example if currency is NGN, pesewas, if currency is GHS, and cents, + if currency is ZAR + type: integer + currency: + $ref: "#/components/schemas/Currency" + reference: + description: + Unique transaction reference. Only -, ., = and alphanumeric + characters allowed. + type: string + channels: + description: + An array of payment channels to control what channels you want to + make available to the user to make a payment with + type: array + items: type: string enum: - card @@ -4180,12 +4733,16 @@ components: - mobile_money - bank_transfer callback_url: - description: | - Fully qualified url, e.g. https://example.com/ to redirect your customers to after a successful payment. Use this to override the callback url provided on the dashboard for this transaction + description: > + Fully qualified url, e.g. https://example.com/ to redirect your + customers to after a successful payment. Use this to override the + callback url provided on the dashboard for this transaction type: string plan: - description: | - If transaction is to create a subscription to a predefined plan, provide plan code here. + description: > + If transaction is to create a subscription to a predefined plan, + provide plan code here. + This would invalidate the value provided in amount type: string invoice_limit: @@ -4195,14 +4752,16 @@ components: description: The split code of the transaction split type: string split: - $ref: '#/components/schemas/SplitCreate' + $ref: "#/components/schemas/SplitCreate" subaccount: description: The code for the subaccount that owns the payment type: string transaction_charge: - description: | + description: > A flat fee to charge the subaccount for a transaction. - This overrides the split percentage set when the subaccount was created + + This overrides the split percentage set when the subaccount was + created type: string bearer: description: The bearer of the transaction charge @@ -4214,35 +4773,11 @@ components: description: Used to replace the email address shown on the Checkout type: string metadata: - description: Stringified JSON object of custom data - type: string + description: JSON object of custom data + type: object example: email: test@demo.com amount: 10000 - TransactionInitializeResponse: - type: object - properties: - status: - type: boolean - message: - type: string - data: - type: object - properties: - authorization_url: - type: string - access_code: - type: string - reference: - type: string - required: - - authorization_url - - access_code - - reference - required: - - status - - message - - data ErrorMeta: type: object description: Extra details to help with a resolution of the error @@ -4252,8 +4787,9 @@ components: description: A summarised solution for the error TransactionInitializeBadRequestModel: type: object - description: | - Error response returned when a transaction is initialized with incorrect parameters + description: > + Error response returned when a transaction is initialized with incorrect + parameters properties: status: type: boolean @@ -4262,7 +4798,7 @@ components: type: string description: A short description of the error meta: - $ref: '#/components/schemas/ErrorMeta' + $ref: "#/components/schemas/ErrorMeta" type: type: string description: A tag to indicate the type of the error @@ -4294,7 +4830,7 @@ components: type: string description: A short description of the error meta: - $ref: '#/components/schemas/ErrorMeta' + $ref: "#/components/schemas/ErrorMeta" type: type: string description: A tag to indicate the type of the error @@ -4308,369 +4844,203 @@ components: errorCodeMappingNotFound: type: boolean description: An indicator for error mapping for the request - TransactionVerifyResponse: + TransactionChargeAuthorization: type: object + required: + - email + - amount + - authorization_code properties: - status: - type: boolean - message: + email: + description: Customer's email address type: string - data: - type: object - properties: - id: - type: integer - domain: - type: string - status: - type: string - reference: - type: string - receipt_number: - type: string - nullable: true - amount: - type: integer - message: - type: string - nullable: true - gateway_response: - type: string - paid_at: - type: string - nullable: true - created_at: - type: string - channel: - type: string - currency: - type: string - ip_address: - type: string - metadata: - anyOf: - - type: string - - type: object - log: - nullable: true - fees: - type: integer - nullable: true - fees_split: - nullable: true - authorization: - type: object - properties: - authorization_code: - type: string - bin: - nullable: true - last4: - type: string - exp_month: - type: string - exp_year: - type: string - channel: - type: string - card_type: - type: string - bank: - type: string - country_code: - type: string - brand: - type: string - reusable: - type: boolean - signature: - type: string - account_name: - nullable: true - receiver_bank_account_number: - nullable: true - receiver_bank: - nullable: true - customer: - type: object - properties: - id: - type: integer - first_name: - type: string - nullable: true - last_name: - type: string - nullable: true - email: - type: string - customer_code: - type: string - phone: - type: string - nullable: true - metadata: - nullable: true - risk_action: - type: string - international_format_phone: - type: string - nullable: true - required: - - id - - first_name - - last_name - - email - - customer_code - - phone - - metadata - - risk_action - - international_format_phone - plan: - nullable: true - split: - type: object - order_id: - nullable: true - paidAt: - type: string - nullable: true - createdAt: - type: string - requested_amount: - type: integer - pos_transaction_data: - nullable: true - source: - nullable: true - fees_breakdown: - nullable: true - connect: - nullable: true - transaction_date: - type: string - plan_object: - type: object - subaccount: - type: object - required: - - id - - domain - - status - - reference - - receipt_number - - amount - - message - - gateway_response - - paid_at - - created_at - - channel - - currency - - ip_address - - metadata - - log - - fees - - fees_split - - authorization - - customer - - plan - - split - - order_id - - paidAt - - createdAt - - requested_amount - - pos_transaction_data - - source - - fees_breakdown - - connect - - transaction_date - - plan_object - - subaccount - required: - - status - - message - - data - TransactionListResponseArray: - type: object - properties: - id: + amount: + description: Amount in the lower denomination of your currency type: integer - domain: - type: string - status: + authorization_code: + description: Valid authorization code to charge type: string reference: + description: + Unique transaction reference. Only -, ., = and alphanumeric + characters allowed. type: string - amount: - type: integer - message: - nullable: true - gateway_response: + currency: + $ref: "#/components/schemas/Currency" + split_code: + description: The split code of the transaction split type: string - paid_at: + split: + $ref: "#/components/schemas/SplitCreate" + subaccount: + description: The code for the subaccount that owns the payment type: string - nullable: true - created_at: + transaction_charge: + description: >- + A flat fee to charge the subaccount for a transaction. + + This overrides the split percentage set when the subaccount was + created type: string - channel: + bearer: + description: The bearer of the transaction charge + type: string + enum: + - account + - subaccount + metadata: + description: Stringified JSON object of custom data + type: string + queue: + description: + If you are making a scheduled charge call, it is a good idea to + queue them so the processing system does not get overloaded causing + transaction processing errors. + type: boolean + example: + email: jb@email.com + amount: 30000 + authorization_code: AUTH_df1l5ehnym + TransactionPartialDebit: + type: object + required: + - email + - amount + - authorization_code + - currency + properties: + email: + description: Customer's email address + type: string + amount: + description: Specified in the lowest denomination of your currency + type: integer + format: int64 + authorization_code: + description: Valid authorization code to charge type: string currency: + $ref: "#/components/schemas/Currency" + at_least: + description: Minimum amount to charge type: string - ip_address: + reference: + description: + Unique transaction reference. Only -, ., = and alphanumeric + characters allowed. type: string - nullable: true - metadata: + example: + email: tap@email.com + amount: 40510 + authorization_code: AUTH_df1l5ehnym + currency: ZAR + Response: + type: object + properties: + status: + type: boolean + message: + type: string + data: type: object - nullable: true - log: - nullable: true - fees: - type: integer - nullable: true - fees_split: - type: integer - nullable: true - customer: + SplitSubaccountsArray: + type: object + properties: + subaccount: type: object properties: id: type: integer - first_name: + subaccount_code: type: string - nullable: true - last_name: + business_name: type: string - nullable: true - email: + description: type: string - phone: + primary_contact_name: + type: string + primary_contact_email: + type: string + primary_contact_phone: type: string - nullable: true metadata: - type: object - nullable: true - customer_code: type: string - risk_action: + settlement_bank: + type: string + currency: + type: string + account_number: type: string required: - id - - first_name - - last_name - - email - - phone + - subaccount_code + - business_name + - description + - primary_contact_name + - primary_contact_email + - primary_contact_phone - metadata - - customer_code - - risk_action - authorization: - type: object - properties: - authorization_code: - type: string - bin: - type: string - last4: - type: string - exp_month: - type: string - exp_year: - type: string - channel: - type: string - card_type: - type: string - bank: - type: string - country_code: - type: string - brand: - type: string - reusable: - type: boolean - signature: - type: string - account_name: - nullable: true - required: - - authorization_code - - bin - - last4 - - exp_month - - exp_year - - channel - - card_type - - bank - - country_code - - brand - - reusable - - signature - - account_name - plan: - type: object - split: - type: object - subaccount: - type: object - order_id: - nullable: true - paidAt: + - settlement_bank + - currency + - account_number + share: + type: integer + required: + - subaccount + - share + SplitListResponseArray: + type: object + properties: + id: + type: integer + name: type: string - createdAt: + type: type: string - requested_amount: + currency: + type: string + integration: + type: integer + domain: + type: string + split_code: + type: string + active: + type: boolean + bearer_type: + type: string + bearer_subaccount: type: integer - source: - type: object - properties: - source: - type: string - type: - type: string - identifier: - nullable: true - entry_point: - type: string - required: - - source - - type - - identifier - - entry_point - nullable: true - connect: - type: object - nullable: true - pos_transaction_data: nullable: true + createdAt: + type: string + updatedAt: + type: string + is_dynamic: + type: boolean + subaccounts: + type: array + items: + $ref: "#/components/schemas/SplitSubaccountsArray" + total_subaccounts: + type: integer required: - id - - domain - - status - - reference - - amount - - message - - gateway_response - - paid_at - - created_at - - channel + - name + - type - currency - - ip_address - - metadata - - log - - fees - - fees_split - - customer - - authorization - - plan - - split - - subaccount - - order_id - - paidAt + - integration + - domain + - split_code + - active + - bearer_type + - bearer_subaccount - createdAt - - requested_amount - - source - - connect - - pos_transaction_data - TransactionListResponse: + - updatedAt + - is_dynamic + - subaccounts + - total_subaccounts + SplitListResponse: type: object properties: status: @@ -4680,27 +5050,22 @@ components: data: type: array items: - $ref: '#/components/schemas/TransactionListResponseArray' + $ref: "#/components/schemas/SplitListResponseArray" meta: type: object properties: total: type: integer - total_volume: - type: number skipped: type: integer perPage: - anyOf: - - type: string - - type: integer + type: integer page: type: integer pageCount: type: integer required: - total - - total_volume - skipped - perPage - page @@ -4711,20 +5076,7 @@ components: - message - data - meta - MetadataCustomFieldsArray: - type: object - properties: - value: - type: string - display_name: - type: string - variable_name: - type: string - required: - - value - - display_name - - variable_name - TransactionFetchResponse: + SplitCreateResponse: type: object properties: status: @@ -4736,230 +5088,145 @@ components: properties: id: type: integer + name: + type: string + type: + type: string + currency: + type: string + integration: + type: integer domain: type: string - status: + split_code: type: string - reference: + active: + type: boolean + bearer_type: type: string - receipt_number: - nullable: true - amount: + bearer_subaccount: type: integer - message: - nullable: true - gateway_response: + createdAt: type: string - helpdesk_link: - nullable: true - paid_at: + updatedAt: type: string - created_at: + is_dynamic: + type: boolean + subaccounts: + type: array + items: + $ref: "#/components/schemas/SplitSubaccountsArray" + total_subaccounts: + type: integer + required: + - id + - name + - type + - currency + - integration + - domain + - split_code + - active + - bearer_type + - createdAt + - updatedAt + - is_dynamic + - subaccounts + - total_subaccounts + required: + - status + - message + - data + SplitFetchResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + name: type: string - channel: + type: type: string currency: type: string - ip_address: + integration: + type: integer + domain: type: string - metadata: - type: object - properties: - custom_fields: - type: array - items: - $ref: '#/components/schemas/MetadataCustomFieldsArray' - required: - - custom_fields - log: - nullable: true - fees: - type: integer - fees_split: - nullable: true - authorization: - type: object - properties: - authorization_code: - type: string - bin: - type: string - last4: - type: string - exp_month: - type: string - exp_year: - type: string - channel: - type: string - card_type: - type: string - bank: - type: string - country_code: - type: string - brand: - type: string - reusable: - type: boolean - signature: - type: string - account_name: - nullable: true - receiver_bank_account_number: - nullable: true - receiver_bank: - nullable: true - required: - - authorization_code - - bin - - last4 - - exp_month - - exp_year - - channel - - card_type - - bank - - country_code - - brand - - reusable - - signature - - account_name - - receiver_bank_account_number - - receiver_bank - customer: - type: object - properties: - id: - type: integer - first_name: - type: string - last_name: - type: string - email: - type: string - customer_code: - type: string - phone: - type: string - metadata: - type: object - risk_action: - type: string - international_format_phone: - type: string - required: - - id - - first_name - - last_name - - email - - customer_code - - phone - - metadata - - risk_action - - international_format_phone - plan: - type: object - subaccount: - type: object - split: - type: object - order_id: - nullable: true - paidAt: + split_code: + type: string + active: + type: boolean + bearer_type: type: string + bearer_subaccount: + type: integer createdAt: type: string - requested_amount: + updatedAt: + type: string + is_dynamic: + type: boolean + subaccounts: + type: array + items: + $ref: "#/components/schemas/SplitSubaccountsArray" + total_subaccounts: type: integer - pos_transaction_data: - nullable: true - source: - type: object - properties: - type: - type: string - source: - type: string - identifier: - nullable: true - required: - - type - - source - - identifier - fees_breakdown: - nullable: true - connect: - nullable: true required: - id - - domain - - status - - reference - - receipt_number - - amount - - message - - gateway_response - - helpdesk_link - - paid_at - - created_at - - channel + - name + - type - currency - - ip_address - - metadata - - log - - fees - - fees_split - - authorization - - customer - - plan - - subaccount - - split - - order_id - - paidAt + - integration + - domain + - split_code + - active + - bearer_type + - bearer_subaccount - createdAt - - requested_amount - - pos_transaction_data - - source - - fees_breakdown - - connect + - updatedAt + - is_dynamic + - subaccounts + - total_subaccounts required: - status - message - data - TransactionTimelineResponse: + SplitUpdate: type: object properties: - status: - type: boolean - message: + name: + description: Name of the transaction split type: string - data: - type: object - required: - - status - - message - - data - TransactionTotalVolumeByCurrencyArray: - type: object - properties: - currency: + active: + description: + Toggle status of split. When true, the split is active, else it's + inactive + type: boolean + bearer_type: + description: + This allows you specify how the transaction charge should be + processed type: string - amount: - type: integer - required: - - currency - - amount - TransactionPendingTransfersByCurrencyArray: - type: object - properties: - currency: + enum: + - subaccount + - account + - all-proportional + - all + bearer_subaccount: + description: + This is the subaccount code of the customer or partner that would + bear the transaction charge if you specified subaccount as the + bearer type type: string - amount: - type: integer - required: - - currency - - amount - TransactionTotalsResponse: + SplitUpdateResponse: type: object properties: status: @@ -4969,31 +5236,59 @@ components: data: type: object properties: - total_transactions: + id: type: integer - total_volume: + name: + type: string + type: + type: string + currency: + type: string + integration: type: integer - total_volume_by_currency: - type: array - items: - $ref: '#/components/schemas/TransactionTotalVolumeByCurrencyArray' - pending_transfers: + domain: + type: string + split_code: + type: string + active: + type: boolean + bearer_type: + type: string + bearer_subaccount: type: integer - pending_transfers_by_currency: + createdAt: + type: string + updatedAt: + type: string + is_dynamic: + type: boolean + subaccounts: type: array items: - $ref: '#/components/schemas/TransactionPendingTransfersByCurrencyArray' + $ref: "#/components/schemas/SplitSubaccountsArray" + total_subaccounts: + type: integer required: - - total_transactions - - total_volume - - total_volume_by_currency - - pending_transfers - - pending_transfers_by_currency + - id + - name + - type + - currency + - integration + - domain + - split_code + - active + - bearer_type + - bearer_subaccount + - createdAt + - updatedAt + - is_dynamic + - subaccounts + - total_subaccounts required: - status - message - data - TransactionExportResponse: + SplitAddUpdateSubaccountResponse: type: object properties: status: @@ -5003,66 +5298,161 @@ components: data: type: object properties: - path: + id: + type: integer + name: type: string - expiresAt: + type: + type: string + currency: + type: string + integration: + type: integer + domain: + type: string + split_code: type: string + active: + type: boolean + bearer_type: + type: string + bearer_subaccount: + type: integer + createdAt: + type: string + updatedAt: + type: string + is_dynamic: + type: boolean + subaccounts: + type: array + items: + $ref: "#/components/schemas/SplitSubaccountsArray" + total_subaccounts: + type: integer required: - - path - - expiresAt + - id + - name + - type + - currency + - integration + - domain + - split_code + - active + - bearer_type + - bearer_subaccount + - createdAt + - updatedAt + - is_dynamic + - subaccounts + - total_subaccounts required: - status - message - data - TransactionChargeAuthorization: + SplitRemoveSubaccountResponse: type: object + properties: + status: + type: boolean + message: + type: string required: - - email - - amount - - authorization_code + - status + - message + TerminalSendEventData: + type: object + description: The parameters needed to perform the specified action properties: - email: - description: Customer's email address + id: + description: The invoice or transaction ID you want to push to the Terminal + type: integer + format: int64 + reference: + description: The offline_reference from the Payment Request response type: string - amount: - description: Amount in the lower denomination of your currency + example: + id: 7895939 + reference: "4634337895939" + TerminalSendEvent: + type: object + properties: + type: + description: The type of event to push + type: string + enum: + - invoice + - transaction + action: + description: > + The action the Terminal needs to perform. For the invoice type, the + action can either be process or view. + + For the transaction type, the action can either be process or print. + type: string + enum: + - process + - view + - print + data: + $ref: "#/components/schemas/TerminalSendEventData" + TerminalGetStatusResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + online: + type: boolean + available: + type: boolean + required: + - online + - available + required: + - status + - message + - data + TerminalListsResponseArray: + type: object + properties: + id: type: integer - authorization_code: - description: Valid authorization code to charge + serial_number: type: string - reference: - description: Unique transaction reference. Only -, ., = and alphanumeric characters allowed. + nullable: true + device_make: type: string - currency: - $ref: '#/components/schemas/Currency' - split_code: - description: The split code of the transaction split + nullable: true + terminal_id: type: string - subaccount: - description: The code for the subaccount that owns the payment + integration: + type: integer + domain: type: string - transaction_charge: - description: |- - A flat fee to charge the subaccount for a transaction. - This overrides the split percentage set when the subaccount was created + name: type: string - bearer: - description: The bearer of the transaction charge + nullable: true + address: type: string - enum: - - account - - subaccount - metadata: - description: Stringified JSON object of custom data + nullable: true + status: type: string - queue: - description: If you are making a scheduled charge call, it is a good idea to queue them so the processing system does not get overloaded causing transaction processing errors. - type: boolean - example: - email: jb@email.com - amount: 30000 - authorization_code: AUTH_df1l5ehnym - TransactionChargeResponse: + required: + - id + - serial_number + - device_make + - terminal_id + - integration + - domain + - name + - address + - status + TerminalListsResponse: type: object properties: status: @@ -5070,162 +5460,168 @@ components: message: type: string data: + type: array + items: + $ref: "#/components/schemas/TerminalListsResponseArray" + meta: type: object properties: - status: + next: type: string - amount: + nullable: true + previous: + type: string + nullable: true + perPage: type: integer - currency: + required: + - next + - previous + - perPage + additionalProperties: false + required: + - status + - message + - data + - meta + TerminalGetResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + serial_number: type: string - transaction_date: + device_make: type: string - reference: + nullable: true + terminal_id: type: string + integration: + type: integer domain: type: string - redirect_url: + name: type: string nullable: true - metadata: - type: object - gateway_response: - type: string - message: + address: type: string nullable: true - channel: + status: + type: string + split_code: type: string - fees: - type: integer nullable: true - authorization: - type: object - properties: - authorization_code: - type: string - nullable: true - bin: - type: string - nullable: true - last4: - type: string - nullable: true - exp_month: - type: string - exp_year: - type: string - channel: - type: string - nullable: true - card_type: - type: string - nullable: true - bank: - type: string - nullable: true - country_code: - type: string - nullable: true - brand: - type: string - nullable: true - reusable: - type: boolean - signature: - type: string - nullable: true - required: - - authorization_code - - bin - - last4 - - exp_month - - exp_year - - channel - - card_type - - bank - - country_code - - brand - - reusable - - signature - customer: - type: object - properties: - first_name: - type: string - nullable: true - last_name: - type: string - nullable: true - email: - type: string - customer_code: - type: string - phone: - type: string - nullable: true - risk_action: - type: string - required: - - first_name - - last_name - - email - - customer_code - - phone - - risk_action - url: - type: string required: - - status - - amount - - currency - - transaction_date - - reference + - id + - serial_number + - device_make + - terminal_id + - integration - domain - - redirect_url - - metadata - - gateway_response - - message - - channel - - fees - - authorization - - customer + - name + - address + - status + - split_code required: - status - message - data - TransactionPartialDebit: + TerminalUpate: + type: object + description: Model for updating a Terminal details + properties: + name: + description: The new name for the Terminal + type: string + address: + description: The new address for the Terminal + type: string + example: + name: Oreos + address: Somewhere on earth + TerminalUpdateResponse: type: object + properties: + status: + type: boolean + message: + type: string required: - - email - - amount - - authorization_code - - currency + - status + - message + TerminalActivationToggle: + type: object + description: Model for activating and deactivating a debug Terminal + required: + - serial_number properties: - email: - description: Customer's email address + serial_number: + description: Device Serial Number type: string - amount: - description: Specified in the lowest denomination of your currency - type: integer - format: int64 - authorization_code: - description: Valid authorization code to charge + example: + serial_number: "1111150412230003899" + TerminalCommissionDeviceResponse: + type: object + properties: + status: + type: boolean + message: type: string - currency: - $ref: '#/components/schemas/Currency' - at_least: - description: Minimum amount to charge + required: + - status + - message + TerminalDecommissionDeviceResponse: + type: object + properties: + status: + type: boolean + message: type: string - reference: - description: Unique transaction reference. Only -, ., = and alphanumeric characters allowed. + required: + - status + - message + VirtualTerminalCreate: + type: object + required: + - name + - destinations + properties: + name: + type: string + description: The name of the virtual terminal + destinations: + type: array + description: Array of objects containing recipients for payment notifications for the Virtual Terminal. + items: + type: object + properties: + target: + type: string + description: The WhatsApp number to receive payment notifications + name: + type: string + description: The name of the associated WhatsApp number + split_code: type: string + description: Split code to associate with the virtual terminal + metadata: + type: object + description: Additional custom data as key-value pairs example: - email: tap@email.com - amount: 40510 - authorization_code: AUTH_df1l5ehnym - currency: ZAR - TransactionPartialDebitResponse: + name: "Sample Terminal" + destinations: + - target: "+2548012345678" + name: "John Doe" + - target: "+2548098765432" + name: "Jane Smith" + VirtualTerminalCreateResponse: type: object properties: status: @@ -5235,246 +5631,110 @@ components: data: type: object properties: - amount: + id: type: integer - currency: - type: string - transaction_date: - type: string - status: - type: string - reference: + name: type: string + integration: + type: integer domain: type: string - metadata: - type: string - gateway_response: + code: type: string - message: + paymentMethods: + type: array + items: {} + active: + type: boolean + metadata: nullable: true - channel: + destinations: + type: array + items: + type: object + properties: + target: + type: string + type: + type: string + name: + type: string + currency: type: string - ip_address: - nullable: true - log: - nullable: true - fees: + required: + - id + - name + - integration + - domain + - code + - paymentMethods + - active + - metadata + - destinations + - currency + required: + - status + - message + - data + VirtualTerminalListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: '#/components/schemas/VirtualTerminalListResponseArray' + meta: + type: object + properties: + total: type: integer - authorization: - type: object - properties: - authorization_code: - type: string - bin: - type: string - last4: - type: string - exp_month: - type: string - exp_year: - type: string - channel: - type: string - card_type: - type: string - bank: - type: string - country_code: - type: string - brand: - type: string - reusable: - type: boolean - signature: - type: string - account_name: - nullable: true - required: - - authorization_code - - bin - - last4 - - exp_month - - exp_year - - channel - - card_type - - bank - - country_code - - brand - - reusable - - signature - - account_name - customer: - type: object - properties: - id: - type: integer - first_name: - type: string - nullable: true - last_name: - type: string - nullable: true - email: - type: string - customer_code: - type: string - phone: - type: string - nullable: true - metadata: - type: object - nullable: true - risk_action: - type: string - international_format_phone: - type: string - nullable: true - required: - - id - - first_name - - last_name - - email - - customer_code - - phone - - metadata - - risk_action - - international_format_phone - plan: - type: integer - requested_amount: + skipped: type: integer - id: + perPage: + anyOf: + - type: string + - type: integer + page: type: integer - required: - - amount - - currency - - transaction_date - - status - - reference - - domain - - gateway_response - - message - - channel - - ip_address - - log - - fees - - authorization - - customer - - metadata - - plan - - requested_amount - - id - required: - - status - - message - - data - Response: - type: object - properties: - status: - type: boolean - message: - type: string - data: - type: object - SplitSubaccountsArray: - type: object - properties: - subaccount: - type: object - properties: - id: + pageCount: type: integer - subaccount_code: - type: string - business_name: - type: string - description: - type: string - primary_contact_name: - type: string - primary_contact_email: - type: string - primary_contact_phone: - type: string - metadata: - type: string - settlement_bank: - type: string - currency: - type: string - account_number: - type: string - required: - - id - - subaccount_code - - business_name - - description - - primary_contact_name - - primary_contact_email - - primary_contact_phone - - metadata - - settlement_bank - - currency - - account_number - share: - type: integer - required: - - subaccount - - share - SplitListResponseArray: + VirtualTerminalListResponseArray: type: object properties: id: type: integer - name: - type: string - type: + code: type: string - currency: + name: type: string integration: type: integer domain: type: string - split_code: - type: string + paymentMethods: + type: array + items: {} active: type: boolean - bearer_type: - type: string - bearer_subaccount: - type: integer - createdAt: + created_at: type: string - updatedAt: + currency: type: string - is_dynamic: - type: boolean - subaccounts: - type: array - items: - $ref: '#/components/schemas/SplitSubaccountsArray' - total_subaccounts: - type: integer required: - id + - code - name - - type - - currency - integration - domain - - split_code + - paymentMethods - active - - bearer_type - - bearer_subaccount - - createdAt - - updatedAt - - is_dynamic - - subaccounts - - total_subaccounts - SplitListResponse: + - created_at + - currency + VirtualTerminalFetchResponse: type: object properties: status: @@ -5482,35 +5742,67 @@ components: message: type: string data: - type: array - items: - $ref: '#/components/schemas/SplitListResponseArray' - meta: type: object properties: - total: - type: integer - skipped: - type: integer - perPage: - type: integer - page: + id: type: integer - pageCount: + code: + type: string + name: + type: string + integration: type: integer + domain: + type: string + paymentMethods: + type: array + items: {} + active: + type: boolean + created_at: + type: string + connect_account_id: + nullable: true + destinations: + type: array + items: + type: object + properties: + target: + type: string + type: + type: string + name: + type: string + created_at: + type: string + currency: + type: string required: - - total - - skipped - - perPage - - page - - pageCount - additionalProperties: false + - id + - code + - name + - integration + - domain + - paymentMethods + - active + - created_at + - connect_account_id + - destinations + - currency required: - status - message - data - - meta - SplitCreateResponse: + VirtualTerminalUpdate: + type: object + properties: + name: + description: Name of the virtual terminal + type: string + required: + - name + VirtualTerminalUpdateResponse: type: object properties: status: @@ -5522,139 +5814,91 @@ components: properties: id: type: integer - name: + code: type: string - type: - type: string - currency: + name: type: string integration: type: integer domain: type: string - split_code: - type: string + paymentMethods: + type: array + items: {} active: type: boolean - bearer_type: - type: string - bearer_subaccount: - type: integer - createdAt: - type: string - updatedAt: + created_at: type: string - is_dynamic: - type: boolean - subaccounts: + connect_account_id: + nullable: true + destinations: type: array items: - $ref: '#/components/schemas/SplitSubaccountsArray' - total_subaccounts: - type: integer - required: + type: object + properties: + target: + type: string + type: + type: string + name: + type: string + created_at: + type: string + currency: + type: string + required: - id + - code - name - - type - - currency - integration - domain - - split_code + - paymentMethods - active - - bearer_type - - bearer_subaccount - - createdAt - - updatedAt - - is_dynamic - - subaccounts - - total_subaccounts + - created_at + - connect_account_id + - destinations + - currency required: - status - message - data - SplitFetchResponse: + VirtualTerminalDeactivateResponse: type: object properties: status: type: boolean message: type: string - data: - type: object - properties: - id: - type: integer - name: - type: string - type: - type: string - currency: - type: string - integration: - type: integer - domain: - type: string - split_code: - type: string - active: - type: boolean - bearer_type: - type: string - bearer_subaccount: - type: integer - createdAt: - type: string - updatedAt: - type: string - is_dynamic: - type: boolean - subaccounts: - type: array - items: - $ref: '#/components/schemas/SplitSubaccountsArray' - total_subaccounts: - type: integer - required: - - id - - name - - type - - currency - - integration - - domain - - split_code - - active - - bearer_type - - bearer_subaccount - - createdAt - - updatedAt - - is_dynamic - - subaccounts - - total_subaccounts required: - status - message - - data - SplitUpdate: + VirtualTerminalDestinationAssign: type: object + required: + - destinations properties: - name: - description: Name of the transaction split - type: string - active: - description: Toggle status of split. When true, the split is active, else it's inactive - type: boolean - bearer_type: - description: This allows you specify how the transaction charge should be processed - type: string - enum: - - subaccount - - account - - all-proportional - - all - bearer_subaccount: - description: This is the subaccount code of the customer or partner that would bear the transaction charge if you specified subaccount as the bearer type - type: string - SplitUpdateResponse: + destinations: + type: array + description: Array of objects containing recipients for payment notifications for the Virtual Terminal. + items: + type: object + properties: + target: + type: string + description: The WhatsApp number to receive payment notifications + name: + type: string + description: The name of the associated WhatsApp number + required: + - target + - name + example: + destinations: + - target: "+2548012345678" + name: "John Doe" + - target: "+2548098765432" + name: "Jane Smith" + VirtualTerminalDestinationAssignResponse: type: object properties: status: @@ -5662,61 +5906,70 @@ components: message: type: string data: - type: object - properties: - id: - type: integer - name: - type: string - type: - type: string - currency: - type: string - integration: - type: integer - domain: - type: string - split_code: - type: string - active: - type: boolean - bearer_type: - type: string - bearer_subaccount: - type: integer - createdAt: - type: string - updatedAt: - type: string - is_dynamic: - type: boolean - subaccounts: - type: array - items: - $ref: '#/components/schemas/SplitSubaccountsArray' - total_subaccounts: - type: integer - required: - - id - - name - - type - - currency - - integration - - domain - - split_code - - active - - bearer_type - - bearer_subaccount - - createdAt - - updatedAt - - is_dynamic - - subaccounts - - total_subaccounts + type: array + items: + type: object + properties: + integration: + type: integer + target: + type: string + name: + type: string + type: + type: string + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - integration + - target + - name + - type + - id + - createdAt + - updatedAt required: - status - message - data - SplitAddUpdateSubaccountResponse: + VirtualTerminalDestinationUnassign: + type: object + properties: + targets: + type: array + items: + type: string + required: + - targets + example: + targets: + - "+2548012345678" + - "+2548098765432" + VirtualTerminalDestinationUnassignResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + VirtualTerminalAddSplitCode: + type: object + required: + - split_code + properties: + split_code: + description: The split code to assign to the virtual terminal + type: string + example: + split_code: SPL_1234567890abcdef + VirtualTerminalAddSplitCodeResponse: type: object properties: status: @@ -5745,7 +5998,7 @@ components: bearer_type: type: string bearer_subaccount: - type: integer + nullable: true createdAt: type: string updatedAt: @@ -5768,7 +6021,7 @@ components: - split_code - active - bearer_type - - bearer_subaccount + - bearer_subaccount - createdAt - updatedAt - is_dynamic @@ -5778,263 +6031,46 @@ components: - status - message - data - SplitRemoveSubaccountResponse: - type: object - properties: - status: - type: boolean - message: - type: string - required: - - status - - message - TerminalSendEventData: + VirtualTerminalDeleteSplitCode: type: object - description: The parameters needed to perform the specified action properties: - id: - description: The invoice or transaction ID you want to push to the Terminal - type: integer - format: int64 - reference: - description: The offline_reference from the Payment Request response + split_code: + description: The split code to assign to the virtual terminal type: string example: - id: 7895939 - reference: '4634337895939' - TerminalSendEvent: - type: object - properties: - type: - description: The type of event to push - type: string - enum: - - invoice - - transaction - action: - description: | - The action the Terminal needs to perform. For the invoice type, the action can either be process or view. - For the transaction type, the action can either be process or print. - type: string - enum: - - process - - view - - print - data: - $ref: '#/components/schemas/TerminalSendEventData' - TerminalGetStatusResponse: + split_code: SPL_1234567890abcdef + required: + - split_code + VirtualTerminalDeleteSplitCodeResponse: type: object properties: status: type: boolean message: type: string - data: - type: object - properties: - online: - type: boolean - available: - type: boolean - required: - - online - - available required: - status - message - - data - TerminalListsResponseArray: + CustomerListResponseArray: type: object properties: - id: + integration: type: integer - serial_number: + first_name: type: string nullable: true - device_make: + last_name: type: string nullable: true - terminal_id: - type: string - integration: - type: integer - domain: + email: type: string - name: + phone: type: string nullable: true - address: - type: string + metadata: + type: object nullable: true - status: - type: string - required: - - id - - serial_number - - device_make - - terminal_id - - integration - - domain - - name - - address - - status - TerminalListsResponse: - type: object - properties: - status: - type: boolean - message: - type: string - data: - type: array - items: - $ref: '#/components/schemas/TerminalListsResponseArray' - meta: - type: object - properties: - next: - type: array - nullable: true - items: {} - previous: - type: array - nullable: true - items: {} - perPage: - type: integer - required: - - next - - previous - - perPage - additionalProperties: false - required: - - status - - message - - data - - meta - TerminalGetResponse: - type: object - properties: - status: - type: boolean - message: - type: string - data: - type: object - properties: - id: - type: integer - serial_number: - type: string - device_make: - type: string - nullable: true - terminal_id: - type: string - integration: - type: integer - domain: - type: string - name: - type: string - nullable: true - address: - type: string - nullable: true - status: - type: string - split_code: - type: string - nullable: true - required: - - id - - serial_number - - device_make - - terminal_id - - integration - - domain - - name - - address - - status - - split_code - required: - - status - - message - - data - TerminalUpate: - type: object - description: Model for updating a Terminal details - properties: - name: - description: The new name for the Terminal - type: string - address: - description: The new address for the Terminal - type: string - example: - name: Oreos - address: Somewhere on earth - TerminalUpdateResponse: - type: object - properties: - status: - type: boolean - message: - type: string - required: - - status - - message - TerminalActivationToggle: - type: object - description: Model for activating and deactivating a debug Terminal - required: - - serial_number - properties: - serial_number: - description: Device Serial Number - type: string - example: - serial_number: '1111150412230003899' - TerminalCommissionDeviceResponse: - type: object - properties: - status: - type: boolean - message: - type: string - required: - - status - - message - TerminalDecommissionDeviceResponse: - type: object - properties: - status: - type: boolean - message: - type: string - required: - - status - - message - CustomerListResponseArray: - type: object - properties: - integration: - type: integer - first_name: - type: string - nullable: true - last_name: - type: string - nullable: true - email: - type: string - phone: - type: string - nullable: true - metadata: - type: object - nullable: true - domain: + domain: type: string customer_code: type: string @@ -6069,7 +6105,7 @@ components: data: type: array items: - $ref: '#/components/schemas/CustomerListResponseArray' + $ref: "#/components/schemas/CustomerListResponseArray" meta: type: object properties: @@ -6363,11 +6399,16 @@ components: description: Customer's code, or email address type: string risk_action: - description: | - One of the possible risk actions [ default, allow, deny ]. allow to whitelist. - deny to blacklist. Customers start with a default risk action. + description: + This determines the fraud rules that should be applied to the + customer type: string - CustomerWhitelistBlacklistResponse: + default: default + enum: + - allow + - deny + - default + CustomerRiskActionResponse: type: object properties: status: @@ -6477,8 +6518,9 @@ components: type: description: Predefined types of identification. type: string + default: bank_account value: - description: Customer's identification number. Required if type is bvn + description: Customer's identification number. type: string country: description: Two-letter country code of identification issuer @@ -6487,7 +6529,9 @@ components: description: Customer's Bank Verification Number type: string bank_code: - description: You can get the list of bank codes by calling the List Banks endpoint (https://api.paystack.co/bank). + description: + You can get the list of bank codes by calling the List Banks + endpoint (https://api.paystack.co/bank). type: string account_number: description: Customer's bank account number. @@ -6600,13 +6644,17 @@ components: description: Customer ID or code type: string preferred_bank: - description: The bank slug for preferred bank. To get a list of available banks, use the List Providers endpoint + description: + The bank slug for preferred bank. To get a list of available banks, + use the List Providers endpoint type: string subaccount: description: Subaccount code of the account you want to split the transaction with type: string split_code: - description: Split code consisting of the lists of accounts you want to split the transaction with + description: + Split code consisting of the lists of accounts you want to split + the transaction with type: string DedicatedNubanCreateResponse: type: object @@ -6746,9 +6794,11 @@ components: description: Customer's phone name type: string preferred_bank: - description: | + description: > The bank slug for preferred bank. To get a list of available banks, - use the List Banks endpoint, passing `pay_with_bank_transfer=true` query parameter + + use the List Banks endpoint, passing `pay_with_bank_transfer=true` + query parameter type: string country: description: Currently accepts NG only @@ -6766,7 +6816,9 @@ components: description: Subaccount code of the account you want to split the transaction with type: string split_code: - description: Split code consisting of the lists of accounts you want to split the transaction with + description: + Split code consisting of the lists of accounts you want to split + the transaction with type: string DedicatedNubanDeactivateResponse: type: object @@ -6856,7 +6908,9 @@ components: description: Subaccount code of the account you want to split the transaction with type: string split_code: - description: Split code consisting of the lists of accounts you want to split the transaction with + description: + Split code consisting of the lists of accounts you want to split + the transaction with type: string ApplePayParam: type: object @@ -6911,6 +6965,8 @@ components: type: string active: type: integer + is_verified: + type: boolean required: - id - subaccount_code @@ -6926,6 +6982,7 @@ components: - account_number - currency - active + - is_verified SubaccountListResponse: type: object properties: @@ -6936,7 +6993,7 @@ components: data: type: array items: - $ref: '#/components/schemas/SubaccountListResponseArray' + $ref: "#/components/schemas/SubaccountListResponseArray" meta: type: object properties: @@ -6974,7 +7031,9 @@ components: description: Name of business for subaccount type: string settlement_bank: - description: Bank code for the bank. You can get the list of Bank Codes by calling the List Banks endpoint. + description: + Bank code for the bank. You can get the list of Bank Codes by + calling the List Banks endpoint. type: string account_number: description: Bank account number @@ -7179,7 +7238,9 @@ components: description: Name of business for subaccount type: string settlement_bank: - description: Bank code for the bank. You can get the list of Bank Codes by calling the List Banks endpoint. + description: + Bank code for the bank. You can get the list of Bank Codes by + calling the List Banks endpoint. type: string account_number: description: Bank account number @@ -7384,7 +7445,7 @@ components: data: type: array items: - $ref: '#/components/schemas/PlanListResponseArray' + $ref: "#/components/schemas/PlanListResponseArray" meta: type: object properties: @@ -7421,10 +7482,13 @@ components: description: Name of plan type: string amount: - description: Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR + description: + Amount should be in kobo if currency is NGN, pesewas, if currency + is GHS, and cents, if currency is ZAR type: integer interval: - description: Interval in words. Valid intervals are daily, weekly, monthly,biannually, annually + description: Interval in words. Valid intervals are daily, weekly, + monthly,biannually, annually type: string description: description: A description for this plan @@ -7433,10 +7497,14 @@ components: description: Set to false if you don't want invoices to be sent to your customers type: boolean send_sms: - description: Set to false if you don't want text messages to be sent to your customers + description: + Set to false if you don't want text messages to be sent to your + customers type: boolean currency: - description: Currency in which amount is set. Allowed values are NGN, GHS, ZAR or USD + description: + Currency in which amount is set. Allowed values are NGN, GHS, ZAR + or USD type: string invoice_limit: description: |- @@ -7616,10 +7684,13 @@ components: description: Name of plan type: string amount: - description: Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR + description: + Amount should be in kobo if currency is NGN, pesewas, if currency + is GHS, and cents, if currency is ZAR type: integer interval: - description: Interval in words. Valid intervals are daily, weekly, monthly,biannually, annually + description: Interval in words. Valid intervals are daily, weekly, + monthly,biannually, annually type: string description: description: A description for this plan @@ -7628,10 +7699,14 @@ components: description: Set to false if you don't want invoices to be sent to your customers type: boolean send_sms: - description: Set to false if you don't want text messages to be sent to your customers + description: + Set to false if you don't want text messages to be sent to your + customers type: boolean currency: - description: Currency in which amount is set. Allowed values are NGN, GHS, ZAR or USD + description: + Currency in which amount is set. Allowed values are NGN, GHS, ZAR + or USD type: string invoice_limit: description: |- @@ -7808,6 +7883,9 @@ components: type: integer most_recent_invoice: nullable: true + metadata: + type: object + nullable: true required: - id - domain @@ -7829,6 +7907,7 @@ components: - split_code - payments_count - most_recent_invoice + - metadata SubscriptionListResponse: type: object properties: @@ -7839,7 +7918,7 @@ components: data: type: array items: - $ref: '#/components/schemas/SubscriptionListResponseArray' + $ref: "#/components/schemas/SubscriptionListResponseArray" meta: type: object properties: @@ -7878,12 +7957,16 @@ components: description: Plan code type: string authorization: - description: |- - If customer has multiple authorizations, you can set the desired authorization you wish to use for this subscription here. - If this is not supplied, the customer's most recent authorization would be used + description: >- + If customer has multiple authorizations, you can set the desired + authorization you wish to use for this subscription here. + + If this is not supplied, the customer's most recent authorization + would be used type: string start_date: - description: Set the date for the first debit. (ISO 8601 format) e.g. 2017-05-16T00:30:13+01:00 + description: Set the date for the first debit. (ISO 8601 format) e.g. + 2017-05-16T00:30:13+01:00 type: string format: date-time SubscriptionCreateResponse: @@ -7934,6 +8017,15 @@ components: type: string next_payment_date: type: string + easy_cron_id: + type: string + nullable: true + open_invoice: + type: string + nullable: true + metadata: + type: object + nullable: true required: - customer - plan @@ -7954,6 +8046,9 @@ components: - updatedAt - cron_expression - next_payment_date + - easy_cron_id + - open_invoice + - metadata required: - status - message @@ -8111,6 +8206,9 @@ components: nullable: true payments_count: type: integer + metadata: + type: object + nullable: true required: - id - domain @@ -8133,6 +8231,7 @@ components: - split_code - most_recent_invoice - payments_count + - metadata required: - status - message @@ -8283,7 +8382,7 @@ components: data: type: array items: - $ref: '#/components/schemas/ProductListsResponseArray' + $ref: "#/components/schemas/ProductListsResponseArray" meta: type: object properties: @@ -8324,17 +8423,22 @@ components: description: The description of the product type: string price: - description: | - Price should be in kobo if currency is NGN, pesewas, if currency is GHS, + description: > + Price should be in kobo if currency is NGN, pesewas, if currency is + GHS, + and cents, if currency is ZAR type: integer currency: - description: | - Currency in which price is set. Allowed values are: NGN, GHS, ZAR or USD + description: > + Currency in which price is set. Allowed values are: NGN, GHS, ZAR or + USD type: string unlimited: - description: | - Set to true if the product has unlimited stock. Leave as false if the + description: > + Set to true if the product has unlimited stock. Leave as false if + the + product has limited stock type: boolean quantity: @@ -8609,17 +8713,22 @@ components: description: The description of the product type: string price: - description: | - Price should be in kobo if currency is NGN, pesewas, if currency is GHS, + description: > + Price should be in kobo if currency is NGN, pesewas, if currency is + GHS, + and cents, if currency is ZAR type: integer currency: - description: | - Currency in which price is set. Allowed values are: NGN, GHS, ZAR or USD + description: > + Currency in which price is set. Allowed values are: NGN, GHS, ZAR or + USD type: string unlimited: - description: | - Set to true if the product has unlimited stock. Leave as false if the + description: > + Set to true if the product has unlimited stock. Leave as false if + the + product has limited stock type: boolean quantity: @@ -8629,8 +8738,8 @@ components: description: The split code if sharing the transaction with partners type: string metadata: - description: Stringified JSON object of custom data - type: string + description: JSON object of custom data + type: object ProductUpdateResponse: type: object properties: @@ -8821,7 +8930,7 @@ components: data: type: array items: - $ref: '#/components/schemas/StorefrontListResponseArray' + $ref: "#/components/schemas/StorefrontListResponseArray" meta: type: object properties: @@ -8858,13 +8967,16 @@ components: description: Name of the storefront type: string slug: - description: | - A unique identifier to access your store. Once the storefront is created, it can be accessed from + description: > + A unique identifier to access your store. Once the storefront is + created, it can be accessed from + https://paystack.shop/your-slug type: string currency: - description: | - Currency for prices of products in your storefront. Allowed values are: `NGN`, `GHS`, `KES`, `ZAR` or `USD` + description: > + Currency for prices of products in your storefront. Allowed values + are: `NGN`, `GHS`, `KES`, `ZAR` or `USD` type: string description: description: The description of the storefront @@ -8901,7 +9013,7 @@ components: contacts: type: array items: - $ref: '#/components/schemas/StorefrontContactsArray' + $ref: "#/components/schemas/StorefrontContactsArray" name: type: string slug: @@ -8987,7 +9099,7 @@ components: contacts: type: array items: - $ref: '#/components/schemas/StorefrontContactsArray' + $ref: "#/components/schemas/StorefrontContactsArray" name: type: string slug: @@ -9088,8 +9200,10 @@ components: description: Name of the storefront type: string slug: - description: | - A unique identifier to access your store. Once the storefront is created, it can be accessed from + description: > + A unique identifier to access your store. Once the storefront is + created, it can be accessed from + https://paystack.shop/your-slug type: string description: @@ -9246,7 +9360,7 @@ components: items: type: array items: - $ref: '#/components/schemas/OrderItemsArray' + $ref: "#/components/schemas/OrderItemsArray" fully_refunded: type: boolean required: @@ -9286,7 +9400,7 @@ components: data: type: array items: - $ref: '#/components/schemas/OrderListResponseArray' + $ref: "#/components/schemas/OrderListResponseArray" meta: type: object properties: @@ -9388,14 +9502,16 @@ components: description: The customer's mobile number type: string currency: - description: Currency in which amount is set. Allowed values are NGN, GHS, ZAR or USD + description: + Currency in which amount is set. Allowed values are NGN, GHS, ZAR + or USD type: string items: type: array items: - $ref: '#/components/schemas/OrderItems' + $ref: "#/components/schemas/OrderItems" shipping: - $ref: '#/components/schemas/OrderShipping' + $ref: "#/components/schemas/OrderShipping" is_gift: description: | A flag to indicate if the order is for someone else @@ -9676,7 +9792,7 @@ components: items: type: array items: - $ref: '#/components/schemas/OrderItemsArray' + $ref: "#/components/schemas/OrderItemsArray" discount_amount: nullable: true required: @@ -9827,7 +9943,7 @@ components: data: type: array items: - $ref: '#/components/schemas/OrderFetchProductResponseArray' + $ref: "#/components/schemas/OrderFetchProductResponseArray" meta: type: object properties: @@ -10074,7 +10190,7 @@ components: data: type: array items: - $ref: '#/components/schemas/PageListResponseArray' + $ref: "#/components/schemas/PageListResponseArray" meta: type: object properties: @@ -10112,7 +10228,9 @@ components: description: The description of the page type: string amount: - description: Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR + description: + Amount should be in kobo if currency is NGN, pesewas, if currency + is GHS, and cents, if currency is ZAR type: integer currency: description: The transaction currency. Defaults to your integration currency. @@ -10124,11 +10242,14 @@ components: - KES - USD slug: - description: URL slug you would like to be associated with this page. Page will be accessible at `https://paystack.com/pay/[slug]` + description: + URL slug you would like to be associated with this page. Page will + be accessible at `https://paystack.com/pay/[slug]` type: string type: - description: | - The type of payment page to create. Defaults to `payment` if no type is specified. + description: > + The type of payment page to create. Defaults to `payment` if no type + is specified. type: string enum: - payment @@ -10136,28 +10257,35 @@ components: - product - plan plan: - description: The ID of the plan to subscribe customers on this payment page to when `type` is set to `subscription`. + description: + The ID of the plan to subscribe customers on this payment page to + when `type` is set to `subscription`. type: string fixed_amount: - description: Specifies whether to collect a fixed amount on the payment page. If true, `amount` must be passed. + description: + Specifies whether to collect a fixed amount on the payment page. If + true, `amount` must be passed. type: boolean split_code: description: The split code of the transaction split. e.g. `SPL_98WF13Eb3w` type: string metadata: - description: Stringified JSON object of custom data - type: string + description: JSON object of custom data + type: object redirect_url: - description: | - If you would like Paystack to redirect to a URL upon successful payment, specify the URL here. + description: > + If you would like Paystack to redirect to a URL upon successful + payment, specify the URL here. type: string success_message: - description: | - A success message to display to the customer after a successful transaction + description: > + A success message to display to the customer after a successful + transaction type: string notification_email: - description: | - An email address that will receive transaction notifications for this payment page + description: > + An email address that will receive transaction notifications for + this payment page type: string collect_phone: description: | @@ -10311,7 +10439,9 @@ components: description: The description of the page type: string amount: - description: Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR + description: + Amount should be in kobo if currency is NGN, pesewas, if currency + is GHS, and cents, if currency is ZAR type: integer active: description: Set to false to deactivate page url @@ -10523,7 +10653,7 @@ components: products: type: array items: - $ref: '#/components/schemas/PageProductsArray' + $ref: "#/components/schemas/PageProductsArray" required: - integration - plan @@ -10605,11 +10735,11 @@ components: line_items: type: array items: - $ref: '#/components/schemas/PaymentRequestLineItemsArray' + $ref: "#/components/schemas/PaymentRequestLineItemsArray" tax: type: array items: - $ref: '#/components/schemas/PaymentRequestTaxArray' + $ref: "#/components/schemas/PaymentRequestTaxArray" request_code: type: string status: @@ -10697,7 +10827,7 @@ components: data: type: array items: - $ref: '#/components/schemas/PaymentRequestListResponseArray' + $ref: "#/components/schemas/PaymentRequestListResponseArray" meta: type: object properties: @@ -10734,12 +10864,16 @@ components: description: Customer id or code type: string amount: - description: |- - Payment request amount. Only useful if line items and tax values are ignored. + description: >- + Payment request amount. Only useful if line items and tax values are + ignored. + The endpoint will throw a friendly warning if neither is available. type: integer currency: - description: Specify the currency of the invoice. Allowed values are NGN, GHS, ZAR and USD. Defaults to NGN + description: + Specify the currency of the invoice. Allowed values are NGN, GHS, + ZAR and USD. Defaults to NGN type: string due_date: description: ISO 8601 representation of request due date @@ -10759,26 +10893,35 @@ components: items: type: object send_notification: - description: Indicates whether Paystack sends an email notification to customer. Defaults to true + description: + Indicates whether Paystack sends an email notification to customer. + Defaults to true type: boolean items: type: object draft: - description: Indicate if request should be saved as draft. Defaults to false and overrides send_notification + description: + Indicate if request should be saved as draft. Defaults to false and + overrides send_notification type: boolean items: type: object has_invoice: - description: |- - Set to true to create a draft invoice (adds an auto incrementing invoice number if none is provided) + description: >- + Set to true to create a draft invoice (adds an auto incrementing + invoice number if none is provided) + even if there are no line_items or tax passed type: boolean items: type: object invoice_number: - description: |- - Numeric value of invoice. Invoice will start from 1 and auto increment from there. This field is to help - override whatever value Paystack decides. Auto increment for subsequent invoices continue from this point. + description: >- + Numeric value of invoice. Invoice will start from 1 and auto + increment from there. This field is to help + + override whatever value Paystack decides. Auto increment for + subsequent invoices continue from this point. type: integer split_code: description: The split code of the transaction split. @@ -10809,8 +10952,10 @@ components: has_invoice: type: boolean invoice_number: + type: integer nullable: true description: + type: string nullable: true line_items: type: array @@ -10825,6 +10970,7 @@ components: paid: type: boolean metadata: + type: object nullable: true notifications: type: array @@ -10838,6 +10984,7 @@ components: discount: nullable: true split_code: + type: string nullable: true required: - id @@ -10872,12 +11019,16 @@ components: description: Customer id or code type: string amount: - description: |- - Payment request amount. Only useful if line items and tax values are ignored. + description: >- + Payment request amount. Only useful if line items and tax values are + ignored. + The endpoint will throw a friendly warning if neither is available. type: integer currency: - description: Specify the currency of the invoice. Allowed values are NGN, GHS, ZAR and USD. Defaults to NGN + description: + Specify the currency of the invoice. Allowed values are NGN, GHS, + ZAR and USD. Defaults to NGN type: string due_date: description: ISO 8601 representation of request due date @@ -10897,26 +11048,35 @@ components: items: type: object send_notification: - description: Indicates whether Paystack sends an email notification to customer. Defaults to true + description: + Indicates whether Paystack sends an email notification to customer. + Defaults to true type: boolean items: type: object draft: - description: Indicate if request should be saved as draft. Defaults to false and overrides send_notification + description: + Indicate if request should be saved as draft. Defaults to false and + overrides send_notification type: boolean items: type: object has_invoice: - description: |- - Set to true to create a draft invoice (adds an auto incrementing invoice number if none is provided) + description: >- + Set to true to create a draft invoice (adds an auto incrementing + invoice number if none is provided) + even if there are no line_items or tax passed type: boolean items: type: object invoice_number: - description: |- - Numeric value of invoice. Invoice will start from 1 and auto increment from there. This field is to help - override whatever value Paystack decides. Auto increment for subsequent invoices continue from this point. + description: >- + Numeric value of invoice. Invoice will start from 1 and auto + increment from there. This field is to help + + override whatever value Paystack decides. Auto increment for + subsequent invoices continue from this point. type: integer split_code: description: The split code of the transaction split. @@ -10983,7 +11143,7 @@ components: notifications: type: array items: - $ref: '#/components/schemas/PaymentRequestNotificationsArray' + $ref: "#/components/schemas/PaymentRequestNotificationsArray" offline_reference: type: string customer: @@ -11122,7 +11282,7 @@ components: notifications: type: array items: - $ref: '#/components/schemas/PaymentRequestNotificationsArray' + $ref: "#/components/schemas/PaymentRequestNotificationsArray" offline_reference: type: string customer: @@ -11249,15 +11409,15 @@ components: pending: type: array items: - $ref: '#/components/schemas/PaymentRequestPendingArray' + $ref: "#/components/schemas/PaymentRequestPendingArray" successful: type: array items: - $ref: '#/components/schemas/PaymentRequestSuccessfulArray' + $ref: "#/components/schemas/PaymentRequestSuccessfulArray" total: type: array items: - $ref: '#/components/schemas/PaymentRequestTotalArray' + $ref: "#/components/schemas/PaymentRequestTotalArray" required: - pending - successful @@ -11302,11 +11462,11 @@ components: line_items: type: array items: - $ref: '#/components/schemas/PaymentRequestLineItemsArray' + $ref: "#/components/schemas/PaymentRequestLineItemsArray" tax: type: array items: - $ref: '#/components/schemas/PaymentRequestTaxArray' + $ref: "#/components/schemas/PaymentRequestTaxArray" request_code: type: string status: @@ -11433,6 +11593,7 @@ components: integration: type: integer metadata: + type: object nullable: true name: type: string @@ -11450,9 +11611,11 @@ components: type: object properties: authorization_code: + type: string nullable: true account_number: type: string + nullable: true account_name: type: string nullable: true @@ -11475,7 +11638,6 @@ components: - email - id - integration - - metadata - name - recipient_code - type @@ -11493,7 +11655,7 @@ components: data: type: array items: - $ref: '#/components/schemas/TransferRecipientListResponseArray' + $ref: "#/components/schemas/TransferRecipientListResponseArray" meta: type: object properties: @@ -11528,7 +11690,8 @@ components: - bank_code properties: type: - description: Recipient Type (Only nuban at this time) + description: Recipient Type + default: nuban type: string name: description: Recipient's name @@ -11537,7 +11700,9 @@ components: description: Recipient's bank account number type: string bank_code: - description: Recipient's bank code. You can get the list of Bank Codes by calling the List Banks endpoint + description: + Recipient's bank code. You can get the list of Bank Codes by + calling the List Banks endpoint type: string description: description: A description for this recipient @@ -11549,8 +11714,8 @@ components: description: An authorization code from a previous transaction type: string metadata: - description: Stringified JSON object of custom data - type: string + description: JSON object of custom data + type: object TransferRecipientCreateResponse: type: object properties: @@ -11578,6 +11743,7 @@ components: integration: type: integer metadata: + type: object nullable: true name: type: string @@ -11595,9 +11761,11 @@ components: type: object properties: authorization_code: + type: string nullable: true account_number: type: string + nullable: true account_name: type: string nullable: true @@ -11620,7 +11788,6 @@ components: - email - id - integration - - metadata - name - recipient_code - type @@ -11638,12 +11805,10 @@ components: - batch properties: batch: - description: |- - A list of transfer recipient object. Each object should contain type, name, and bank_code. - Any Create Transfer Recipient param can also be passed. + description: A list of transfer recipient object. type: array items: - $ref: '#/components/schemas/TransferRecipientCreate' + $ref: "#/components/schemas/TransferRecipientCreate" ErrorRecordsArray: type: object properties: @@ -11677,7 +11842,7 @@ components: records: type: array items: - $ref: '#/components/schemas/ErrorRecordsArray' + $ref: "#/components/schemas/ErrorRecordsArray" required: - message - records @@ -11697,7 +11862,7 @@ components: errors: type: array items: - $ref: '#/components/schemas/TransferRecipientErrorsArray' + $ref: "#/components/schemas/TransferRecipientErrorsArray" required: - success - errors @@ -11730,8 +11895,10 @@ components: properties: account_number: type: string + nullable: true account_name: type: string + nullable: true bank_code: type: string bank_name: @@ -11744,6 +11911,7 @@ components: description: type: string metadata: + type: object nullable: true recipient_code: type: string @@ -11771,7 +11939,6 @@ components: - name - details - description - - metadata - recipient_code - active - recipient_account @@ -11845,6 +12012,8 @@ components: nullable: true transfer_code: type: string + request: + type: integer transferred_at: nullable: true updatedAt: @@ -11869,6 +12038,7 @@ components: integration: type: integer metadata: + type: object nullable: true name: type: string @@ -11891,6 +12061,7 @@ components: type: string account_name: type: string + nullable: true bank_code: type: string bank_name: @@ -11910,7 +12081,6 @@ components: - email - id - integration - - metadata - name - recipient_code - type @@ -11930,6 +12100,9 @@ components: - id fee_charged: type: integer + fees_breakdown: + type: integer + nullable: true required: - amount - createdAt @@ -11944,12 +12117,14 @@ components: - source_details - status - titan_code + - request - transfer_code - transferred_at - updatedAt - recipient - session - fee_charged + - fees_breakdown TransferListResponse: type: object properties: @@ -11960,7 +12135,7 @@ components: data: type: array items: - $ref: '#/components/schemas/TransferListResponseArray' + $ref: "#/components/schemas/TransferListResponseArray" meta: type: object properties: @@ -11986,33 +12161,55 @@ components: - message - data - meta - TransferInitiate: + TransferBase: type: object required: - - source - amount - recipient + - reference properties: - source: - description: Where should we transfer from? Only balance is allowed for now - type: string amount: - description: Amount to transfer in kobo if currency is NGN and pesewas if currency is GHS. - type: string + description: + Amount to transfer in kobo if currency is NGN and pesewas if + currency is GHS. + type: integer recipient: description: The transfer recipient's code type: string + reference: + description: > + To ensure idempotency, you need to provide e a unique identifier for + the request. The identifier should be a lowercase alphanumeric + string with only -,_ symbols allowed. + type: string + minimum: 16 reason: description: The reason or narration for the transfer. type: string - currency: - description: Specify the currency of the transfer. Defaults to NGN. - type: string - reference: - description: |- - If specified, the field should be a unique identifier (in lowercase) for the object. - Only -,_ and alphanumeric characters are allowed. - type: string + TransferInitiate: + description: Transfer initiation model + allOf: + - $ref: "#/components/schemas/TransferBase" + - type: object + required: + - source + - amount + - recipient + - reference + properties: + source: + description: The origin of the funds to send from + type: string + default: balance + currency: + description: Specify the currency of the transfer. + type: string + default: NGN + enum: + - NGN + - ZAR + - KES + - GHS TransferCreateResponse: type: object properties: @@ -12026,6 +12223,9 @@ components: transfersessionid: type: array items: {} + transfertrials: + type: array + items: {} domain: type: string amount: @@ -12064,6 +12264,7 @@ components: type: string required: - transfersessionid + - transfertrials - domain - amount - currency @@ -12107,11 +12308,20 @@ components: source: description: Where should we transfer from? Only balance is allowed for now type: string + currency: + description: Specify the currency of the transfer. + type: string + default: NGN + enum: + - NGN + - ZAR + - KES + - GHS transfers: - description: A list of transfer object. Each object should contain amount, recipient, and reference + description: A list of transfer object type: array items: - $ref: '#/components/schemas/TransferInitiate' + $ref: "#/components/schemas/TransferBase" TransferBulkResponseArray: type: object properties: @@ -12144,7 +12354,7 @@ components: data: type: array items: - $ref: '#/components/schemas/TransferBulkResponseArray' + $ref: "#/components/schemas/TransferBulkResponseArray" required: - status - message @@ -12226,6 +12436,7 @@ components: integration: type: integer metadata: + type: object nullable: true name: type: string @@ -12268,7 +12479,6 @@ components: - email - id - integration - - metadata - name - recipient_code - type @@ -12291,7 +12501,7 @@ components: fees_breakdown: type: array items: - $ref: '#/components/schemas/TransferFeesBreakdownArray' + $ref: "#/components/schemas/TransferFeesBreakdownArray" nullable: true gateway_response: type: string @@ -12385,6 +12595,7 @@ components: integration: type: integer metadata: + type: object nullable: true name: type: string @@ -12424,7 +12635,6 @@ components: - email - id - integration - - metadata - name - recipient_code - type @@ -12478,8 +12688,12 @@ components: description: The transfer code that requires an OTP validation type: string reason: - description: Either resend_otp or transfer + description: Specify the flag to indicate the purpose of the OTP type: string + default: transfer + enum: + - disable_otp + - transfer TransferResendsOtpResponse: type: object properties: @@ -12548,7 +12762,7 @@ components: data: type: array items: - $ref: '#/components/schemas/BalanceCheckResponseArray' + $ref: "#/components/schemas/BalanceCheckResponseArray" required: - status - message @@ -12600,7 +12814,7 @@ components: data: type: array items: - $ref: '#/components/schemas/BalanceFetchLedgerResponseArray' + $ref: "#/components/schemas/BalanceFetchLedgerResponseArray" meta: type: object properties: @@ -12636,7 +12850,9 @@ components: description: Customer's email address type: string amount: - description: Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR + description: + Amount should be in kobo if currency is NGN, pesewas, if currency + is GHS, and cents, if currency is ZAR type: string authorization_code: description: An authorization code to charge. @@ -12645,20 +12861,24 @@ components: description: 4-digit PIN (send with a non-reusable authorization code) type: string reference: - description: Unique transaction reference. Only -, .`, = and alphanumeric characters allowed. + description: + Unique transaction reference. Only -, .`, = and alphanumeric + characters allowed. type: string birthday: description: The customer's birthday in the format YYYY-MM-DD e.g 2017-05-16 type: string format: date-time device_id: - description: |- - This is the unique identifier of the device a user uses in making payment. + description: >- + This is the unique identifier of the device a user uses in making + payment. + Only -, .`, = and alphanumeric characters are allowed. type: string metadata: - description: Stringified JSON object of custom data - type: string + description: JSON object of custom data + type: object Bank: type: object properties: @@ -12675,7 +12895,9 @@ components: description: Customer's phone number type: string provider: - description: The telco provider of customer's phone number. This can be fetched from the List Bank endpoint + description: + The telco provider of customer's phone number. This can be fetched + from the List Bank endpoint type: string USSD: type: object @@ -12684,10 +12906,10 @@ components: description: The three-digit USSD code. type: string enum: - - 737 - - 919 - - 822 - - 966 + - "737" + - "919" + - "822" + - "966" EFT: type: object properties: @@ -12737,14 +12959,56 @@ components: custom_fields: type: array items: - $ref: '#/components/schemas/MetadataCustomFieldsArray' + $ref: "#/components/schemas/MetadataCustomFieldsArray" required: - custom_fields log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history nullable: true fees: type: integer fees_split: + type: integer nullable: true authorization: type: object @@ -12896,7 +13160,7 @@ components: - reference properties: pin: - description: Customer's PIN + description: Customer's PIN for the ongoing transaction type: string reference: description: Transaction reference that requires the PIN @@ -12911,52 +13175,39 @@ components: data: type: object properties: - id: - type: integer - domain: - type: string status: type: string - reference: - type: string - receipt_number: - nullable: true amount: type: integer - message: - nullable: true - gateway_response: - type: string - paid_at: + currency: type: string - created_at: + transaction_date: type: string - channel: + reference: type: string - currency: + domain: type: string - ip_address: + redirect_url: type: string + nullable: true metadata: type: object - properties: - custom_fields: - type: array - items: - $ref: '#/components/schemas/MetadataCustomFieldsArray' - required: - - custom_fields - log: + gateway_response: + type: string + message: + type: string nullable: true + channel: + type: string fees: type: integer - fees_split: nullable: true authorization: type: object properties: authorization_code: type: string + nullable: true bin: type: string last4: @@ -12979,12 +13230,6 @@ components: type: boolean signature: type: string - account_name: - nullable: true - receiver_bank_account_number: - nullable: true - receiver_bank: - nullable: true required: - authorization_code - bin @@ -12998,99 +13243,46 @@ components: - brand - reusable - signature - - account_name - - receiver_bank_account_number - - receiver_bank customer: type: object properties: - id: - type: integer first_name: type: string + nullable: true last_name: type: string + nullable: true email: type: string customer_code: type: string phone: type: string - metadata: - type: object + nullable: true risk_action: type: string - international_format_phone: - type: string required: - - id - first_name - last_name - email - customer_code - phone - - metadata - risk_action - - international_format_phone - plan: - nullable: true - split: - type: object - order_id: - nullable: true - paidAt: - type: string - createdAt: - type: string - requested_amount: - type: integer - pos_transaction_data: - nullable: true - source: - nullable: true - fees_breakdown: - nullable: true - connect: - nullable: true - transaction_date: - type: string - plan_object: - type: object - subaccount: - type: object required: - - id - - domain - status - - reference - - receipt_number - amount - - message - - gateway_response - - paid_at - - created_at - - channel - currency - - ip_address + - transaction_date + - reference + - domain + - redirect_url - metadata - - log + - gateway_response + - message + - channel - fees - - fees_split - authorization - customer - - plan - - split - - order_id - - paidAt - - createdAt - - requested_amount - - pos_transaction_data - - source - - fees_breakdown - - connect - - transaction_date - - plan_object - - subaccount required: - status - message @@ -13102,7 +13294,7 @@ components: - reference properties: otp: - description: Customer's OTP + description: Customer's OTP for ongoing transaction type: string reference: description: The reference of the ongoing transaction @@ -13117,52 +13309,39 @@ components: data: type: object properties: - id: - type: integer - domain: - type: string status: type: string - reference: - type: string - receipt_number: - nullable: true amount: type: integer - message: - nullable: true - gateway_response: - type: string - paid_at: + currency: type: string - created_at: + transaction_date: type: string - channel: + reference: type: string - currency: + domain: type: string - ip_address: + redirect_url: type: string + nullable: true metadata: type: object - properties: - custom_fields: - type: array - items: - $ref: '#/components/schemas/MetadataCustomFieldsArray' - required: - - custom_fields - log: + gateway_response: + type: string + message: + type: string nullable: true + channel: + type: string fees: type: integer - fees_split: nullable: true authorization: type: object properties: authorization_code: type: string + nullable: true bin: type: string last4: @@ -13185,12 +13364,6 @@ components: type: boolean signature: type: string - account_name: - nullable: true - receiver_bank_account_number: - nullable: true - receiver_bank: - nullable: true required: - authorization_code - bin @@ -13204,99 +13377,46 @@ components: - brand - reusable - signature - - account_name - - receiver_bank_account_number - - receiver_bank customer: type: object properties: - id: - type: integer first_name: type: string + nullable: true last_name: type: string + nullable: true email: type: string customer_code: type: string phone: type: string - metadata: - type: object + nullable: true risk_action: type: string - international_format_phone: - type: string required: - - id - first_name - last_name - email - customer_code - phone - - metadata - risk_action - - international_format_phone - plan: - nullable: true - split: - type: object - order_id: - nullable: true - paidAt: - type: string - createdAt: - type: string - requested_amount: - type: integer - pos_transaction_data: - nullable: true - source: - nullable: true - fees_breakdown: - nullable: true - connect: - nullable: true - transaction_date: - type: string - plan_object: - type: object - subaccount: - type: object required: - - id - - domain - status - - reference - - receipt_number - amount - - message - - gateway_response - - paid_at - - created_at - - channel - currency - - ip_address + - transaction_date + - reference + - domain + - redirect_url - metadata - - log + - gateway_response + - message + - channel - fees - - fees_split - authorization - customer - - plan - - split - - order_id - - paidAt - - createdAt - - requested_amount - - pos_transaction_data - - source - - fees_breakdown - - connect - - transaction_date - - plan_object - - subaccount required: - status - message @@ -13323,15 +13443,116 @@ components: data: type: object properties: + status: + type: string + amount: + type: integer + currency: + type: string + transaction_date: + type: string reference: type: string - status: + domain: + type: string + redirect_url: + type: string + nullable: true + metadata: + type: object + gateway_response: type: string + message: + type: string + nullable: true + channel: + type: string + fees: + type: integer + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + nullable: true + bin: + type: string + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + customer: + type: object + properties: + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + risk_action: + type: string + required: + - first_name + - last_name + - email + - customer_code + - phone + - risk_action display_text: type: string required: - - reference - status + - amount + - currency + - transaction_date + - reference + - domain + - redirect_url + - metadata + - gateway_response + - message + - channel + - fees + - authorization + - customer - display_text required: - status @@ -13377,7 +13598,7 @@ components: - reference - city - state - - zipcode + - zip_code properties: address: description: Customer's address @@ -13388,7 +13609,7 @@ components: state: description: Customer's state type: string - zipcode: + zip_code: description: Customer's zipcode type: string reference: @@ -13404,58 +13625,41 @@ components: data: type: object properties: - id: + status: + type: string + amount: type: integer - domain: + currency: type: string - status: + transaction_date: type: string reference: type: string - receipt_number: + domain: type: string - nullable: true - amount: - type: integer - message: + redirect_url: type: string nullable: true + metadata: + type: object gateway_response: type: string - paid_at: - type: string - created_at: + message: type: string + nullable: true channel: type: string - currency: - type: string - ip_address: - type: string - metadata: - type: object - properties: - custom_fields: - type: array - items: - $ref: '#/components/schemas/MetadataCustomFieldsArray' - required: - - custom_fields - log: - nullable: true fees: type: integer nullable: true - fees_split: - nullable: true authorization: type: object properties: authorization_code: type: string + nullable: true bin: type: string - nullable: true last4: type: string exp_month: @@ -13476,12 +13680,6 @@ components: type: boolean signature: type: string - account_name: - nullable: true - receiver_bank_account_number: - nullable: true - receiver_bank: - nullable: true required: - authorization_code - bin @@ -13495,14 +13693,9 @@ components: - brand - reusable - signature - - account_name - - receiver_bank_account_number - - receiver_bank customer: type: object properties: - id: - type: integer first_name: type: string nullable: true @@ -13516,83 +13709,30 @@ components: phone: type: string nullable: true - metadata: - type: object - nullable: true risk_action: type: string - international_format_phone: - type: string - nullable: true required: - - id - first_name - last_name - email - customer_code - phone - - metadata - risk_action - - international_format_phone - plan: - nullable: true - split: - type: object - order_id: - nullable: true - paidAt: - type: string - createdAt: - type: string - requested_amount: - type: integer - pos_transaction_data: - nullable: true - source: - nullable: true - fees_breakdown: - nullable: true - connect: - nullable: true - transaction_date: - type: string - plan_object: - type: object - subaccount: - type: object required: - - id - - domain - status - - reference - - receipt_number - amount - - message - - gateway_response - - paid_at - - created_at - - channel - currency - - ip_address + - transaction_date + - reference + - domain + - redirect_url - metadata - - log + - gateway_response + - message + - channel - fees - - fees_split - authorization - customer - - plan - - split - - order_id - - paidAt - - createdAt - - requested_amount - - pos_transaction_data - - source - - fees_breakdown - - connect - - transaction_date - - plan_object - - subaccount required: - status - message @@ -13638,7 +13778,7 @@ components: data: type: array items: - $ref: '#/components/schemas/BulkChargeListResponseArray' + $ref: "#/components/schemas/BulkChargeListResponseArray" meta: type: object properties: @@ -13677,7 +13817,23 @@ components: type: string amount: description: Amount to charge on the authorization + type: integer + reference: + description: + Unique reference containing only -, .`, = and alphanumeric + characters. type: string + attempt_partial_debit: + description: + A flag to indicate if you want us to try recouping lower amounts + when the customer has insufficient fund + type: boolean + at_least: + description: Minimum amount to charge if the attempt_partial_debit flag is set + type: integer + metadata: + description: JSON object of custom data + type: object BulkChargeInitiateResponse: type: object properties: @@ -13868,7 +14024,7 @@ components: custom_fields: type: array items: - $ref: '#/components/schemas/MetadataCustomFieldsArray' + $ref: "#/components/schemas/MetadataCustomFieldsArray" required: - custom_fields status: @@ -13910,7 +14066,7 @@ components: data: type: array items: - $ref: '#/components/schemas/BulkChargeFetchBulkBatchChargesResponseArray' + $ref: "#/components/schemas/BulkChargeFetchBulkBatchChargesResponseArray" meta: type: object properties: @@ -13964,7 +14120,7 @@ components: timeout: description: Time in seconds before a transaction becomes invalid type: string - example: '30' + example: "30" RefundListResponseArray: type: object properties: @@ -14087,7 +14243,7 @@ components: data: type: array items: - $ref: '#/components/schemas/RefundListResponseArray' + $ref: "#/components/schemas/RefundListResponseArray" meta: type: object properties: @@ -14125,8 +14281,10 @@ components: description: Transaction reference or id type: string amount: - description: |- - Amount ( in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR ) to be refunded to the customer. + description: >- + Amount ( in kobo if currency is NGN, pesewas, if currency is GHS, + and cents, if currency is ZAR ) to be refunded to the customer. + Amount cannot be more than the original transaction amount type: integer currency: @@ -14472,14 +14630,56 @@ components: custom_fields: type: array items: - $ref: '#/components/schemas/MetadataCustomFieldsArray' + $ref: "#/components/schemas/MetadataCustomFieldsArray" required: - custom_fields log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history nullable: true fees: type: integer fees_split: + type: integer nullable: true authorization: type: object @@ -14587,11 +14787,11 @@ components: history: type: array items: - $ref: '#/components/schemas/DisputeHistoryArray' + $ref: "#/components/schemas/DisputeHistoryArray" messages: type: array items: - $ref: '#/components/schemas/DisputeMessagesArray' + $ref: "#/components/schemas/DisputeMessagesArray" createdAt: type: string updatedAt: @@ -14628,7 +14828,7 @@ components: data: type: array items: - $ref: '#/components/schemas/DisputeListResponseArray' + $ref: "#/components/schemas/DisputeListResponseArray" meta: type: object properties: @@ -14712,14 +14912,56 @@ components: custom_fields: type: array items: - $ref: '#/components/schemas/MetadataCustomFieldsArray' + $ref: "#/components/schemas/MetadataCustomFieldsArray" required: - custom_fields log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history nullable: true fees: type: integer fees_split: + type: integer nullable: true authorization: type: object @@ -14842,11 +15084,11 @@ components: history: type: array items: - $ref: '#/components/schemas/DisputeHistoryArray' + $ref: "#/components/schemas/DisputeHistoryArray" messages: type: array items: - $ref: '#/components/schemas/DisputeMessagesArray' + $ref: "#/components/schemas/DisputeMessagesArray" createdAt: type: string updatedAt: @@ -14883,10 +15125,14 @@ components: - refund_amount properties: refund_amount: - description: The amount to refund, in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR + description: + The amount to refund, in kobo if currency is NGN, pesewas, if + currency is GHS, and cents, if currency is ZAR type: string uploaded_filename: - description: Filename of attachment returned via response from the Dispute upload URL + description: + Filename of attachment returned via response from the Dispute + upload URL type: string DisputeUpdateResponse: type: object @@ -14946,14 +15192,56 @@ components: custom_fields: type: array items: - $ref: '#/components/schemas/MetadataCustomFieldsArray' + $ref: "#/components/schemas/MetadataCustomFieldsArray" required: - custom_fields log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history nullable: true fees: type: integer fees_split: + type: integer nullable: true authorization: type: object @@ -15076,11 +15364,11 @@ components: history: type: array items: - $ref: '#/components/schemas/DisputeHistoryArray' + $ref: "#/components/schemas/DisputeHistoryArray" messages: type: array items: - $ref: '#/components/schemas/DisputeMessagesArray' + $ref: "#/components/schemas/DisputeMessagesArray" createdAt: type: string updatedAt: @@ -15166,11 +15454,11 @@ components: history: type: array items: - $ref: '#/components/schemas/DisputeHistoryArray' + $ref: "#/components/schemas/DisputeHistoryArray" messages: type: array items: - $ref: '#/components/schemas/DisputeMessagesArray' + $ref: "#/components/schemas/DisputeMessagesArray" currency: type: string last4: @@ -15235,14 +15523,56 @@ components: custom_fields: type: array items: - $ref: '#/components/schemas/MetadataCustomFieldsArray' + $ref: "#/components/schemas/MetadataCustomFieldsArray" required: - custom_fields log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history nullable: true fees: type: integer fees_split: + type: integer nullable: true authorization: type: object @@ -15369,10 +15699,14 @@ components: description: Reason for resolving type: string refund_amount: - description: The amount to refund, in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR + description: + The amount to refund, in kobo if currency is NGN, pesewas, if + currency is GHS, and cents, if currency is ZAR type: string uploaded_filename: - description: Filename of attachment returned via response from the Dispute upload URL + description: + Filename of attachment returned via response from the Dispute + upload URL type: string evidence: description: Evidence Id for fraud claims @@ -15568,6 +15902,8 @@ components: type: boolean supports_transfer: type: boolean + available_for_direct_debit: + type: boolean active: type: boolean is_deleted: @@ -15593,6 +15929,7 @@ components: - gateway - pay_with_bank - supports_transfer + - available_for_direct_debit - active - is_deleted - country @@ -15611,7 +15948,7 @@ components: data: type: array items: - $ref: '#/components/schemas/MiscellaneousListBanksResponseArray' + $ref: "#/components/schemas/MiscellaneousListBanksResponseArray" required: - status - message @@ -15663,7 +16000,9 @@ components: - personal - business bank_code: - description: The bank code of the customer’s bank. You can fetch the bank codes by using our List Banks endpoint + description: + The bank code of the customer’s bank. You can fetch the bank codes + by using our List Banks endpoint type: string country_code: description: The two digit ISO code of the customer’s bank @@ -15692,9 +16031,24 @@ components: type: boolean verificationMessage: type: string + accountAcceptsDebits: + type: boolean + accountAcceptsCredits: + type: boolean + accountOpenForMoreThanThreeMonths: + type: boolean + accountHolderMatch: + type: boolean + accountOpen: + type: boolean required: - verified - verificationMessage + - accountAcceptsDebits + - accountAcceptsCredits + - accountOpenForMoreThanThreeMonths + - accountHolderMatch + - accountOpen required: - status - message @@ -15884,52 +16238,6979 @@ components: properties: type: type: string - data: - type: array - items: {} + data: + type: array + items: {} + required: + - type + - data + integration_type: + type: object + properties: + type: + type: string + data: + type: array + items: + type: string + required: + - type + - data + payment_method: + type: object + properties: + type: + type: string + data: + type: array + items: + type: string + required: + - type + - data + required: + - currency + - integration_feature + - integration_type + - payment_method + required: + - id + - active_for_dashboard_onboarding + - name + - iso_code + - default_currency_code + - integration_defaults + - calling_code + - pilot_mode + - relationships + MiscellaneousListCountriesResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: "#/components/schemas/MiscellaneousListCountriesResponseArray" + required: + - status + - message + - data + MiscellaneousListStatesResponseArray: + type: object + properties: + name: + type: string + slug: + type: string + abbreviation: + type: string + required: + - name + - slug + - abbreviation + MiscellaneousListStatesResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: "#/components/schemas/MiscellaneousListStatesResponseArray" + required: + - status + - message + - data + MetadataCustomFieldsArray: + type: object + properties: + value: + type: string + display_name: + type: string + variable_name: + type: string + required: + - value + - display_name + - variable_name + ChargeAuthorizationResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + amount: + type: integer + currency: + type: string + transaction_date: + type: string + status: + type: string + reference: + type: string + domain: + type: string + metadata: + type: string + gateway_response: + type: string + message: + type: string + nullable: true + channel: + type: string + ip_address: + nullable: true + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + nullable: true + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + metadata: + type: object + properties: + calling_code: + type: string + nullable: true + risk_action: + type: string + international_format_phone: + type: string + nullable: true + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + nullable: true + id: + type: integer + required: + - amount + - currency + - transaction_date + - status + - reference + - domain + - metadata + - gateway_response + - message + - channel + - ip_address + - log + - fees + - authorization + - customer + - plan + - id + required: + - status + - message + - data + ChargeMobileMoneyResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + transaction: + type: integer + phone: + type: string + provider: + type: string + channel_name: + type: string + display: + type: object + properties: + type: + type: string + message: + type: string + timer: + type: integer + required: + - type + - message + - timer + required: + - transaction + - phone + - provider + - channel_name + - display + required: + - status + - message + - data + ControlPanelFetchPaymentSessionTimeoutResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + payment_session_timeout: + type: integer + required: + - payment_session_timeout + required: + - status + - message + - data + ControlPanelUpdatePaymentSessionTimeoutResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + payment_session_timeout: + type: integer + required: + - payment_session_timeout + required: + - status + - message + - data + InitializeAuthorizationCardResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + authorizationAccessCode: + type: string + action: + type: string + value: + type: string + required: + - authorizationAccessCode + - action + - value + required: + - status + - message + - data + InitializeAuthorizationDirectdebitResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + redirect_url: + type: string + access_code: + type: string + reference: + type: string + required: + - redirect_url + - access_code + - reference + required: + - status + - message + - data + VerifyAuthorizationCardResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + status: + type: string + advise: + type: string + message: + type: string + authorizationCode: + type: string + customerEmail: + type: string + description: The customer email used to initialize authorization + required: + - status + - advise + - message + - authorizationCode + - customerEmail + required: + - status + - message + - data + VerifyAuthorizationDirectdebitResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + authorization_code: + type: string + domain: + type: string + active: + type: boolean + last4: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + exp_month: + type: integer + exp_year: + type: integer + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + type: string + customer: + type: object + properties: + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + code: + type: string + email: + type: string + description: The customer email used to initialize the authorization + phone: + type: string + nullable: true + metadata: + type: object + nullable: true + risk_action: + type: string + required: + - first_name + - last_name + - code + - email + - phone + - metadata + - risk_action + required: + - authorization_code + - domain + - active + - last4 + - channel + - card_type + - bank + - exp_month + - exp_year + - country_code + - brand + - reusable + - signature + - account_name + - customer + required: + - status + - message + - data + CustomerWhitelistBlacklistResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + transactions: + type: array + items: {} + subscriptions: + type: array + items: {} + authorizations: + type: array + items: {} + first_name: + type: string + last_name: + type: string + email: + type: string + phone: + type: string + metadata: + type: object + domain: + type: string + customer_code: + type: string + risk_action: + type: string + id: + type: integer + integration: + type: integer + createdAt: + type: string + updatedAt: + type: string + identified: + type: boolean + identifications: + nullable: true + required: + - transactions + - subscriptions + - authorizations + - first_name + - last_name + - email + - phone + - metadata + - domain + - customer_code + - risk_action + - id + - integration + - createdAt + - updatedAt + - identified + - identifications + required: + - status + - message + - data + DedicatedNubanListResponseArray: + type: object + properties: + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + risk_action: + type: string + international_format_phone: + type: string + nullable: true + bank: + type: object + properties: + name: + type: string + id: + type: integer + slug: + type: string + required: + - name + - id + - slug + id: + type: integer + account_name: + type: string + account_number: + type: string + created_at: + type: string + updated_at: + type: string + currency: + type: string + split_config: + type: object + properties: + subaccount: + type: string + required: + - subaccount + nullable: true + active: + type: boolean + assigned: + type: boolean + required: + - customer + - bank + - id + - account_name + - account_number + - created_at + - updated_at + - currency + - split_config + - active + - assigned + DedicatedNubanListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: "#/components/schemas/DedicatedNubanListResponseArray" + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + EftDebitOrderCreateMandateResponse: + type: object + properties: + status: + type: boolean + type: + type: string + code: + type: string + message: + type: string + data: + type: object + properties: + id: + type: integer + mandate_code: + type: string + domain: + type: string + customer_id: + type: integer + customer_email: + type: string + account_bank_name: + type: string + account_bank_code: + type: string + account_holder_name: + type: string + account_number: + type: string + account_type: + type: string + currency: + type: string + amount: + type: integer + entry_class: + type: string + frequency: + type: string + collection_day: + type: integer + contract_type: + type: string + contract_reference: + type: string + status: + type: string + created_at: + type: string + updated_at: + type: string + required: + - id + - mandate_code + - domain + - customer_id + - customer_email + - account_bank_name + - account_bank_code + - account_holder_name + - account_number + - account_type + - currency + - amount + - entry_class + - frequency + - collection_day + - contract_type + - contract_reference + - status + - created_at + - updated_at + required: + - status + - type + - code + - message + - data + EftDebitOrderFetchMandateResponse: + type: object + properties: + status: + type: boolean + type: + type: string + code: + type: string + message: + type: string + data: + type: object + properties: + id: + type: integer + mandate_code: + type: string + domain: + type: string + customer_id: + type: integer + customer_email: + type: string + account_bank_name: + type: string + account_bank_code: + type: string + account_holder_name: + type: string + account_number: + type: string + account_type: + type: string + currency: + type: string + amount: + type: integer + entry_class: + type: string + frequency: + type: string + collection_day: + type: integer + contract_type: + type: string + contract_reference: + type: string + status: + type: string + created_at: + type: string + updated_at: + type: string + required: + - id + - mandate_code + - domain + - customer_id + - customer_email + - account_bank_name + - account_bank_code + - account_holder_name + - account_number + - account_type + - currency + - amount + - entry_class + - frequency + - collection_day + - contract_type + - contract_reference + - status + - created_at + - updated_at + required: + - status + - type + - code + - message + - data + EftDebitOrderListMandateResponseArray: + type: object + properties: + id: + type: integer + mandate_code: + type: string + domain: + type: string + customer_id: + type: integer + customer_email: + type: string + account_bank_name: + type: string + account_bank_code: + type: string + account_holder_name: + type: string + account_number: + type: string + account_type: + type: string + currency: + type: string + amount: + type: integer + entry_class: + type: string + frequency: + type: string + collection_day: + type: integer + contract_type: + type: string + contract_reference: + type: string + status: + type: string + created_at: + type: string + updated_at: + type: string + required: + - id + - mandate_code + - domain + - customer_id + - customer_email + - account_bank_name + - account_bank_code + - account_holder_name + - account_number + - account_type + - currency + - amount + - entry_class + - frequency + - collection_day + - contract_type + - contract_reference + - status + - created_at + - updated_at + EftDebitOrderListMandateResponse: + type: object + properties: + status: + type: boolean + type: + type: string + code: + type: string + message: + type: string + data: + type: array + items: + $ref: "#/components/schemas/EftDebitOrderListMandateResponseArray" + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - type + - code + - message + - data + - meta + EftDebitOrderLogMandateResponseArray: + type: object + properties: + id: + type: integer + action: + type: string + performed_by: + nullable: true + ip_address: + type: string + domain: + type: string + integration: + type: integer + object: + type: object + properties: + id: + type: integer + mandate_code: + type: string + domain: + type: string + customer_id: + type: integer + customer_email: + type: string + account_bank_name: + type: string + account_bank_code: + type: string + account_holder_name: + type: string + account_number: + type: string + account_type: + type: string + currency: + type: string + amount: + type: integer + entry_class: + type: string + frequency: + type: string + collection_day: + type: integer + contract_type: + type: string + contract_reference: + type: string + status: + type: string + created_at: + type: string + updated_at: + type: string + required: + - id + - mandate_code + - domain + - customer_id + - customer_email + - account_bank_name + - account_bank_code + - account_holder_name + - account_number + - account_type + - currency + - amount + - entry_class + - frequency + - collection_day + - contract_type + - contract_reference + - status + - created_at + - updated_at + delta: + nullable: true + created_at: + type: string + updated_at: + type: string + required: + - id + - action + - performed_by + - ip_address + - domain + - integration + - object + - delta + - created_at + - updated_at + EftDebitOrderLogMandateResponse: + type: object + properties: + status: + type: boolean + type: + type: string + code: + type: string + message: + type: string + data: + type: array + items: + $ref: "#/components/schemas/EftDebitOrderLogMandateResponseArray" + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - type + - code + - message + - data + - meta + EftDebitOrderUpdateMandateResponse: + type: object + properties: + status: + type: boolean + type: + type: string + code: + type: string + message: + type: string + data: + type: object + properties: + id: + type: integer + mandate_code: + type: string + domain: + type: string + customer_id: + type: integer + customer_email: + type: string + account_bank_name: + type: string + account_bank_code: + type: string + account_holder_name: + type: string + account_number: + type: string + account_type: + type: string + currency: + type: string + amount: + type: integer + entry_class: + type: string + frequency: + type: string + collection_day: + type: integer + contract_type: + type: string + contract_reference: + type: string + status: + type: string + created_at: + type: string + updated_at: + type: string + required: + - id + - mandate_code + - domain + - customer_id + - customer_email + - account_bank_name + - account_bank_code + - account_holder_name + - account_number + - account_type + - currency + - amount + - entry_class + - frequency + - collection_day + - contract_type + - contract_reference + - status + - created_at + - updated_at + required: + - status + - type + - code + - message + - data + PaymentRequestViewResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + transactions: + type: array + items: {} + domain: + type: string + request_code: + type: string + description: + nullable: true + line_items: + type: array + items: {} + tax: + type: array + items: {} + amount: + type: integer + discount: + nullable: true + currency: + type: string + due_date: + type: string + nullable: true + status: + type: string + paid: + type: boolean + paid_at: + nullable: true + metadata: + nullable: true + has_invoice: + type: boolean + invoice_number: + type: integer + nullable: true + offline_reference: + type: string + pdf_url: + type: string + nullable: true + notifications: + type: array + items: + $ref: "#/components/schemas/PaymentRequestNotificationsArray" + archived: + type: boolean + source: + type: string + payment_method: + nullable: true + note: + nullable: true + amount_paid: + nullable: true + split_code: + nullable: true + id: + type: integer + integration: + type: integer + customer: + type: object + properties: + transactions: + type: array + items: {} + subscriptions: + type: array + items: {} + authorizations: + type: array + items: {} + first_name: + type: string + last_name: + type: string + email: + type: string + phone: + type: string + metadata: + type: object + properties: + calling_code: + type: string + domain: + type: string + customer_code: + type: string + risk_action: + type: string + id: + type: integer + integration: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - transactions + - subscriptions + - authorizations + - first_name + - last_name + - email + - phone + - metadata + - domain + - customer_code + - risk_action + - id + - integration + - createdAt + - updatedAt + createdAt: + type: string + updatedAt: + type: string + pending_amount: + type: integer + required: + - transactions + - domain + - request_code + - description + - line_items + - tax + - amount + - discount + - currency + - due_date + - status + - paid + - paid_at + - metadata + - has_invoice + - invoice_number + - offline_reference + - pdf_url + - notifications + - archived + - source + - payment_method + - note + - amount_paid + - split_code + - id + - integration + - customer + - createdAt + - updatedAt + - pending_amount + required: + - status + - message + - data + MiscellaneousListProvidersResponseArray: + type: object + properties: + id: + type: integer + name: + type: string + slug: + type: string + code: + type: string + longcode: + type: string + gateway: + nullable: true + pay_with_bank: + type: boolean + supports_transfer: + type: boolean + available_for_direct_debit: + type: boolean + active: + type: boolean + country: + type: string + currency: + type: string + type: + type: string + is_deleted: + type: boolean + createdAt: + type: string + updatedAt: + type: string + required: + - id + - name + - slug + - code + - longcode + - gateway + - pay_with_bank + - supports_transfer + - available_for_direct_debit + - active + - country + - currency + - type + - is_deleted + - createdAt + - updatedAt + MiscellaneousListProvidersResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: "#/components/schemas/MiscellaneousListProvidersResponseArray" + required: + - status + - message + - data + OrderCancelResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + OrderDeliverResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + OrderRefundResponse: + type: object + properties: + status: + type: boolean + message: + type: string + required: + - status + - message + PaymentChannelCreateBankChargeResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + reference: + type: string + status: + type: string + display_text: + type: string + required: + - reference + - status + - display_text + required: + - status + - message + - data + PaymentChannelCreateDirectDebitChargeResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + receipt_number: + type: string + amount: + type: integer + message: + type: string + gateway_response: + type: string + paid_at: + type: string + created_at: + type: string + channel: + type: string + currency: + type: string + ip_address: + type: string + metadata: + type: object + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + nullable: true + fees_split: + type: integer + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + bin: + nullable: true + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + nullable: true + receiver_bank_account_number: + type: string + nullable: true + receiver_bank: + type: string + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + - receiver_bank_account_number + - receiver_bank + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + metadata: + type: object + nullable: true + risk_action: + type: string + international_format_phone: + type: string + nullable: true + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + type: string + nullable: true + split: + type: object + order_id: + type: string + nullable: true + paidAt: + type: string + createdAt: + type: string + requested_amount: + type: integer + pos_transaction_data: + nullable: true + source: + type: string + nullable: true + fees_breakdown: + type: string + nullable: true + connect: + type: string + nullable: true + transaction_date: + type: string + plan_object: + type: object + subaccount: + type: object + required: + - id + - domain + - status + - reference + - receipt_number + - amount + - message + - gateway_response + - paid_at + - created_at + - channel + - currency + - ip_address + - metadata + - log + - fees + - fees_split + - authorization + - customer + - plan + - split + - order_id + - paidAt + - createdAt + - requested_amount + - pos_transaction_data + - source + - fees_breakdown + - connect + - transaction_date + - plan_object + - subaccount + required: + - status + - message + - data + PaymentChannelCreateEFTChargeResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + reference: + type: string + status: + type: string + url: + type: string + required: + - reference + - status + - url + required: + - status + - message + - data + PaymentChannelCreateMobileMoneyChargeResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + receipt_number: + type: string + amount: + type: integer + message: + nullable: true + gateway_response: + type: string + paid_at: + type: string + created_at: + type: string + channel: + type: string + currency: + type: string + ip_address: + type: string + metadata: + type: object + properties: + custom_fields: + type: array + items: + $ref: "#/components/schemas/MetadataCustomFieldsArray" + required: + - custom_fields + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + fees_split: + type: integer + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + nullable: true + account_name: + nullable: true + mobile_money_number: + type: string + receiver_bank_account_number: + nullable: true + receiver_bank: + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + - mobile_money_number + - receiver_bank_account_number + - receiver_bank + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + nullable: true + split: + type: object + order_id: + nullable: true + paidAt: + type: string + createdAt: + type: string + requested_amount: + type: integer + pos_transaction_data: + nullable: true + source: + nullable: true + fees_breakdown: + nullable: true + connect: + type: object + nullable: true + transaction_date: + type: string + plan_object: + type: object + subaccount: + type: object + required: + - id + - domain + - status + - reference + - receipt_number + - amount + - message + - gateway_response + - paid_at + - created_at + - channel + - currency + - ip_address + - metadata + - log + - fees + - fees_split + - authorization + - customer + - plan + - split + - order_id + - paidAt + - createdAt + - requested_amount + - pos_transaction_data + - source + - fees_breakdown + - connect + - transaction_date + - plan_object + - subaccount + required: + - status + - message + - data + PaymentChannelCreatePayWithTransferChargeResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + status: + type: string + display_text: + type: string + reference: + type: string + account_name: + type: string + account_number: + type: string + bank: + type: object + properties: + slug: + type: string + name: + type: string + id: + type: integer + required: + - slug + - name + - id + account_expires_at: + type: string + required: + - status + - display_text + - reference + - account_name + - account_number + - bank + - account_expires_at + required: + - status + - message + - data + PaymentChannelCreateQRChargeResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + reference: + type: string + status: + type: string + qr_code: + type: string + url: + type: string + message: + type: string + required: + - reference + - status + required: + - status + - message + - data + PaymentChannelCreateUSSDChargeResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + reference: + type: string + status: + type: string + display_text: + type: string + ussd_code: + type: string + required: + - reference + - status + - display_text + - ussd_code + required: + - status + - message + - data + FormulaSubaccountsArray: + type: object + properties: + original_share: + type: number + fees: + type: integer + share: + type: integer + subaccount_code: + type: string + id: + type: integer + name: + type: string + integration: + type: string + required: + - original_share + - fees + - share + - subaccount_code + - id + - name + - integration + ShareSubaccountsArray: + type: object + properties: + amount: + type: integer + original_share: + type: number + fees: + type: integer + subaccount_code: + type: string + id: + type: integer + integration: + type: string + required: + - amount + - original_share + - fees + - subaccount_code + - id + - integration + PreAuthorizationCaptureResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + amount: + type: integer + status: + type: string + gateway_response: + type: string + transaction: + type: object + properties: + currency: + type: string + transaction_date: + type: string + status: + type: string + reference: + type: string + domain: + type: string + metadata: + type: integer + gateway_response: + type: string + message: + type: string + nullable: true + channel: + type: string + fees: + type: integer + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + type: string + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + id: + type: integer + split: + type: object + properties: + id: + type: integer + name: + type: string + split_code: + type: string + formula: + type: object + properties: + type: + type: string + bearer_type: + type: string + bearer_subaccount: + type: integer + subaccounts: + type: array + items: + $ref: "#/components/schemas/FormulaSubaccountsArray" + integration: + type: integer + required: + - type + - bearer_type + - bearer_subaccount + - subaccounts + - integration + shares: + type: object + properties: + paystack: + type: integer + subaccounts: + type: array + items: + $ref: "#/components/schemas/ShareSubaccountsArray" + integration: + type: number + original_share: + type: integer + fees: + type: number + required: + - paystack + - subaccounts + - integration + - original_share + - fees + required: + - id + - name + - split_code + - formula + - shares + required: + - currency + - transaction_date + - status + - reference + - domain + - metadata + - gateway_response + - message + - channel + - fees + - authorization + - customer + - id + amount_released: + type: integer + split_code: + type: string + nullable: true + split: + type: object + properties: + type: + type: string + bearer_type: + type: string + subaccounts: + type: array + items: + $ref: "#/components/schemas/SplitSubaccountsArray" + required: + - type + - bearer_type + - subaccounts + nullable: true + required: + - amount + - status + - gateway_response + - transaction + - split_code + - split + required: + - status + - message + - data + PreAuthorizationInitializeResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + authorization_url: + type: string + access_code: + type: string + reference: + type: string + required: + - authorization_url + - access_code + - reference + required: + - status + - message + - data + PreAuthorizationListResponseArray: + type: object + properties: + domain: + type: string + status: + type: string + reference: + type: string + amount: + type: integer + created_at: + type: string + transaction_id: + type: string + nullable: true + captured_at: + type: string + nullable: true + released_at: + type: string + nullable: true + currency: + type: string + fees: + type: integer + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + id: + type: integer + required: + - domain + - status + - reference + - amount + - created_at + - transaction_id + - captured_at + - released_at + - currency + - fees + - id + PreAuthorizationListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: "#/components/schemas/PreAuthorizationListResponseArray" + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + PreAuthorizationReleaseResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + status: + type: string + reference: + type: string + required: + - status + - reference + required: + - status + - message + - data + PreAuthorizationReserveWithAuthCodeResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + amount: + type: integer + message: + type: string + created_at: + type: string + released_at: + type: string + nullable: true + authorized_at: + type: string + nullable: true + expiry_date: + type: string + nullable: true + currency: + type: string + metadata: + type: object + nullable: true + fees: + type: integer + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + type: string + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + merchant_id: + type: integer + merchant_name: + type: string + expire_action: + type: string + split_code: + type: string + nullable: true + split: + type: object + nullable: true + required: + - id + - domain + - status + - reference + - amount + - message + - created_at + - released_at + - authorized_at + - expiry_date + - currency + - metadata + - fees + - authorization + - customer + - merchant_id + - merchant_name + - expire_action + - split + - split_code + required: + - status + - message + - data + PreAuthorizationReserveWithSelfCheckoutResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + reference: + type: string + status: + type: string + message: + type: string + required: + - reference + - status + - message + required: + - status + - message + - data + PreAuthorizationVerifyResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + amount: + type: integer + message: + type: string + currency: + type: string + redirecturl: + type: string + required: + - id + - domain + - status + - reference + - amount + - message + - currency + required: + - status + - message + - data + PreAuthorizationViewResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + amount: + type: integer + message: + type: string + created_at: + type: string + released_at: + type: string + nullable: true + authorized_at: + type: string + nullable: true + expiry_date: + type: string + nullable: true + currency: + type: string + nullable: true + metadata: + type: string + nullable: true + fees: + type: integer + authorization: + type: object + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + merchant_id: + type: integer + merchant_name: + type: string + expire_action: + type: string + split_code: + type: string + nullable: true + split: + type: object + nullable: true + required: + - id + - domain + - status + - reference + - amount + - message + - created_at + - released_at + - authorized_at + - expiry_date + - currency + - metadata + - fees + - authorization + - customer + - merchant_id + - merchant_name + - expire_action + - split + - split_code + required: + - status + - message + - data + StorefrontDuplicateResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + social_media: + type: array + items: {} + contacts: + type: array + items: + $ref: "#/components/schemas/StorefrontContactsArray" + name: + type: string + slug: + type: string + currency: + type: string + welcome_message: + nullable: true + success_message: + nullable: true + redirect_url: + nullable: true + description: + nullable: true + delivery_note: + type: string + background_color: + type: string + status: + type: string + shippable: + type: boolean + integration: + type: integer + domain: + type: string + digital_product_expiry: + nullable: true + metadata: + type: object + nullable: true + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + products: + type: array + items: {} + shipping_fees: + type: array + items: {} + required: + - social_media + - contacts + - name + - slug + - currency + - welcome_message + - success_message + - redirect_url + - description + - delivery_note + - background_color + - status + - shippable + - integration + - domain + - digital_product_expiry + - id + - createdAt + - updatedAt + - products + - shipping_fees + required: + - status + - message + - data + StorefrontProductResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + name: + type: string + description: + type: string + currency: + type: string + price: + type: integer + quantity: + type: integer + is_shippable: + type: boolean + unlimited: + type: boolean + files: + type: array + items: {} + shipping_fields: + type: object + properties: + delivery_note: + type: string + shipping_address: + type: string + shipping_fees: + type: array + items: {} + required: + - delivery_note + - shipping_address + - shipping_fees + integration: + type: integer + domain: + type: string + metadata: + type: object + properties: + background_color: + type: string + required: + - background_color + slug: + type: string + product_code: + type: string + quantity_sold: + type: integer + type: + type: string + active: + type: boolean + in_stock: + type: boolean + minimum_orderable: + type: integer + maximum_orderable: + nullable: true + low_stock_alert: + type: boolean + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - name + - description + - currency + - price + - quantity + - is_shippable + - unlimited + - files + - shipping_fields + - integration + - domain + - metadata + - slug + - product_code + - quantity_sold + - type + - active + - in_stock + - minimum_orderable + - maximum_orderable + - low_stock_alert + - id + - createdAt + - updatedAt + required: + - status + - message + - data + StorefrontShippingResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + fee: + type: integer + name: + type: string + currency: + type: string + id: + type: integer + isDeleted: + type: boolean + createdAt: + type: string + updatedAt: + type: string + storefront: + type: integer + required: + - fee + - name + - currency + - id + - isDeleted + - createdAt + - updatedAt + - storefront + required: + - status + - message + - data + TerminalCountsResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + count: + type: integer + status: + type: string + required: + - count + - status + required: + - status + - message + - data + ChargeResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + status: + type: string + amount: + type: integer + currency: + type: string + transaction_date: + type: string + reference: + type: string + domain: + type: string + redirect_url: + type: string + nullable: true + metadata: + type: object + gateway_response: + type: string + message: + type: string + nullable: true + channel: + type: string + fees: + type: integer + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + nullable: true + bin: + type: string + nullable: true + last4: + type: string + nullable: true + exp_month: + type: string + exp_year: + type: string + channel: + type: string + nullable: true + card_type: + type: string + nullable: true + bank: + type: string + nullable: true + country_code: + type: string + nullable: true + brand: + type: string + nullable: true + reusable: + type: boolean + signature: + type: string + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + customer: + type: object + properties: + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + risk_action: + type: string + required: + - first_name + - last_name + - email + - customer_code + - phone + - risk_action + url: + type: string + required: + - status + - amount + - currency + - transaction_date + - reference + - domain + - redirect_url + - metadata + - gateway_response + - message + - channel + - fees + - authorization + - customer + required: + - status + - message + - data + TransactionCheckAuthorizationResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + amount: + type: integer + currency: + type: string + required: + - amount + - currency + required: + - status + - message + - data + TransactionExportResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + path: + type: string + expiresAt: + type: string + required: + - path + - expiresAt + required: + - status + - message + - data + TransactionFetchResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + receipt_number: + nullable: true + amount: + type: integer + message: + nullable: true + gateway_response: + type: string + helpdesk_link: + nullable: true + paid_at: + type: string + created_at: + type: string + channel: + type: string + currency: + type: string + ip_address: + type: string + metadata: + type: object + properties: + custom_fields: + type: array + items: + $ref: "#/components/schemas/MetadataCustomFieldsArray" + required: + - custom_fields + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + fees_split: + type: integer + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + nullable: true + receiver_bank_account_number: + nullable: true + receiver_bank: + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + - receiver_bank_account_number + - receiver_bank + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + type: object + subaccount: + type: object + split: + type: object + order_id: + nullable: true + paidAt: + type: string + createdAt: + type: string + requested_amount: + type: integer + pos_transaction_data: + nullable: true + source: + type: object + properties: + type: + type: string + source: + type: string + identifier: + nullable: true + required: + - type + - source + - identifier + fees_breakdown: + nullable: true + connect: + nullable: true + required: + - id + - domain + - status + - reference + - receipt_number + - amount + - message + - gateway_response + - helpdesk_link + - paid_at + - created_at + - channel + - currency + - ip_address + - metadata + - log + - fees + - fees_split + - authorization + - customer + - plan + - subaccount + - split + - order_id + - paidAt + - createdAt + - requested_amount + - pos_transaction_data + - source + - fees_breakdown + - connect + required: + - status + - message + - data + TransactionInitializeResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + authorization_url: + type: string + access_code: + type: string + reference: + type: string + required: + - authorization_url + - access_code + - reference + required: + - status + - message + - data + TransactionListResponseArray: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + amount: + type: integer + message: + nullable: true + gateway_response: + type: string + paid_at: + type: string + nullable: true + created_at: + type: string + channel: + type: string + currency: + type: string + ip_address: + type: string + nullable: true + metadata: + type: object + nullable: true + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + nullable: true + fees_split: + type: integer + nullable: true + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + phone: + type: string + nullable: true + metadata: + type: object + nullable: true + customer_code: + type: string + risk_action: + type: string + required: + - id + - first_name + - last_name + - email + - phone + - metadata + - customer_code + - risk_action + authorization: + type: object + properties: + authorization_code: + type: string + nullable: true + bin: + type: string + nullable: true + last4: + type: string + nullable: true + exp_month: + type: string + nullable: true + exp_year: + type: string + nullable: true + channel: + type: string + nullable: true + card_type: + type: string + nullable: true + bank: + type: string + nullable: true + country_code: + type: string + nullable: true + brand: + type: string + nullable: true + reusable: + type: boolean + signature: + type: string + nullable: true + account_name: + type: string + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + plan: + type: object + split: + type: object + subaccount: + type: object + order_id: + nullable: true + paidAt: + type: string + createdAt: + type: string + requested_amount: + type: integer + source: + type: object + properties: + source: + type: string + type: + type: string + identifier: + nullable: true + entry_point: + type: string + required: + - source + - type + - identifier + - entry_point + nullable: true + connect: + type: object + nullable: true + pos_transaction_data: + nullable: true + required: + - id + - domain + - status + - reference + - amount + - message + - gateway_response + - paid_at + - created_at + - channel + - currency + - ip_address + - metadata + - log + - fees + - fees_split + - customer + - authorization + - plan + - split + - subaccount + - order_id + - paidAt + - createdAt + - requested_amount + - source + - connect + - pos_transaction_data + TransactionListResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: "#/components/schemas/TransactionListResponseArray" + meta: + type: object + properties: + total: + type: integer + total_volume: + type: number + skipped: + type: integer + perPage: + anyOf: + - type: string + - type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - total_volume + - skipped + - perPage + - page + - pageCount + additionalProperties: false + required: + - status + - message + - data + - meta + TransactionPartialDebitResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + amount: + type: integer + currency: + type: string + transaction_date: + type: string + status: + type: string + reference: + type: string + domain: + type: string + metadata: + type: string + gateway_response: + type: string + message: + nullable: true + channel: + type: string + ip_address: + nullable: true + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + metadata: + type: object + nullable: true + risk_action: + type: string + international_format_phone: + type: string + nullable: true + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + type: integer + requested_amount: + type: integer + id: + type: integer + required: + - amount + - currency + - transaction_date + - status + - reference + - domain + - gateway_response + - message + - channel + - ip_address + - log + - fees + - authorization + - customer + - metadata + - plan + - requested_amount + - id + required: + - status + - message + - data + TransactionTimelineResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + required: + - status + - message + - data + TransactionTotalVolumeByCurrencyArray: + type: object + properties: + currency: + type: string + amount: + type: integer + required: + - currency + - amount + TransactionPendingTransfersByCurrencyArray: + type: object + properties: + currency: + type: string + amount: + type: integer + required: + - currency + - amount + TransactionTotalsResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + total_transactions: + type: integer + total_volume: + type: integer + total_volume_by_currency: + type: array + items: + $ref: "#/components/schemas/TransactionTotalVolumeByCurrencyArray" + pending_transfers: + type: integer + pending_transfers_by_currency: + type: array + items: + $ref: "#/components/schemas/TransactionPendingTransfersByCurrencyArray" + required: + - total_transactions + - total_volume + - total_volume_by_currency + - pending_transfers + - pending_transfers_by_currency + required: + - status + - message + - data + VerifyMultiSplitResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + receipt_number: + type: string + nullable: true + amount: + type: integer + message: + type: string + nullable: true + gateway_response: + type: string + paid_at: + type: string + nullable: true + created_at: + type: string + channel: + type: string + currency: + type: string + ip_address: + type: string + metadata: + anyOf: + - type: string + - type: object + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + additionalProperties: false + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + nullable: true + fees_split: + nullable: true + authorization: + type: object + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + metadata: + nullable: true + risk_action: + type: string + international_format_phone: + type: string + nullable: true + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + type: string + nullable: true + split: + type: object + properties: + id: + type: integer + name: + type: string + split_code: + type: string + formula: + type: object + properties: + type: + type: string + bearer_type: + type: string + bearer_subaccount: + type: integer + subaccounts: + type: array + items: + $ref: "#/components/schemas/FormulaSubaccountsArray" + integration: + type: integer + required: + - type + - bearer_type + - bearer_subaccount + - subaccounts + - integration + shares: + type: object + properties: + paystack: + type: integer + subaccounts: + type: array + items: + $ref: "#/components/schemas/ShareSubaccountsArray" + integration: + type: integer + original_share: + type: number + fees: + type: integer + required: + - paystack + - subaccounts + - integration + - original_share + - fees + required: + - id + - name + - split_code + - formula + - shares + order_id: + nullable: true + paidAt: + type: string + nullable: true + createdAt: + type: string + requested_amount: + type: integer + pos_transaction_data: + nullable: true + source: + nullable: true + fees_breakdown: + nullable: true + connect: + nullable: true + transaction_date: + type: string + plan_object: + type: object + properties: + id: + type: integer + name: + type: string + plan_code: + type: string + description: + nullable: true + amount: + type: integer + interval: + type: string + send_invoices: + type: boolean + send_sms: + type: boolean + currency: + type: string + oneOf: + - allOf: + - minProperties: 0 + - {} + - allOf: + - not: + minProperties: 0 + - required: + - id + - name + - plan_code + - description + - amount + - interval + - send_invoices + - send_sms + - currency + additionalProperties: false + subaccount: + type: object + required: + - id + - domain + - status + - reference + - receipt_number + - amount + - message + - gateway_response + - paid_at + - created_at + - channel + - currency + - ip_address + - metadata + - log + - fees + - fees_split + - authorization + - customer + - plan + - split + - order_id + - paidAt + - createdAt + - requested_amount + - pos_transaction_data + - source + - fees_breakdown + - connect + - transaction_date + - plan_object + - subaccount + required: + - status + - message + - data + VerifySingleSplitResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + receipt_number: + nullable: true + amount: + type: integer + message: + nullable: true + gateway_response: + type: string + paid_at: + nullable: true + created_at: + type: string + channel: + type: string + currency: + type: string + ip_address: + type: string + metadata: + anyOf: + - type: string + - type: object + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + additionalProperties: false + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + nullable: true + fees_split: + type: object + properties: + paystack: + type: integer + integration: + type: number + subaccount: + type: number + params: + type: object + properties: + bearer: + type: string + transaction_charge: + type: string + percentage_charge: + type: string + required: + - bearer + - transaction_charge + - percentage_charge + required: + - paystack + - integration + - subaccount + - params + authorization: + type: object + customer: + type: object + properties: + id: + type: integer + first_name: + nullable: true + last_name: + nullable: true + email: + type: string + customer_code: + type: string + phone: + nullable: true + metadata: + nullable: true + risk_action: + type: string + international_format_phone: + nullable: true + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + type: string + nullable: true + split: + type: object + order_id: + nullable: true + paidAt: + nullable: true + createdAt: + type: string + requested_amount: + type: integer + pos_transaction_data: + nullable: true + source: + nullable: true + fees_breakdown: + nullable: true + connect: + nullable: true + transaction_date: + type: string + plan_object: + type: object + properties: + id: + type: integer + name: + type: string + plan_code: + type: string + description: + nullable: true + amount: + type: integer + interval: + type: string + send_invoices: + type: boolean + send_sms: + type: boolean + currency: + type: string + oneOf: + - allOf: + - minProperties: 0 + - {} + - allOf: + - not: + minProperties: 0 + - required: + - id + - name + - plan_code + - description + - amount + - interval + - send_invoices + - send_sms + - currency + additionalProperties: false + subaccount: + type: object + properties: + id: + type: integer + subaccount_code: + type: string + business_name: + type: string + description: + type: string + primary_contact_name: + type: string + primary_contact_email: + type: string + primary_contact_phone: + type: string + metadata: + type: string + percentage_charge: + type: number + settlement_bank: + type: string + bank_id: + type: integer + account_number: + type: string + currency: + type: string + active: + type: boolean + is_verified: + type: boolean + required: + - id + - subaccount_code + - business_name + - description + - primary_contact_name + - primary_contact_email + - primary_contact_phone + - metadata + - percentage_charge + - settlement_bank + - bank_id + - account_number + - currency + - active + - is_verified + required: + - id + - domain + - status + - reference + - receipt_number + - amount + - message + - gateway_response + - paid_at + - created_at + - channel + - currency + - ip_address + - metadata + - log + - fees + - fees_split + - authorization + - customer + - plan + - split + - order_id + - paidAt + - createdAt + - requested_amount + - pos_transaction_data + - source + - fees_breakdown + - connect + - transaction_date + - plan_object + - subaccount + required: + - status + - message + - data + VerifyResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + receipt_number: + type: string + nullable: true + amount: + type: integer + message: + type: string + nullable: true + gateway_response: + type: string + paid_at: + type: string + nullable: true + created_at: + type: string + channel: + type: string + currency: + type: string + ip_address: + type: string + metadata: + anyOf: + - type: string + - type: object + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + additionalProperties: false + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + nullable: true + fees_split: + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + bin: + nullable: true + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + nullable: true + receiver_bank_account_number: + nullable: true + receiver_bank: + nullable: true + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + metadata: + nullable: true + risk_action: + type: string + international_format_phone: + type: string + nullable: true + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + type: string + nullable: true + split: + type: object + order_id: + nullable: true + paidAt: + type: string + nullable: true + createdAt: + type: string + requested_amount: + type: integer + pos_transaction_data: + nullable: true + source: + nullable: true + fees_breakdown: + nullable: true + connect: + nullable: true + transaction_date: + type: string + plan_object: + type: object + properties: + id: + type: integer + name: + type: string + plan_code: + type: string + description: + nullable: true + amount: + type: integer + interval: + type: string + send_invoices: + type: boolean + send_sms: + type: boolean + currency: + type: string + oneOf: + - allOf: + - minProperties: 0 + - {} + - allOf: + - not: + minProperties: 0 + - required: + - id + - name + - plan_code + - description + - amount + - interval + - send_invoices + - send_sms + - currency + additionalProperties: false + subaccount: + type: object + required: + - id + - domain + - status + - reference + - receipt_number + - amount + - message + - gateway_response + - paid_at + - created_at + - channel + - currency + - ip_address + - metadata + - log + - fees + - fees_split + - authorization + - customer + - plan + - split + - order_id + - paidAt + - createdAt + - requested_amount + - pos_transaction_data + - source + - fees_breakdown + - connect + - transaction_date + - plan_object + - subaccount + required: + - status + - message + - data + ChannelOptionMobileMoneyArray: + type: object + properties: + key: + type: string + value: + type: string + isNew: + type: boolean + phoneNumberRegex: + type: string + phoneNumberPlaceholder: + type: string + required: + - key + - value + - isNew + - phoneNumberRegex + - phoneNumberPlaceholder + VerifyAccessCodeGHResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + email: + type: string + merchant_logo: + type: string + merchant_name: + type: string + amount: + type: integer + domain: + type: string + currency: + type: string + id: + type: integer + channels: + type: array + items: + type: string + label: + type: string + original_amount: + type: integer + added_fees: + type: integer + merchant_id: + type: integer + merchant_key: + type: string + cancel_action: + nullable: true + access_code: + type: string + transaction_status: + type: string + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + custom_filters: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + nullable: true + last_name: + nullable: true + email: + type: string + phone: + nullable: true + metadata: + nullable: true + created_at: + type: string + updated_at: + type: string + required: + - id + - first_name + - last_name + - email + - phone + - metadata + - created_at + - updated_at + reference: + type: string + saved_cards: + type: object + properties: + enabled: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - registered + - registered_phone + - registered_calling_code + plan_details: + nullable: true + channel_options: + type: object + properties: + mobile_money: + type: array + items: + $ref: "#/components/schemas/ChannelOptionMobileMoneyArray" + required: + - mobile_money + merchant_channel_settings: + type: object + link_config: + type: object + properties: + enabled: + type: boolean + has_linked_accounts: + type: boolean + has_saved_cards: + type: boolean + has_payment_instruments: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - has_linked_accounts + - has_saved_cards + - has_payment_instruments + - registered + - registered_phone + - registered_calling_code + elevy_percentage: + type: number + exchange_rate: + type: object + properties: + id: + type: integer + rate: + type: number + required: + - id + - rate + public_encryption_key: + type: string + whitelabel: + type: boolean + required: + - email + - merchant_logo + - merchant_name + - amount + - domain + - currency + - id + - channels + - label + - original_amount + - added_fees + - merchant_id + - merchant_key + - cancel_action + - access_code + - transaction_status + - log + - custom_filters + - customer + - reference + - saved_cards + - plan_details + - channel_options + - merchant_channel_settings + - link_config + - elevy_percentage + - public_encryption_key + - whitelabel + required: + - status + - message + - data + VerifyAccessCodeKEResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + email: + type: string + merchant_logo: + type: string + merchant_name: + type: string + amount: + type: integer + domain: + type: string + currency: + type: string + id: + type: integer + channels: + type: array + items: + type: string + label: + type: string + original_amount: + type: integer + added_fees: + type: integer + merchant_id: + type: integer + merchant_key: + type: string + cancel_action: + nullable: true + access_code: + type: string + transaction_status: + type: string + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + custom_filters: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + nullable: true + last_name: + nullable: true + email: + type: string + phone: + nullable: true + metadata: + nullable: true + created_at: + type: string + updated_at: + type: string + required: + - id + - first_name + - last_name + - email + - phone + - metadata + - created_at + - updated_at + reference: + type: string + saved_cards: + type: object + properties: + enabled: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - registered + - registered_phone + - registered_calling_code + plan_details: + nullable: true + channel_options: + type: object + properties: + mobile_money: + type: array + items: + $ref: "#/components/schemas/ChannelOptionMobileMoneyArray" + required: + - mobile_money + merchant_channel_settings: + type: object + link_config: + type: object + properties: + enabled: + type: boolean + has_linked_accounts: + type: boolean + has_saved_cards: + type: boolean + has_payment_instruments: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - has_linked_accounts + - has_saved_cards + - has_payment_instruments + - registered + - registered_phone + - registered_calling_code + exchange_rate: + type: object + properties: + id: + type: integer + rate: + type: number + required: + - id + - rate + public_encryption_key: + type: string + whitelabel: + type: boolean + required: + - email + - merchant_logo + - merchant_name + - amount + - domain + - currency + - id + - channels + - label + - original_amount + - added_fees + - merchant_id + - merchant_key + - cancel_action + - access_code + - transaction_status + - log + - custom_filters + - customer + - reference + - saved_cards + - plan_details + - channel_options + - merchant_channel_settings + - link_config + - public_encryption_key + - whitelabel + required: + - status + - message + - data + VerifyAccessCodeSupportedBanksArray: + type: object + properties: + id: + type: integer + name: + type: string + slug: + type: string + gateway: + type: string + code: + type: string + required: + - id + - name + - slug + - gateway + - code + VerifyAccessCodeNGResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + email: + type: string + merchant_logo: + type: string + merchant_name: + type: string + amount: + type: integer + domain: + type: string + currency: + type: string + id: + type: integer + channels: + type: array + items: + type: string + label: + type: string + original_amount: + type: integer + added_fees: + type: integer + merchant_id: + type: integer + merchant_key: + type: string + cancel_action: + nullable: true + access_code: + type: string + transaction_status: + type: string + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + custom_filters: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + nullable: true + last_name: + nullable: true + email: + type: string + phone: + nullable: true + metadata: + nullable: true + created_at: + type: string + updated_at: + type: string + required: + - id + - first_name + - last_name + - email + - phone + - metadata + - created_at + - updated_at + reference: + type: string + saved_cards: + type: object + properties: + enabled: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - registered + - registered_phone + - registered_calling_code + plan_details: + nullable: true + channel_options: + type: object + properties: + bank_transfer: + type: array + items: + type: string + ussd: + type: array + items: + type: string + required: + - bank_transfer + - ussd + merchant_channel_settings: + type: object + properties: + bank_transfer: + type: object + properties: + fulfil_late_notification: + type: boolean + required: + - fulfil_late_notification + required: + - bank_transfer + link_config: + type: object + properties: + enabled: + type: boolean + has_linked_accounts: + type: boolean + has_saved_cards: + type: boolean + has_payment_instruments: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - has_linked_accounts + - has_saved_cards + - has_payment_instruments + - registered + - registered_phone + - registered_calling_code + exchange_rate: + type: object + properties: + id: + type: integer + rate: + type: number + required: + - id + - rate + supported_banks: + type: array + items: + $ref: "#/components/schemas/VerifyAccessCodeSupportedBanksArray" + public_encryption_key: + type: string + whitelabel: + type: boolean + required: + - email + - merchant_logo + - merchant_name + - amount + - domain + - currency + - id + - channels + - label + - original_amount + - added_fees + - merchant_id + - merchant_key + - cancel_action + - access_code + - transaction_status + - log + - custom_filters + - customer + - reference + - saved_cards + - plan_details + - channel_options + - merchant_channel_settings + - link_config + - public_encryption_key + - whitelabel + required: + - status + - message + - data + VerifyAccessCodeZAResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + email: + type: string + merchant_logo: + type: string + merchant_name: + type: string + amount: + type: integer + domain: + type: string + currency: + type: string + id: + type: integer + channels: + type: array + items: + type: string + label: + type: string + original_amount: + type: integer + added_fees: + type: integer + merchant_id: + type: integer + merchant_key: + type: string + cancel_action: + nullable: true + access_code: + type: string + transaction_status: + type: string + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + custom_filters: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + nullable: true + last_name: + nullable: true + email: + type: string + phone: + nullable: true + metadata: + nullable: true + created_at: + type: string + updated_at: + type: string + required: + - id + - first_name + - last_name + - email + - phone + - metadata + - created_at + - updated_at + reference: + type: string + saved_cards: + type: object + properties: + enabled: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - registered + - registered_phone + - registered_calling_code + plan_details: + nullable: true + channel_options: + type: object + properties: + qr: + type: array + items: + type: string + eft: + type: array + items: + type: string + required: + - qr + - eft + merchant_channel_settings: + type: object + link_config: + type: object + properties: + enabled: + type: boolean + has_linked_accounts: + type: boolean + has_saved_cards: + type: boolean + has_payment_instruments: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - has_linked_accounts + - has_saved_cards + - has_payment_instruments + - registered + - registered_phone + - registered_calling_code + exchange_rate: + type: object + properties: + id: + type: integer + rate: + type: number + required: + - id + - rate + public_encryption_key: + type: string + whitelabel: + type: boolean + required: + - email + - merchant_logo + - merchant_name + - amount + - domain + - currency + - id + - channels + - label + - original_amount + - added_fees + - merchant_id + - merchant_key + - cancel_action + - access_code + - transaction_status + - log + - custom_filters + - customer + - reference + - saved_cards + - plan_details + - channel_options + - merchant_channel_settings + - link_config + - public_encryption_key + - whitelabel + required: + - status + - message + - data + VerifyCodeGHResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + email: + type: string + merchant_logo: + type: string + merchant_name: + type: string + amount: + type: integer + domain: + type: string + currency: + type: string + id: + type: integer + channels: + type: array + items: + type: string + label: + type: string + original_amount: + type: integer + added_fees: + type: integer + merchant_id: + type: integer + merchant_key: + type: string + cancel_action: + nullable: true + access_code: + type: string + transaction_status: + type: string + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + custom_filters: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + nullable: true + last_name: + nullable: true + email: + type: string + phone: + nullable: true + metadata: + nullable: true + created_at: + type: string + updated_at: + type: string + required: + - id + - first_name + - last_name + - email + - phone + - metadata + - created_at + - updated_at + reference: + type: string + saved_cards: + type: object + properties: + enabled: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - registered + - registered_phone + - registered_calling_code + plan_details: + nullable: true + channel_options: + type: object + properties: + mobile_money: + type: array + items: + $ref: "#/components/schemas/ChannelOptionMobileMoneyArray" + required: + - mobile_money + merchant_channel_settings: + type: object + elevy_percentage: + type: number + link_config: + type: object + properties: + enabled: + type: boolean + has_linked_accounts: + type: boolean + has_saved_cards: + type: boolean + has_payment_instruments: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - has_linked_accounts + - has_saved_cards + - has_payment_instruments + - registered + - registered_phone + - registered_calling_code + exchange_rate: + type: object + properties: + id: + type: integer + rate: + type: number + required: + - id + - rate + public_encryption_key: + type: string + whitelabel: + type: boolean + required: + - email + - merchant_logo + - merchant_name + - amount + - domain + - currency + - id + - channels + - label + - original_amount + - added_fees + - merchant_id + - merchant_key + - cancel_action + - access_code + - transaction_status + - log + - custom_filters + - customer + - reference + - saved_cards + - plan_details + - channel_options + - merchant_channel_settings + - link_config + - elevy_percentage + - public_encryption_key + - whitelabel + required: + - status + - message + - data + VerifyCodeKEResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + email: + type: string + merchant_logo: + type: string + merchant_name: + type: string + amount: + type: integer + domain: + type: string + currency: + type: string + id: + type: integer + channels: + type: array + items: + type: string + label: + type: string + original_amount: + type: integer + added_fees: + type: integer + merchant_id: + type: integer + merchant_key: + type: string + cancel_action: + nullable: true + access_code: + type: string + transaction_status: + type: string + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + custom_filters: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + nullable: true + last_name: + nullable: true + email: + type: string + phone: + nullable: true + metadata: + nullable: true + created_at: + type: string + updated_at: + type: string + required: + - id + - first_name + - last_name + - email + - phone + - metadata + - created_at + - updated_at + reference: + type: string + saved_cards: + type: object + properties: + enabled: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - registered + - registered_phone + - registered_calling_code + plan_details: + nullable: true + channel_options: + type: object + properties: + mobile_money: + type: array + items: + type: object + properties: + key: + type: string + value: + type: string + isNew: + type: boolean + phoneNumberRegex: + type: string + phoneNumberPlaceholder: + type: string + isChannel: + type: boolean + isMobileMoneyBusiness: + type: boolean + accountNumberRegex: + type: string + required: + - key + - value + - isNew + - phoneNumberRegex + - isChannel + - isMobileMoneyBusiness + additionalProperties: false + required: + - mobile_money + merchant_channel_settings: + type: object + link_config: + type: object + properties: + enabled: + type: boolean + has_linked_accounts: + type: boolean + has_saved_cards: + type: boolean + has_payment_instruments: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - has_linked_accounts + - has_saved_cards + - has_payment_instruments + - registered + - registered_phone + - registered_calling_code + exchange_rate: + type: object + properties: + id: + type: integer + rate: + type: number + required: + - id + - rate + public_encryption_key: + type: string + whitelabel: + type: boolean + required: + - email + - merchant_logo + - merchant_name + - amount + - domain + - currency + - id + - channels + - label + - original_amount + - added_fees + - merchant_id + - merchant_key + - cancel_action + - access_code + - transaction_status + - log + - custom_filters + - customer + - reference + - saved_cards + - plan_details + - channel_options + - merchant_channel_settings + - link_config + - public_encryption_key + - whitelabel + required: + - status + - message + - data + VerifyCodeSupportedBanksArray: + type: object + properties: + id: + type: integer + name: + type: string + slug: + type: string + gateway: + type: string + code: + type: string + required: + - id + - name + - slug + - gateway + - code + VerifyCodeNGResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + email: + type: string + merchant_logo: + type: string + merchant_name: + type: string + amount: + type: integer + domain: + type: string + currency: + type: string + id: + type: integer + channels: + type: array + items: + type: string + label: + type: string + original_amount: + type: integer + added_fees: + type: integer + merchant_id: + type: integer + merchant_key: + type: string + cancel_action: + nullable: true + access_code: + type: string + transaction_status: + type: string + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + custom_filters: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + nullable: true + last_name: + nullable: true + email: + type: string + phone: + nullable: true + metadata: + nullable: true + created_at: + type: string + updated_at: + type: string + required: + - id + - first_name + - last_name + - email + - phone + - metadata + - created_at + - updated_at + reference: + type: string + saved_cards: + type: object + properties: + enabled: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - registered + - registered_phone + - registered_calling_code + plan_details: + nullable: true + channel_options: + type: object + properties: + qr: + type: array + items: + type: string + ussd: + type: array + items: + type: string + bank_transfer: + type: array + items: + type: string + required: + - ussd + - bank_transfer + merchant_channel_settings: + type: object + properties: + bank_transfer: + type: object + properties: + fulfil_late_notification: + type: boolean + required: + - fulfil_late_notification + required: + - bank_transfer + exchange_rate: + type: object + properties: + id: + type: integer + rate: + type: number + required: + - id + - rate + link_config: + type: object + properties: + enabled: + type: boolean + has_linked_accounts: + type: boolean + has_saved_cards: + type: boolean + has_payment_instruments: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - has_linked_accounts + - has_saved_cards + - has_payment_instruments + - registered + - registered_phone + - registered_calling_code + supported_banks: + type: array + items: + $ref: "#/components/schemas/VerifyCodeSupportedBanksArray" + public_encryption_key: + type: string + whitelabel: + type: boolean + required: + - email + - merchant_logo + - merchant_name + - amount + - domain + - currency + - id + - channels + - label + - original_amount + - added_fees + - merchant_id + - merchant_key + - cancel_action + - access_code + - transaction_status + - log + - custom_filters + - customer + - reference + - saved_cards + - plan_details + - channel_options + - merchant_channel_settings + - link_config + - public_encryption_key + - whitelabel + required: + - status + - message + - data + VerifyCodeZAResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + email: + type: string + merchant_logo: + type: string + merchant_name: + type: string + amount: + type: integer + domain: + type: string + currency: + type: string + id: + type: integer + channels: + type: array + items: + type: string + label: + type: string + original_amount: + type: integer + added_fees: + type: integer + merchant_id: + type: integer + merchant_key: + type: string + cancel_action: + nullable: true + access_code: + type: string + transaction_status: + type: string + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + custom_filters: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + nullable: true + last_name: + nullable: true + email: + type: string + phone: + nullable: true + metadata: + nullable: true + created_at: + type: string + updated_at: + type: string + required: + - id + - first_name + - last_name + - email + - phone + - metadata + - created_at + - updated_at + reference: + type: string + saved_cards: + type: object + properties: + enabled: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - registered + - registered_phone + - registered_calling_code + plan_details: + nullable: true + channel_options: + type: object + properties: + qr: + type: array + items: + type: string + eft: + type: array + items: + type: string + required: + - qr + - eft + merchant_channel_settings: + type: object + exchange_rate: + type: object + properties: + id: + type: integer + rate: + type: number + required: + - id + - rate + link_config: + type: object + properties: + enabled: + type: boolean + has_linked_accounts: + type: boolean + has_saved_cards: + type: boolean + has_payment_instruments: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - has_linked_accounts + - has_saved_cards + - has_payment_instruments + - registered + - registered_phone + - registered_calling_code + public_encryption_key: + type: string + whitelabel: + type: boolean + required: + - email + - merchant_logo + - merchant_name + - amount + - domain + - currency + - id + - channels + - label + - original_amount + - added_fees + - merchant_id + - merchant_key + - cancel_action + - access_code + - transaction_status + - log + - custom_filters + - customer + - reference + - saved_cards + - plan_details + - channel_options + - merchant_channel_settings + - link_config + - public_encryption_key + - whitelabel + required: + - status + - message + - data + TransferFetchZAResponse: + type: object + properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + amount: + type: integer + createdAt: + type: string + currency: + type: string + domain: + type: string + failures: + nullable: true + id: + type: integer + integration: + type: integer + reason: + type: string + reference: + type: string + source: + type: string + source_details: + nullable: true + status: + type: string + titan_code: + nullable: true + transfer_code: + type: string + request: + type: integer + transferred_at: + nullable: true + updatedAt: + type: string + recipient: + type: object + properties: + active: + type: boolean + createdAt: + type: string + currency: + type: string + description: + type: string + domain: + type: string + email: + type: string + id: + type: integer + integration: + type: integer + metadata: + type: object + nullable: true + name: + type: string + recipient_code: + type: string + type: + type: string + updatedAt: + type: string + is_deleted: + type: boolean + isDeleted: + type: boolean + details: + type: object + properties: + authorization_code: + nullable: true + account_number: + type: string + account_name: + type: string + nullable: true + bank_code: + type: string + bank_name: + type: string + required: + - authorization_code + - account_number + - account_name + - bank_code + - bank_name required: + - active + - createdAt + - currency + - description + - domain + - email + - id + - integration + - name + - recipient_code - type - - data - integration_type: + - updatedAt + - is_deleted + - isDeleted + - details + session: type: object properties: - type: - type: string - data: - type: array - items: - type: string + provider: + nullable: true + id: + nullable: true required: - - type - - data - payment_method: + - provider + - id + fee_charged: + type: integer + fees_breakdown: + type: array + items: + $ref: "#/components/schemas/TransferFeesBreakdownArray" + nullable: true + gateway_response: + type: string + nullable: true + transferAttributes: type: object properties: - type: + transfer: + type: integer + transfer_type: + type: integer + created_at: type: string - data: - type: array - items: - type: string + updated_at: + nullable: true + receipt_number: + nullable: true required: - - type - - data + - transfer + - transfer_type + - created_at + - updated_at + - receipt_number required: + - amount + - createdAt - currency - - integration_feature - - integration_type - - payment_method + - domain + - failures + - id + - integration + - reason + - reference + - source + - source_details + - status + - titan_code + - transfer_code + - request + - transferred_at + - updatedAt + - recipient + - session + - fee_charged + - fees_breakdown + - gateway_response + - transferAttributes required: - - id - - active_for_dashboard_onboarding - - name - - iso_code - - default_currency_code - - integration_defaults - - calling_code - - pilot_mode - - relationships - MiscellaneousListCountriesResponse: + - status + - message + - data + TransferApprovalGetSettingsResponse: type: object properties: status: @@ -15937,27 +23218,41 @@ components: message: type: string data: - type: array - items: - $ref: '#/components/schemas/MiscellaneousListCountriesResponseArray' + type: object + properties: + on_for_test_mode: + type: boolean + on_for_live_mode: + type: boolean + on_when_otp_is_on: + type: boolean + on_for_dashboard_initiated_transfers: + type: boolean + automatically_blacklist_rejected_recipients: + type: boolean + test_approval_url: + type: string + live_approval_url: + type: string + test_contact_email: + type: string + live_contact_email: + type: string + required: + - on_for_test_mode + - on_for_live_mode + - on_when_otp_is_on + - on_for_dashboard_initiated_transfers + - automatically_blacklist_rejected_recipients + - test_approval_url + - live_approval_url + - test_contact_email + - live_contact_email required: - status - message - data - MiscellaneousListStatesResponseArray: - type: object - properties: - name: - type: string - slug: - type: string - abbreviation: - type: string - required: - - name - - slug - - abbreviation - MiscellaneousListStatesResponse: + TransferApprovalUpdateSettingsResponse: type: object properties: status: @@ -15965,9 +23260,36 @@ components: message: type: string data: - type: array - items: - $ref: '#/components/schemas/MiscellaneousListStatesResponseArray' + type: object + properties: + on_for_test_mode: + type: boolean + on_for_live_mode: + type: boolean + on_when_otp_is_on: + type: boolean + on_for_dashboard_initiated_transfers: + type: boolean + automatically_blacklist_rejected_recipients: + type: boolean + test_approval_url: + type: string + live_approval_url: + type: string + test_contact_email: + type: string + live_contact_email: + type: string + required: + - on_for_test_mode + - on_for_live_mode + - on_when_otp_is_on + - on_for_dashboard_initiated_transfers + - automatically_blacklist_rejected_recipients + - test_approval_url + - live_approval_url + - test_contact_email + - live_contact_email required: - status - message @@ -15991,7 +23313,7 @@ components: example: true message: type: string - example: 'Mandate is queued for retry' + example: "Mandate is queued for retry" required: - status - message @@ -16003,16 +23325,16 @@ components: example: 28958104 customer_code: type: string - example: 'CUS_5kye9bc41uw15pb' + example: "CUS_5kye9bc41uw15pb" email: type: string - example: 'customer@email.com' + example: "customer@email.com" first_name: type: string - example: 'Booker' + example: "Booker" last_name: type: string - example: 'Jones' + example: "Jones" required: - id - customer_code @@ -16027,7 +23349,7 @@ components: example: 112244 status: type: string - example: 'active' + example: "active" mandate_id: type: integer example: 1560169 @@ -16036,25 +23358,25 @@ components: example: 1069309917 authorization_code: type: string - example: 'AUTH_lEt8QgrSfW' + example: "AUTH_lEt8QgrSfW" integration_id: type: integer example: 463433 account_number: type: string - example: '0123456789' + example: "0123456789" bank_code: type: string - example: '058' + example: "058" bank_name: type: string - example: 'Guaranty Trust Bank' + example: "Guaranty Trust Bank" customer: - $ref: '#/components/schemas/DirectDebitMandateAuthorizationCustomer' + $ref: "#/components/schemas/DirectDebitMandateAuthorizationCustomer" authorized_at: type: string format: date-time - example: '2025-06-23T12:47:10.632Z' + example: "2025-06-23T12:47:10.632Z" required: - id - status @@ -16075,7 +23397,7 @@ components: example: 10 next: type: string - example: 'MTI1OTc=' + example: "MTI1OTc=" count: type: integer example: 10 @@ -16094,13 +23416,13 @@ components: example: true message: type: string - example: 'Mandate authorizations retrieved successfully' + example: "Mandate authorizations retrieved successfully" data: type: array items: - $ref: '#/components/schemas/DirectDebitMandateAuthorizationData' + $ref: "#/components/schemas/DirectDebitMandateAuthorizationData" meta: - $ref: '#/components/schemas/DirectDebitMandateAuthorizationMeta' + $ref: "#/components/schemas/DirectDebitMandateAuthorizationMeta" required: - status - message @@ -16112,11 +23434,11 @@ components: number: type: string description: The customer's account number - example: '0123456789' + example: "0123456789" bank_code: type: string description: The code representing the customer's bank - example: '058' + example: "058" required: - number - bank_code @@ -16126,15 +23448,15 @@ components: street: type: string description: The customer's street - example: '123 Main Street' + example: "123 Main Street" city: type: string description: The customer's city - example: 'Lagos' + example: "Lagos" state: type: string description: The customer's state - example: 'Lagos' + example: "Lagos" required: - street - city @@ -16148,33 +23470,33 @@ components: email: type: string description: Customer's email address - example: 'ravi@demo.com' + example: "ravi@demo.com" channel: type: string - description: direct-debit is the only supported option for now + description: direct_debit is the only supported option for now enum: - direct_debit - example: 'direct_debit' + example: "direct_debit" callback_url: type: string description: Fully qualified url (e.g. https://example.com/) to redirect your customer to - example: 'http://test.url.com' + example: "http://test.url.com" account: - $ref: '#/components/schemas/CustomerAuthorizationInitializeAccount' + $ref: "#/components/schemas/CustomerAuthorizationInitializeAccount" address: - $ref: '#/components/schemas/CustomerAuthorizationInitializeAddress' + $ref: "#/components/schemas/CustomerAuthorizationInitializeAddress" CustomerAuthorizationInitializeResponseData: type: object properties: redirect_url: type: string - example: 'https://checkout.paystack.com/82t4mp5b5mfn51h' + example: "https://checkout.paystack.com/82t4mp5b5mfn51h" access_code: type: string - example: '82t4mp5b5mfn51h' + example: "82t4mp5b5mfn51h" reference: type: string - example: 'dfbzfotsrbv4n5s82t4mp5b5mfn51h' + example: "dfbzfotsrbv4n5s82t4mp5b5mfn51h" required: - redirect_url - access_code @@ -16187,9 +23509,9 @@ components: example: true message: type: string - example: 'Authorization initialized' + example: "Authorization initialized" data: - $ref: '#/components/schemas/CustomerAuthorizationInitializeResponseData' + $ref: "#/components/schemas/CustomerAuthorizationInitializeResponseData" required: - status - message @@ -16199,10 +23521,10 @@ components: properties: code: type: string - example: 'CUS_24lze1c8i2zl76y' + example: "CUS_24lze1c8i2zl76y" email: type: string - example: 'ravi@demo.com' + example: "ravi@demo.com" required: - code - email @@ -16211,18 +23533,18 @@ components: properties: authorization_code: type: string - example: 'AUTH_JV4T9Wawdj' + example: "AUTH_JV4T9Wawdj" channel: type: string - example: 'direct_debit' + example: "direct_debit" bank: type: string - example: 'Guaranty Trust Bank' + example: "Guaranty Trust Bank" active: type: boolean example: true customer: - $ref: '#/components/schemas/CustomerAuthorizationVerifyResponseCustomer' + $ref: "#/components/schemas/CustomerAuthorizationVerifyResponseCustomer" required: - authorization_code - channel @@ -16237,9 +23559,9 @@ components: example: true message: type: string - example: 'Authorization retrieved successfully' + example: "Authorization retrieved successfully" data: - $ref: '#/components/schemas/CustomerAuthorizationVerifyResponseData' + $ref: "#/components/schemas/CustomerAuthorizationVerifyResponseData" required: - status - message @@ -16250,11 +23572,11 @@ components: number: type: string description: The customer's account number - example: '0123456789' + example: "0123456789" bank_code: type: string description: The code representing the customer's bank - example: '058' + example: "058" required: - number - bank_code @@ -16264,15 +23586,15 @@ components: street: type: string description: The customer's street - example: 'Some Where' + example: "Some Where" city: type: string description: The customer's city - example: 'Ikeja' + example: "Ikeja" state: type: string description: The customer's state - example: 'Lagos' + example: "Lagos" required: - street - city @@ -16284,21 +23606,21 @@ components: - address properties: account: - $ref: '#/components/schemas/CustomerInitializeDirectDebitAccount' + $ref: "#/components/schemas/CustomerInitializeDirectDebitAccount" address: - $ref: '#/components/schemas/CustomerInitializeDirectDebitAddress' + $ref: "#/components/schemas/CustomerInitializeDirectDebitAddress" CustomerInitializeDirectDebitResponseData: type: object properties: redirect_url: type: string - example: 'https://link.paystack.com/ll6b0szngj1f27k' + example: "https://link.paystack.com/ll6b0szngj1f27k" access_code: type: string - example: 'll6b0szngj1f27k' + example: "ll6b0szngj1f27k" reference: type: string - example: '1er945lpy4txyki' + example: "1er945lpy4txyki" required: - redirect_url - access_code @@ -16311,9 +23633,9 @@ components: example: true message: type: string - example: 'Authorization initialized' + example: "Authorization initialized" data: - $ref: '#/components/schemas/CustomerInitializeDirectDebitResponseData' + $ref: "#/components/schemas/CustomerInitializeDirectDebitResponseData" required: - status - message @@ -16335,7 +23657,7 @@ components: example: true message: type: string - example: 'Mandate is queued for retry' + example: "Mandate is queued for retry" required: - status - message @@ -16347,7 +23669,7 @@ components: example: 164098 status: type: string - example: 'active' + example: "active" mandate_id: type: integer example: 512003 @@ -16356,16 +23678,16 @@ components: example: 110049014 authorization_code: type: string - example: 'AUTH_8Lol0pNt14' + example: "AUTH_8Lol0pNt14" integration_id: type: integer example: 463433 account_number: type: string - example: '0123456789' + example: "0123456789" bank_code: type: string - example: '032' + example: "032" bank_name: type: string example: null @@ -16377,20 +23699,20 @@ components: example: 43975700 customer_code: type: string - example: 'CUS_2eusy8uwe34s23fy' + example: "CUS_2eusy8uwe34s23fy" email: type: string - example: 'customer@email.com' + example: "customer@email.com" first_name: type: string - example: 'Smith' + example: "Smith" last_name: type: string - example: 'Bel' + example: "Bel" authorized_at: type: string format: date-time - example: '2024-09-27T10:57:53.824Z' + example: "2024-09-27T10:57:53.824Z" required: - id - status @@ -16429,763 +23751,763 @@ components: example: true message: type: string - example: 'Mandate authorizations retrieved successfully' + example: "Mandate authorizations retrieved successfully" data: type: array items: - $ref: '#/components/schemas/CustomerFetchMandateAuthorizationsResponseData' + $ref: "#/components/schemas/CustomerFetchMandateAuthorizationsResponseData" meta: - $ref: '#/components/schemas/CustomerFetchMandateAuthorizationsResponseMeta' + $ref: "#/components/schemas/CustomerFetchMandateAuthorizationsResponseMeta" required: - status - message - data - meta responses: - TransactionInitializeSuccess: - description: Transaction Initialize response - content: - application/json: - schema: - $ref: '#/components/schemas/TransactionInitializeResponse' TransactionInitializeBadRequestResponse: description: Responses from the Transaction Initialize endpoint content: application/json: schema: - $ref: '#/components/schemas/TransactionInitializeBadRequestModel' + $ref: "#/components/schemas/TransactionInitializeBadRequestModel" Unauthorized: description: Unauthorized operation content: application/json: schema: - $ref: '#/components/schemas/Error' + $ref: "#/components/schemas/Error" example: status: false message: Invalid key - TransactionVerifySuccess: - description: Transaction Verify response - content: - application/json: - schema: - $ref: '#/components/schemas/TransactionVerifyResponse' NotFound: description: Entity not found content: application/json: schema: - $ref: '#/components/schemas/Error' + $ref: "#/components/schemas/Error" example: status: false message: Entity not found - TransactionListSuccess: - description: Transaction List response - content: - application/json: - schema: - $ref: '#/components/schemas/TransactionListResponse' - TransactionFetchSuccess: - description: Transaction Fetch response - content: - application/json: - schema: - $ref: '#/components/schemas/TransactionFetchResponse' - TransactionTimelineSuccess: - description: Transaction Timeline response - content: - application/json: - schema: - $ref: '#/components/schemas/TransactionTimelineResponse' - TransactionTotalsSuccess: - description: Transaction Totals response - content: - application/json: - schema: - $ref: '#/components/schemas/TransactionTotalsResponse' - TransactionExportSuccess: - description: Transaction Export response - content: - application/json: - schema: - $ref: '#/components/schemas/TransactionExportResponse' - TransactionChargeSuccess: - description: Transaction Charge response - content: - application/json: - schema: - $ref: '#/components/schemas/TransactionChargeResponse' - TransactionPartialDebitSuccess: - description: Transaction Partial Debit response - content: - application/json: - schema: - $ref: '#/components/schemas/TransactionPartialDebitResponse' Ok: description: Request successful content: application/json: schema: - $ref: '#/components/schemas/Response' + $ref: "#/components/schemas/Response" SplitListSuccess: description: Split List response content: application/json: schema: - $ref: '#/components/schemas/SplitListResponse' + $ref: "#/components/schemas/SplitListResponse" SplitCreateSuccess: description: Split Create response content: application/json: schema: - $ref: '#/components/schemas/SplitCreateResponse' + $ref: "#/components/schemas/SplitCreateResponse" SplitFetchSuccess: description: Split Fetch response content: application/json: schema: - $ref: '#/components/schemas/SplitFetchResponse' + $ref: "#/components/schemas/SplitFetchResponse" SplitUpdateSuccess: description: Split Update response content: application/json: schema: - $ref: '#/components/schemas/SplitUpdateResponse' + $ref: "#/components/schemas/SplitUpdateResponse" SplitAddUpdateSubaccountSuccess: description: Split Add Update Subaccount response content: application/json: schema: - $ref: '#/components/schemas/SplitAddUpdateSubaccountResponse' + $ref: "#/components/schemas/SplitAddUpdateSubaccountResponse" SplitRemoveSubaccountSuccess: description: Split Remove Subaccount response content: application/json: schema: - $ref: '#/components/schemas/SplitRemoveSubaccountResponse' + $ref: "#/components/schemas/SplitRemoveSubaccountResponse" TerminalGetStatusSuccess: description: Terminal Get Status response content: application/json: schema: - $ref: '#/components/schemas/TerminalGetStatusResponse' + $ref: "#/components/schemas/TerminalGetStatusResponse" TerminalListsSuccess: description: Terminal Lists response content: application/json: schema: - $ref: '#/components/schemas/TerminalListsResponse' + $ref: "#/components/schemas/TerminalListsResponse" TerminalGetSuccess: description: Terminal Get response content: application/json: schema: - $ref: '#/components/schemas/TerminalGetResponse' + $ref: "#/components/schemas/TerminalGetResponse" TerminalUpdateSuccess: description: Terminal Update response content: application/json: schema: - $ref: '#/components/schemas/TerminalUpdateResponse' + $ref: "#/components/schemas/TerminalUpdateResponse" TerminalCommissionDeviceSuccess: description: Terminal Commission Device response content: application/json: schema: - $ref: '#/components/schemas/TerminalCommissionDeviceResponse' + $ref: "#/components/schemas/TerminalCommissionDeviceResponse" TerminalDecommissionDeviceSuccess: description: Terminal Decommission Device response content: application/json: schema: - $ref: '#/components/schemas/TerminalDecommissionDeviceResponse' + $ref: "#/components/schemas/TerminalDecommissionDeviceResponse" + VirtualTerminalCreateSuccess: + description: Virtual Terminal Create response + content: + application/json: + schema: + $ref: '#/components/schemas/VirtualTerminalCreateResponse' + VirtualTerminalListSuccess: + description: Virtual Terminal Lists response + content: + application/json: + schema: + $ref: '#/components/schemas/VirtualTerminalListResponse' + VirtualTerminalFetchSuccess: + description: Virtual Terminal Fetch response + content: + application/json: + schema: + $ref: '#/components/schemas/VirtualTerminalFetchResponse' + VirtualTerminalUpdateSuccess: + description: Virtual Terminal Update response + content: + application/json: + schema: + $ref: '#/components/schemas/VirtualTerminalUpdateResponse' + VirtualTerminalDeactivateSuccess: + description: Virtual Terminal Deactivate response + content: + application/json: + schema: + $ref: '#/components/schemas/VirtualTerminalDeactivateResponse' + VirtualTerminalDestinationAssignSuccess: + description: Virtual Terminal Deactivate response + content: + application/json: + schema: + $ref: '#/components/schemas/VirtualTerminalDestinationAssignResponse' + VirtualTerminalDestinationUnassignSuccess: + description: Virtual Terminal unassign response + content: + application/json: + schema: + $ref: '#/components/schemas/VirtualTerminalDestinationUnassignResponse' + VirtualTerminalAddSplitCodeSuccess: + description: Virtual Terminal Split Assign response + content: + application/json: + schema: + $ref: '#/components/schemas/VirtualTerminalAddSplitCodeResponse' + VirtualTerminalDeleteSplitCodeSuccess: + description: Virtual Terminal Split Remove response + content: + application/json: + schema: + $ref: '#/components/schemas/VirtualTerminalDeleteSplitCodeResponse' CustomerListSuccess: description: Customer List response content: application/json: schema: - $ref: '#/components/schemas/CustomerListResponse' + $ref: "#/components/schemas/CustomerListResponse" CustomerCreateSuccess: description: Customer Create response content: application/json: schema: - $ref: '#/components/schemas/CustomerCreateResponse' + $ref: "#/components/schemas/CustomerCreateResponse" CustomerFetchSuccess: description: Customer Fetch response content: application/json: schema: - $ref: '#/components/schemas/CustomerFetchResponse' + $ref: "#/components/schemas/CustomerFetchResponse" CustomerUpdateSuccess: description: Customer Update response content: application/json: schema: - $ref: '#/components/schemas/CustomerUpdateResponse' + $ref: "#/components/schemas/CustomerUpdateResponse" CustomerWhitelistBlacklistSuccess: description: Customer Whitelist Blacklist response content: application/json: schema: - $ref: '#/components/schemas/CustomerWhitelistBlacklistResponse' + $ref: "#/components/schemas/CustomerRiskActionResponse" CustomerDeactivateAuthorizationSuccess: description: Customer Deactivate Authorization response content: application/json: schema: - $ref: '#/components/schemas/CustomerDeactivateAuthorizationResponse' + $ref: "#/components/schemas/CustomerDeactivateAuthorizationResponse" CustomerValidateSuccess: description: Customer Validate response content: application/json: schema: - $ref: '#/components/schemas/CustomerValidateResponse' + $ref: "#/components/schemas/CustomerValidateResponse" DedicatedNubanFetchSuccess: description: Dedicated Nuban Fetch response content: application/json: schema: - $ref: '#/components/schemas/DedicatedNubanFetchResponse' + $ref: "#/components/schemas/DedicatedNubanFetchResponse" DedicatedNubanCreateSuccess: description: Dedicated Nuban Create response content: application/json: schema: - $ref: '#/components/schemas/DedicatedNubanCreateResponse' + $ref: "#/components/schemas/DedicatedNubanCreateResponse" DedicatedNubanDeactivateSuccess: description: Dedicated Nuban Deactivate response content: application/json: schema: - $ref: '#/components/schemas/DedicatedNubanDeactivateResponse' + $ref: "#/components/schemas/DedicatedNubanDeactivateResponse" ApplePayOkResponse: description: Responses from the Transaction Initialize endpoint content: application/json: schema: - $ref: '#/components/schemas/ApplePayCreateOkModel' + $ref: "#/components/schemas/ApplePayCreateOkModel" SubaccountListSuccess: description: Subaccount List response content: application/json: schema: - $ref: '#/components/schemas/SubaccountListResponse' + $ref: "#/components/schemas/SubaccountListResponse" SubaccountCreateSuccess: description: Subaccount Create response content: application/json: schema: - $ref: '#/components/schemas/SubaccountCreateResponse' + $ref: "#/components/schemas/SubaccountCreateResponse" SubaccountFetchSuccess: description: Subaccount Fetch response content: application/json: schema: - $ref: '#/components/schemas/SubaccountFetchResponse' + $ref: "#/components/schemas/SubaccountFetchResponse" SubaccountUpdateSuccess: description: Subaccount Update response content: application/json: schema: - $ref: '#/components/schemas/SubaccountUpdateResponse' + $ref: "#/components/schemas/SubaccountUpdateResponse" PlanListSuccess: description: Plan List response content: application/json: schema: - $ref: '#/components/schemas/PlanListResponse' + $ref: "#/components/schemas/PlanListResponse" PlanCreateSuccess: description: Plan Create response content: application/json: schema: - $ref: '#/components/schemas/PlanCreateResponse' + $ref: "#/components/schemas/PlanCreateResponse" PlanFetchSuccess: description: Plan Fetch response content: application/json: schema: - $ref: '#/components/schemas/PlanFetchResponse' + $ref: "#/components/schemas/PlanFetchResponse" PlanUpdateSuccess: description: Plan Update response content: application/json: schema: - $ref: '#/components/schemas/PlanUpdateResponse' + $ref: "#/components/schemas/PlanUpdateResponse" SubscriptionListSuccess: description: Subscription List response content: application/json: schema: - $ref: '#/components/schemas/SubscriptionListResponse' + $ref: "#/components/schemas/SubscriptionListResponse" SubscriptionCreateSuccess: description: Subscription Create response content: application/json: schema: - $ref: '#/components/schemas/SubscriptionCreateResponse' + $ref: "#/components/schemas/SubscriptionCreateResponse" SubscriptionFetchSuccess: description: Subscription Fetch response content: application/json: schema: - $ref: '#/components/schemas/SubscriptionFetchResponse' + $ref: "#/components/schemas/SubscriptionFetchResponse" SubscriptionDisableSuccess: description: Subscription Disable response content: application/json: schema: - $ref: '#/components/schemas/SubscriptionDisableResponse' + $ref: "#/components/schemas/SubscriptionDisableResponse" ProductListsSuccess: description: Product Lists response content: application/json: schema: - $ref: '#/components/schemas/ProductListsResponse' + $ref: "#/components/schemas/ProductListsResponse" ProductCreateSuccess: description: Product Create response content: application/json: schema: - $ref: '#/components/schemas/ProductCreateResponse' + $ref: "#/components/schemas/ProductCreateResponse" ProductFetchSuccess: description: Product Fetch response content: application/json: schema: - $ref: '#/components/schemas/ProductFetchResponse' + $ref: "#/components/schemas/ProductFetchResponse" ProductUpdateSuccess: description: Product Update response content: application/json: schema: - $ref: '#/components/schemas/ProductUpdateResponse' + $ref: "#/components/schemas/ProductUpdateResponse" ProductDeleteSuccess: description: Product Delete response content: application/json: schema: - $ref: '#/components/schemas/ProductDeleteResponse' + $ref: "#/components/schemas/ProductDeleteResponse" StorefrontListSuccess: description: Storefront List response content: application/json: schema: - $ref: '#/components/schemas/StorefrontListResponse' + $ref: "#/components/schemas/StorefrontListResponse" StorefrontCreateSuccess: description: Storefront Create response content: application/json: schema: - $ref: '#/components/schemas/StorefrontCreateResponse' + $ref: "#/components/schemas/StorefrontCreateResponse" StorefrontFetchSuccess: description: Storefront Fetch response content: application/json: schema: - $ref: '#/components/schemas/StorefrontFetchResponse' + $ref: "#/components/schemas/StorefrontFetchResponse" StorefrontUpdateSuccess: description: Storefront Update response content: application/json: schema: - $ref: '#/components/schemas/StorefrontUpdateResponse' + $ref: "#/components/schemas/StorefrontUpdateResponse" StorefrontDeleteSuccess: description: Storefront Delete response content: application/json: schema: - $ref: '#/components/schemas/StorefrontDeleteResponse' + $ref: "#/components/schemas/StorefrontDeleteResponse" OrderListSuccess: description: Order List response content: application/json: schema: - $ref: '#/components/schemas/OrderListResponse' + $ref: "#/components/schemas/OrderListResponse" OrderCreateSuccess: description: Order Create response content: application/json: schema: - $ref: '#/components/schemas/OrderCreateResponse' + $ref: "#/components/schemas/OrderCreateResponse" OrderFetchSuccess: description: Order Fetch response content: application/json: schema: - $ref: '#/components/schemas/OrderFetchResponse' + $ref: "#/components/schemas/OrderFetchResponse" OrderFetchProductSuccess: description: Order Fetch Product response content: application/json: schema: - $ref: '#/components/schemas/OrderFetchProductResponse' + $ref: "#/components/schemas/OrderFetchProductResponse" OrderValidateSuccess: description: Order Validate response content: application/json: schema: - $ref: '#/components/schemas/OrderValidateResponse' + $ref: "#/components/schemas/OrderValidateResponse" PageListSuccess: description: Page List response content: application/json: schema: - $ref: '#/components/schemas/PageListResponse' + $ref: "#/components/schemas/PageListResponse" PageCreateSuccess: description: Page Create response content: application/json: schema: - $ref: '#/components/schemas/PageCreateResponse' + $ref: "#/components/schemas/PageCreateResponse" PageFetchSuccess: description: Page Fetch response content: application/json: schema: - $ref: '#/components/schemas/PageFetchResponse' + $ref: "#/components/schemas/PageFetchResponse" PageUpdateSuccess: description: Page Update response content: application/json: schema: - $ref: '#/components/schemas/PageUpdateResponse' + $ref: "#/components/schemas/PageUpdateResponse" PageCheckSlugAvailabilitySuccess: description: Page Check Slug Availability response content: application/json: schema: - $ref: '#/components/schemas/PageCheckSlugAvailabilityResponse' + $ref: "#/components/schemas/PageCheckSlugAvailabilityResponse" PageAddProductsSuccess: description: Page Add Products response content: application/json: schema: - $ref: '#/components/schemas/PageAddProductsResponse' + $ref: "#/components/schemas/PageAddProductsResponse" PaymentRequestListSuccess: description: Payment Request List response content: application/json: schema: - $ref: '#/components/schemas/PaymentRequestListResponse' + $ref: "#/components/schemas/PaymentRequestListResponse" PaymentRequestCreateSuccess: description: Payment Request Create response content: application/json: schema: - $ref: '#/components/schemas/PaymentRequestCreateResponse' + $ref: "#/components/schemas/PaymentRequestCreateResponse" PaymentRequestUpdateSuccess: description: Payment Request Update response content: application/json: schema: - $ref: '#/components/schemas/PaymentRequestUpdateResponse' + $ref: "#/components/schemas/PaymentRequestUpdateResponse" PaymentRequestVerifySuccess: description: Payment Request Verify response content: application/json: schema: - $ref: '#/components/schemas/PaymentRequestVerifyResponse' + $ref: "#/components/schemas/PaymentRequestVerifyResponse" PaymentRequestSendNotificationSuccess: description: Payment Request Send Notification response content: application/json: schema: - $ref: '#/components/schemas/PaymentRequestSendNotificationResponse' + $ref: "#/components/schemas/PaymentRequestSendNotificationResponse" PaymentRequestTotalSuccess: description: Payment Request Total response content: application/json: schema: - $ref: '#/components/schemas/PaymentRequestTotalResponse' + $ref: "#/components/schemas/PaymentRequestTotalResponse" PaymentRequestFinalizeSuccess: description: Payment Request Finalize response content: application/json: schema: - $ref: '#/components/schemas/PaymentRequestFinalizeResponse' + $ref: "#/components/schemas/PaymentRequestFinalizeResponse" PaymentRequestArchiveSuccess: description: Payment Request Archive response content: application/json: schema: - $ref: '#/components/schemas/PaymentRequestArchiveResponse' + $ref: "#/components/schemas/PaymentRequestArchiveResponse" TransferRecipientListSuccess: description: Transfer Recipient List response content: application/json: schema: - $ref: '#/components/schemas/TransferRecipientListResponse' + $ref: "#/components/schemas/TransferRecipientListResponse" TransferRecipientCreateSuccess: description: Transfer Recipient Create response content: application/json: schema: - $ref: '#/components/schemas/TransferRecipientCreateResponse' + $ref: "#/components/schemas/TransferRecipientCreateResponse" TransferRecipientBulkCreateSuccess: description: Transfer Recipient Bulk Create response content: application/json: schema: - $ref: '#/components/schemas/TransferRecipientBulkCreateResponse' + $ref: "#/components/schemas/TransferRecipientBulkCreateResponse" TransferRecipientFetchSuccess: description: Transfer Recipient Fetch response content: application/json: schema: - $ref: '#/components/schemas/TransferRecipientFetchResponse' + $ref: "#/components/schemas/TransferRecipientFetchResponse" TransferRecipientUpdateSuccess: description: Transfer Recipient Update response content: application/json: schema: - $ref: '#/components/schemas/TransferRecipientUpdateResponse' + $ref: "#/components/schemas/TransferRecipientUpdateResponse" TransferRecipientDeleteSuccess: description: Transfer Recipient Delete response content: application/json: schema: - $ref: '#/components/schemas/TransferRecipientDeleteResponse' + $ref: "#/components/schemas/TransferRecipientDeleteResponse" TransferListSuccess: description: Transfer List response content: application/json: schema: - $ref: '#/components/schemas/TransferListResponse' + $ref: "#/components/schemas/TransferListResponse" TransferCreateSuccess: description: Transfer Create response content: application/json: schema: - $ref: '#/components/schemas/TransferCreateResponse' + $ref: "#/components/schemas/TransferCreateResponse" TransferBulkSuccess: description: Transfer Bulk response content: application/json: schema: - $ref: '#/components/schemas/TransferBulkResponse' + $ref: "#/components/schemas/TransferBulkResponse" TransferFetchSuccess: description: Transfer Fetch response content: application/json: schema: - $ref: '#/components/schemas/TransferFetchResponse' + $ref: "#/components/schemas/TransferFetchResponse" TransferVerifySuccess: description: Transfer Verify response content: application/json: schema: - $ref: '#/components/schemas/TransferVerifyResponse' + $ref: "#/components/schemas/TransferVerifyResponse" TransferResendsOtpSuccess: description: Transfer Resends Otp response content: application/json: schema: - $ref: '#/components/schemas/TransferResendsOtpResponse' + $ref: "#/components/schemas/TransferResendsOtpResponse" TransferDisablesOtpSuccess: description: Transfer Disables Otp response content: application/json: schema: - $ref: '#/components/schemas/TransferDisablesOtpResponse' + $ref: "#/components/schemas/TransferDisablesOtpResponse" TransferFinalizeDisablesOtpSuccess: description: Transfer Finalize Disables Otp response content: application/json: schema: - $ref: '#/components/schemas/TransferFinalizeDisablesOtpResponse' + $ref: "#/components/schemas/TransferFinalizeDisablesOtpResponse" TransferEnablesOtpSuccess: description: Transfer Enables Otp response content: application/json: schema: - $ref: '#/components/schemas/TransferEnablesOtpResponse' + $ref: "#/components/schemas/TransferEnablesOtpResponse" BalanceCheckSuccess: description: Balance Check response content: application/json: schema: - $ref: '#/components/schemas/BalanceCheckResponse' + $ref: "#/components/schemas/BalanceCheckResponse" BalanceFetchLedgerSuccess: description: Balance Fetch Ledger response content: application/json: schema: - $ref: '#/components/schemas/BalanceFetchLedgerResponse' + $ref: "#/components/schemas/BalanceFetchLedgerResponse" ChargeCreateSuccess: description: Charge Create response content: application/json: schema: - $ref: '#/components/schemas/ChargeCreateResponse' + $ref: "#/components/schemas/ChargeCreateResponse" ChargeSubmitPinSuccess: description: Charge Submit Pin response content: application/json: schema: - $ref: '#/components/schemas/ChargeSubmitPinResponse' + $ref: "#/components/schemas/ChargeSubmitPinResponse" ChargeSubmitOtpSuccess: description: Charge Submit Otp response content: application/json: schema: - $ref: '#/components/schemas/ChargeSubmitOtpResponse' + $ref: "#/components/schemas/ChargeSubmitOtpResponse" ChargeSubmitPhoneSuccess: description: Charge Submit Phone response content: application/json: schema: - $ref: '#/components/schemas/ChargeSubmitPhoneResponse' + $ref: "#/components/schemas/ChargeSubmitPhoneResponse" ChargeSubmitBirthdaySuccess: description: Charge Submit Birthday response content: application/json: schema: - $ref: '#/components/schemas/ChargeSubmitBirthdayResponse' + $ref: "#/components/schemas/ChargeSubmitBirthdayResponse" ChargeCheckPendingSuccess: description: Charge Check Pending response content: application/json: schema: - $ref: '#/components/schemas/ChargeCheckPendingResponse' + $ref: "#/components/schemas/ChargeCheckPendingResponse" BulkChargeListSuccess: description: Bulk Charge List response content: application/json: schema: - $ref: '#/components/schemas/BulkChargeListResponse' + $ref: "#/components/schemas/BulkChargeListResponse" BulkChargeInitiateSuccess: description: Bulk Charge Initiate response content: application/json: schema: - $ref: '#/components/schemas/BulkChargeInitiateResponse' + $ref: "#/components/schemas/BulkChargeInitiateResponse" BulkChargeFetchSuccess: description: Bulk Charge Fetch response content: application/json: schema: - $ref: '#/components/schemas/BulkChargeFetchResponse' + $ref: "#/components/schemas/BulkChargeFetchResponse" BulkChargeFetchBulkBatchChargesSuccess: description: Bulk Charge Fetch Bulk Batch Charges response content: application/json: schema: - $ref: '#/components/schemas/BulkChargeFetchBulkBatchChargesResponse' + $ref: "#/components/schemas/BulkChargeFetchBulkBatchChargesResponse" BulkChargePauseSuccess: description: Bulk Charge Pause response content: application/json: schema: - $ref: '#/components/schemas/BulkChargePauseResponse' + $ref: "#/components/schemas/BulkChargePauseResponse" BulkChargeResumeSuccess: description: Bulk Charge Resume response content: application/json: schema: - $ref: '#/components/schemas/BulkChargeResumeResponse' + $ref: "#/components/schemas/BulkChargeResumeResponse" RefundListSuccess: description: Refund List response content: application/json: schema: - $ref: '#/components/schemas/RefundListResponse' + $ref: "#/components/schemas/RefundListResponse" RefundCreateSuccess: description: Refund Create response content: application/json: schema: - $ref: '#/components/schemas/RefundCreateResponse' + $ref: "#/components/schemas/RefundCreateResponse" RefundFetchSuccess: description: Refund Fetch response content: application/json: schema: - $ref: '#/components/schemas/RefundFetchResponse' + $ref: "#/components/schemas/RefundFetchResponse" DisputeListSuccess: description: Dispute List response content: application/json: schema: - $ref: '#/components/schemas/DisputeListResponse' + $ref: "#/components/schemas/DisputeListResponse" DisputeFetchSuccess: description: Dispute Fetch response content: application/json: schema: - $ref: '#/components/schemas/DisputeFetchResponse' + $ref: "#/components/schemas/DisputeFetchResponse" DisputeUpdateSuccess: description: Dispute Update response content: application/json: schema: - $ref: '#/components/schemas/DisputeUpdateResponse' + $ref: "#/components/schemas/DisputeUpdateResponse" DisputeUploadURLSuccess: description: Dispute Upload U R L response content: application/json: schema: - $ref: '#/components/schemas/DisputeUploadURLResponse' + $ref: "#/components/schemas/DisputeUploadURLResponse" DisputeExportSuccess: description: Dispute Export response content: application/json: schema: - $ref: '#/components/schemas/DisputeExportResponse' + $ref: "#/components/schemas/DisputeExportResponse" DisputeListTransactionSuccess: description: Dispute List Transaction response content: application/json: schema: - $ref: '#/components/schemas/DisputeListTransactionResponse' + $ref: "#/components/schemas/DisputeListTransactionResponse" DisputeResolveSuccess: description: Dispute Resolve response content: application/json: schema: - $ref: '#/components/schemas/DisputeResolveResponse' + $ref: "#/components/schemas/DisputeResolveResponse" DisputeAddEvidenceSuccess: description: Dispute Add Evidence response content: application/json: schema: - $ref: '#/components/schemas/DisputeAddEvidenceResponse' + $ref: "#/components/schemas/DisputeAddEvidenceResponse" MiscellaneousListBanksSuccess: description: Miscellaneous List Banks response content: application/json: schema: - $ref: '#/components/schemas/MiscellaneousListBanksResponse' + $ref: "#/components/schemas/MiscellaneousListBanksResponse" VerificationResolveAccountNumberSuccess: description: Verification Resolve Account Number response content: application/json: schema: - $ref: '#/components/schemas/VerificationResolveAccountNumberResponse' + $ref: "#/components/schemas/VerificationResolveAccountNumberResponse" VerificationValidateAccountSuccess: description: Verification Validate Account response content: application/json: schema: - $ref: '#/components/schemas/VerificationValidateAccountResponse' + $ref: "#/components/schemas/VerificationValidateAccountResponse" VerificationResolveCardBINSuccess: description: Verification Resolve Card B I N response content: application/json: schema: - $ref: '#/components/schemas/VerificationResolveCardBINResponse' + $ref: "#/components/schemas/VerificationResolveCardBINResponse" MiscellaneousListCountriesSuccess: description: Miscellaneous List Countries response content: application/json: schema: - $ref: '#/components/schemas/MiscellaneousListCountriesResponse' + $ref: "#/components/schemas/MiscellaneousListCountriesResponse" MiscellaneousListStatesSuccess: description: Miscellaneous List States response content: application/json: schema: - $ref: '#/components/schemas/MiscellaneousListStatesResponse' + $ref: "#/components/schemas/MiscellaneousListStatesResponse" CustomerInitializeDirectDebitSuccess: description: Customer Initialize Direct Debit response content: diff --git a/src/assets/openapi/components/responses/ApplePayOkResponse.yaml b/src/assets/openapi/components/responses/ApplePayOkResponse.yaml new file mode 100644 index 0000000..cc08bde --- /dev/null +++ b/src/assets/openapi/components/responses/ApplePayOkResponse.yaml @@ -0,0 +1,5 @@ +description: Responses from the Transaction Initialize endpoint +content: + application/json: + schema: + $ref: ../schemas/ApplePayCreateOkModel.yaml diff --git a/src/assets/openapi/components/responses/BalanceCheckSuccess.yaml b/src/assets/openapi/components/responses/BalanceCheckSuccess.yaml new file mode 100644 index 0000000..a69bf7d --- /dev/null +++ b/src/assets/openapi/components/responses/BalanceCheckSuccess.yaml @@ -0,0 +1,5 @@ +description: Balance Check response +content: + application/json: + schema: + $ref: ../schemas/BalanceCheckResponse.yaml diff --git a/src/assets/openapi/components/responses/BalanceFetchLedgerSuccess.yaml b/src/assets/openapi/components/responses/BalanceFetchLedgerSuccess.yaml new file mode 100644 index 0000000..f43d830 --- /dev/null +++ b/src/assets/openapi/components/responses/BalanceFetchLedgerSuccess.yaml @@ -0,0 +1,5 @@ +description: Balance Fetch Ledger response +content: + application/json: + schema: + $ref: ../schemas/BalanceFetchLedgerResponse.yaml diff --git a/src/assets/openapi/components/responses/BulkChargeFetchBulkBatchChargesSuccess.yaml b/src/assets/openapi/components/responses/BulkChargeFetchBulkBatchChargesSuccess.yaml new file mode 100644 index 0000000..0560a96 --- /dev/null +++ b/src/assets/openapi/components/responses/BulkChargeFetchBulkBatchChargesSuccess.yaml @@ -0,0 +1,5 @@ +description: Bulk Charge Fetch Bulk Batch Charges response +content: + application/json: + schema: + $ref: ../schemas/BulkChargeFetchBulkBatchChargesResponse.yaml diff --git a/src/assets/openapi/components/responses/BulkChargeFetchSuccess.yaml b/src/assets/openapi/components/responses/BulkChargeFetchSuccess.yaml new file mode 100644 index 0000000..401ef65 --- /dev/null +++ b/src/assets/openapi/components/responses/BulkChargeFetchSuccess.yaml @@ -0,0 +1,5 @@ +description: Bulk Charge Fetch response +content: + application/json: + schema: + $ref: ../schemas/BulkChargeFetchResponse.yaml diff --git a/src/assets/openapi/components/responses/BulkChargeInitiateSuccess.yaml b/src/assets/openapi/components/responses/BulkChargeInitiateSuccess.yaml new file mode 100644 index 0000000..eb460e5 --- /dev/null +++ b/src/assets/openapi/components/responses/BulkChargeInitiateSuccess.yaml @@ -0,0 +1,5 @@ +description: Bulk Charge Initiate response +content: + application/json: + schema: + $ref: ../schemas/BulkChargeInitiateResponse.yaml diff --git a/src/assets/openapi/components/responses/BulkChargeListSuccess.yaml b/src/assets/openapi/components/responses/BulkChargeListSuccess.yaml new file mode 100644 index 0000000..3420f0b --- /dev/null +++ b/src/assets/openapi/components/responses/BulkChargeListSuccess.yaml @@ -0,0 +1,5 @@ +description: Bulk Charge List response +content: + application/json: + schema: + $ref: ../schemas/BulkChargeListResponse.yaml diff --git a/src/assets/openapi/components/responses/BulkChargePauseSuccess.yaml b/src/assets/openapi/components/responses/BulkChargePauseSuccess.yaml new file mode 100644 index 0000000..003d488 --- /dev/null +++ b/src/assets/openapi/components/responses/BulkChargePauseSuccess.yaml @@ -0,0 +1,5 @@ +description: Bulk Charge Pause response +content: + application/json: + schema: + $ref: ../schemas/BulkChargePauseResponse.yaml diff --git a/src/assets/openapi/components/responses/BulkChargeResumeSuccess.yaml b/src/assets/openapi/components/responses/BulkChargeResumeSuccess.yaml new file mode 100644 index 0000000..6834ee6 --- /dev/null +++ b/src/assets/openapi/components/responses/BulkChargeResumeSuccess.yaml @@ -0,0 +1,5 @@ +description: Bulk Charge Resume response +content: + application/json: + schema: + $ref: ../schemas/BulkChargeResumeResponse.yaml diff --git a/src/assets/openapi/components/responses/ChargeCheckPendingSuccess.yaml b/src/assets/openapi/components/responses/ChargeCheckPendingSuccess.yaml new file mode 100644 index 0000000..6cea6d2 --- /dev/null +++ b/src/assets/openapi/components/responses/ChargeCheckPendingSuccess.yaml @@ -0,0 +1,5 @@ +description: Charge Check Pending response +content: + application/json: + schema: + $ref: ../schemas/ChargeCheckPendingResponse.yaml diff --git a/src/assets/openapi/components/responses/ChargeCreateSuccess.yaml b/src/assets/openapi/components/responses/ChargeCreateSuccess.yaml new file mode 100644 index 0000000..6849d52 --- /dev/null +++ b/src/assets/openapi/components/responses/ChargeCreateSuccess.yaml @@ -0,0 +1,5 @@ +description: Charge Create response +content: + application/json: + schema: + $ref: ../schemas/ChargeCreateResponse.yaml diff --git a/src/assets/openapi/components/responses/ChargeSubmitBirthdaySuccess.yaml b/src/assets/openapi/components/responses/ChargeSubmitBirthdaySuccess.yaml new file mode 100644 index 0000000..e91fe07 --- /dev/null +++ b/src/assets/openapi/components/responses/ChargeSubmitBirthdaySuccess.yaml @@ -0,0 +1,5 @@ +description: Charge Submit Birthday response +content: + application/json: + schema: + $ref: ../schemas/ChargeSubmitBirthdayResponse.yaml diff --git a/src/assets/openapi/components/responses/ChargeSubmitOtpSuccess.yaml b/src/assets/openapi/components/responses/ChargeSubmitOtpSuccess.yaml new file mode 100644 index 0000000..c6987bf --- /dev/null +++ b/src/assets/openapi/components/responses/ChargeSubmitOtpSuccess.yaml @@ -0,0 +1,5 @@ +description: Charge Submit Otp response +content: + application/json: + schema: + $ref: ../schemas/ChargeSubmitOtpResponse.yaml diff --git a/src/assets/openapi/components/responses/ChargeSubmitPhoneSuccess.yaml b/src/assets/openapi/components/responses/ChargeSubmitPhoneSuccess.yaml new file mode 100644 index 0000000..d47387a --- /dev/null +++ b/src/assets/openapi/components/responses/ChargeSubmitPhoneSuccess.yaml @@ -0,0 +1,5 @@ +description: Charge Submit Phone response +content: + application/json: + schema: + $ref: ../schemas/ChargeSubmitPhoneResponse.yaml diff --git a/src/assets/openapi/components/responses/ChargeSubmitPinSuccess.yaml b/src/assets/openapi/components/responses/ChargeSubmitPinSuccess.yaml new file mode 100644 index 0000000..033f6a4 --- /dev/null +++ b/src/assets/openapi/components/responses/ChargeSubmitPinSuccess.yaml @@ -0,0 +1,5 @@ +description: Charge Submit Pin response +content: + application/json: + schema: + $ref: ../schemas/ChargeSubmitPinResponse.yaml diff --git a/src/assets/openapi/components/responses/CustomerAuthorizationInitializeSuccess.yaml b/src/assets/openapi/components/responses/CustomerAuthorizationInitializeSuccess.yaml new file mode 100644 index 0000000..549bbce --- /dev/null +++ b/src/assets/openapi/components/responses/CustomerAuthorizationInitializeSuccess.yaml @@ -0,0 +1,5 @@ +description: Customer Authorization Initialize response +content: + application/json: + schema: + $ref: ../schemas/CustomerAuthorizationInitializeResponse.yaml diff --git a/src/assets/openapi/components/responses/CustomerAuthorizationVerifySuccess.yaml b/src/assets/openapi/components/responses/CustomerAuthorizationVerifySuccess.yaml new file mode 100644 index 0000000..306279b --- /dev/null +++ b/src/assets/openapi/components/responses/CustomerAuthorizationVerifySuccess.yaml @@ -0,0 +1,5 @@ +description: Customer Authorization Verify response +content: + application/json: + schema: + $ref: ../schemas/CustomerAuthorizationVerifyResponse.yaml diff --git a/src/assets/openapi/components/responses/CustomerCreateSuccess.yaml b/src/assets/openapi/components/responses/CustomerCreateSuccess.yaml new file mode 100644 index 0000000..a23e495 --- /dev/null +++ b/src/assets/openapi/components/responses/CustomerCreateSuccess.yaml @@ -0,0 +1,5 @@ +description: Customer Create response +content: + application/json: + schema: + $ref: ../schemas/CustomerCreateResponse.yaml diff --git a/src/assets/openapi/components/responses/CustomerDeactivateAuthorizationSuccess.yaml b/src/assets/openapi/components/responses/CustomerDeactivateAuthorizationSuccess.yaml new file mode 100644 index 0000000..f0f6017 --- /dev/null +++ b/src/assets/openapi/components/responses/CustomerDeactivateAuthorizationSuccess.yaml @@ -0,0 +1,5 @@ +description: Customer Deactivate Authorization response +content: + application/json: + schema: + $ref: ../schemas/CustomerDeactivateAuthorizationResponse.yaml diff --git a/src/assets/openapi/components/responses/CustomerDirectDebitActivationChargeSuccess.yaml b/src/assets/openapi/components/responses/CustomerDirectDebitActivationChargeSuccess.yaml new file mode 100644 index 0000000..c88585a --- /dev/null +++ b/src/assets/openapi/components/responses/CustomerDirectDebitActivationChargeSuccess.yaml @@ -0,0 +1,5 @@ +description: Customer Direct Debit Activation Charge response +content: + application/json: + schema: + $ref: ../schemas/CustomerDirectDebitActivationChargeResponse.yaml diff --git a/src/assets/openapi/components/responses/CustomerFetchMandateAuthorizationsSuccess.yaml b/src/assets/openapi/components/responses/CustomerFetchMandateAuthorizationsSuccess.yaml new file mode 100644 index 0000000..d998fc4 --- /dev/null +++ b/src/assets/openapi/components/responses/CustomerFetchMandateAuthorizationsSuccess.yaml @@ -0,0 +1,5 @@ +description: Customer Fetch Mandate Authorizations response +content: + application/json: + schema: + $ref: ../schemas/CustomerFetchMandateAuthorizationsResponse.yaml diff --git a/src/assets/openapi/components/responses/CustomerFetchSuccess.yaml b/src/assets/openapi/components/responses/CustomerFetchSuccess.yaml new file mode 100644 index 0000000..c69dea7 --- /dev/null +++ b/src/assets/openapi/components/responses/CustomerFetchSuccess.yaml @@ -0,0 +1,5 @@ +description: Customer Fetch response +content: + application/json: + schema: + $ref: ../schemas/CustomerFetchResponse.yaml diff --git a/src/assets/openapi/components/responses/CustomerInitializeDirectDebitSuccess.yaml b/src/assets/openapi/components/responses/CustomerInitializeDirectDebitSuccess.yaml new file mode 100644 index 0000000..39e2f85 --- /dev/null +++ b/src/assets/openapi/components/responses/CustomerInitializeDirectDebitSuccess.yaml @@ -0,0 +1,5 @@ +description: Customer Initialize Direct Debit response +content: + application/json: + schema: + $ref: ../schemas/CustomerInitializeDirectDebitResponse.yaml diff --git a/src/assets/openapi/components/responses/CustomerListSuccess.yaml b/src/assets/openapi/components/responses/CustomerListSuccess.yaml new file mode 100644 index 0000000..80a7481 --- /dev/null +++ b/src/assets/openapi/components/responses/CustomerListSuccess.yaml @@ -0,0 +1,5 @@ +description: Customer List response +content: + application/json: + schema: + $ref: ../schemas/CustomerListResponse.yaml diff --git a/src/assets/openapi/components/responses/CustomerUpdateSuccess.yaml b/src/assets/openapi/components/responses/CustomerUpdateSuccess.yaml new file mode 100644 index 0000000..2de13e8 --- /dev/null +++ b/src/assets/openapi/components/responses/CustomerUpdateSuccess.yaml @@ -0,0 +1,5 @@ +description: Customer Update response +content: + application/json: + schema: + $ref: ../schemas/CustomerUpdateResponse.yaml diff --git a/src/assets/openapi/components/responses/CustomerValidateSuccess.yaml b/src/assets/openapi/components/responses/CustomerValidateSuccess.yaml new file mode 100644 index 0000000..ec1240a --- /dev/null +++ b/src/assets/openapi/components/responses/CustomerValidateSuccess.yaml @@ -0,0 +1,5 @@ +description: Customer Validate response +content: + application/json: + schema: + $ref: ../schemas/CustomerValidateResponse.yaml diff --git a/src/assets/openapi/components/responses/CustomerWhitelistBlacklistSuccess.yaml b/src/assets/openapi/components/responses/CustomerWhitelistBlacklistSuccess.yaml new file mode 100644 index 0000000..343c45d --- /dev/null +++ b/src/assets/openapi/components/responses/CustomerWhitelistBlacklistSuccess.yaml @@ -0,0 +1,5 @@ +description: Customer Whitelist Blacklist response +content: + application/json: + schema: + $ref: ../schemas/CustomerRiskActionResponse.yaml diff --git a/src/assets/openapi/components/responses/DedicatedNubanCreateSuccess.yaml b/src/assets/openapi/components/responses/DedicatedNubanCreateSuccess.yaml new file mode 100644 index 0000000..04977cc --- /dev/null +++ b/src/assets/openapi/components/responses/DedicatedNubanCreateSuccess.yaml @@ -0,0 +1,5 @@ +description: Dedicated Nuban Create response +content: + application/json: + schema: + $ref: ../schemas/DedicatedNubanCreateResponse.yaml diff --git a/src/assets/openapi/components/responses/DedicatedNubanDeactivateSuccess.yaml b/src/assets/openapi/components/responses/DedicatedNubanDeactivateSuccess.yaml new file mode 100644 index 0000000..497b0b7 --- /dev/null +++ b/src/assets/openapi/components/responses/DedicatedNubanDeactivateSuccess.yaml @@ -0,0 +1,5 @@ +description: Dedicated Nuban Deactivate response +content: + application/json: + schema: + $ref: ../schemas/DedicatedNubanDeactivateResponse.yaml diff --git a/src/assets/openapi/components/responses/DedicatedNubanFetchSuccess.yaml b/src/assets/openapi/components/responses/DedicatedNubanFetchSuccess.yaml new file mode 100644 index 0000000..7ba7a2c --- /dev/null +++ b/src/assets/openapi/components/responses/DedicatedNubanFetchSuccess.yaml @@ -0,0 +1,5 @@ +description: Dedicated Nuban Fetch response +content: + application/json: + schema: + $ref: ../schemas/DedicatedNubanFetchResponse.yaml diff --git a/src/assets/openapi/components/responses/DirectDebitActivationChargeSuccess.yaml b/src/assets/openapi/components/responses/DirectDebitActivationChargeSuccess.yaml new file mode 100644 index 0000000..207a5a3 --- /dev/null +++ b/src/assets/openapi/components/responses/DirectDebitActivationChargeSuccess.yaml @@ -0,0 +1,5 @@ +description: Direct Debit Activation Charge response +content: + application/json: + schema: + $ref: ../schemas/DirectDebitActivationChargeResponse.yaml diff --git a/src/assets/openapi/components/responses/DisputeAddEvidenceSuccess.yaml b/src/assets/openapi/components/responses/DisputeAddEvidenceSuccess.yaml new file mode 100644 index 0000000..495d143 --- /dev/null +++ b/src/assets/openapi/components/responses/DisputeAddEvidenceSuccess.yaml @@ -0,0 +1,5 @@ +description: Dispute Add Evidence response +content: + application/json: + schema: + $ref: ../schemas/DisputeAddEvidenceResponse.yaml diff --git a/src/assets/openapi/components/responses/DisputeExportSuccess.yaml b/src/assets/openapi/components/responses/DisputeExportSuccess.yaml new file mode 100644 index 0000000..f69f51f --- /dev/null +++ b/src/assets/openapi/components/responses/DisputeExportSuccess.yaml @@ -0,0 +1,5 @@ +description: Dispute Export response +content: + application/json: + schema: + $ref: ../schemas/DisputeExportResponse.yaml diff --git a/src/assets/openapi/components/responses/DisputeFetchSuccess.yaml b/src/assets/openapi/components/responses/DisputeFetchSuccess.yaml new file mode 100644 index 0000000..cc0fbe3 --- /dev/null +++ b/src/assets/openapi/components/responses/DisputeFetchSuccess.yaml @@ -0,0 +1,5 @@ +description: Dispute Fetch response +content: + application/json: + schema: + $ref: ../schemas/DisputeFetchResponse.yaml diff --git a/src/assets/openapi/components/responses/DisputeListSuccess.yaml b/src/assets/openapi/components/responses/DisputeListSuccess.yaml new file mode 100644 index 0000000..ccef908 --- /dev/null +++ b/src/assets/openapi/components/responses/DisputeListSuccess.yaml @@ -0,0 +1,5 @@ +description: Dispute List response +content: + application/json: + schema: + $ref: ../schemas/DisputeListResponse.yaml diff --git a/src/assets/openapi/components/responses/DisputeListTransactionSuccess.yaml b/src/assets/openapi/components/responses/DisputeListTransactionSuccess.yaml new file mode 100644 index 0000000..a6c220d --- /dev/null +++ b/src/assets/openapi/components/responses/DisputeListTransactionSuccess.yaml @@ -0,0 +1,5 @@ +description: Dispute List Transaction response +content: + application/json: + schema: + $ref: ../schemas/DisputeListTransactionResponse.yaml diff --git a/src/assets/openapi/components/responses/DisputeResolveSuccess.yaml b/src/assets/openapi/components/responses/DisputeResolveSuccess.yaml new file mode 100644 index 0000000..f09c7cf --- /dev/null +++ b/src/assets/openapi/components/responses/DisputeResolveSuccess.yaml @@ -0,0 +1,5 @@ +description: Dispute Resolve response +content: + application/json: + schema: + $ref: ../schemas/DisputeResolveResponse.yaml diff --git a/src/assets/openapi/components/responses/DisputeUpdateSuccess.yaml b/src/assets/openapi/components/responses/DisputeUpdateSuccess.yaml new file mode 100644 index 0000000..e747665 --- /dev/null +++ b/src/assets/openapi/components/responses/DisputeUpdateSuccess.yaml @@ -0,0 +1,5 @@ +description: Dispute Update response +content: + application/json: + schema: + $ref: ../schemas/DisputeUpdateResponse.yaml diff --git a/src/assets/openapi/components/responses/DisputeUploadURLSuccess.yaml b/src/assets/openapi/components/responses/DisputeUploadURLSuccess.yaml new file mode 100644 index 0000000..1f4728f --- /dev/null +++ b/src/assets/openapi/components/responses/DisputeUploadURLSuccess.yaml @@ -0,0 +1,5 @@ +description: Dispute Upload U R L response +content: + application/json: + schema: + $ref: ../schemas/DisputeUploadURLResponse.yaml diff --git a/src/assets/openapi/components/responses/MiscellaneousListBanksSuccess.yaml b/src/assets/openapi/components/responses/MiscellaneousListBanksSuccess.yaml new file mode 100644 index 0000000..99a85de --- /dev/null +++ b/src/assets/openapi/components/responses/MiscellaneousListBanksSuccess.yaml @@ -0,0 +1,5 @@ +description: Miscellaneous List Banks response +content: + application/json: + schema: + $ref: ../schemas/MiscellaneousListBanksResponse.yaml diff --git a/src/assets/openapi/components/responses/MiscellaneousListCountriesSuccess.yaml b/src/assets/openapi/components/responses/MiscellaneousListCountriesSuccess.yaml new file mode 100644 index 0000000..a98705b --- /dev/null +++ b/src/assets/openapi/components/responses/MiscellaneousListCountriesSuccess.yaml @@ -0,0 +1,5 @@ +description: Miscellaneous List Countries response +content: + application/json: + schema: + $ref: ../schemas/MiscellaneousListCountriesResponse.yaml diff --git a/src/assets/openapi/components/responses/MiscellaneousListStatesSuccess.yaml b/src/assets/openapi/components/responses/MiscellaneousListStatesSuccess.yaml new file mode 100644 index 0000000..4b1e357 --- /dev/null +++ b/src/assets/openapi/components/responses/MiscellaneousListStatesSuccess.yaml @@ -0,0 +1,5 @@ +description: Miscellaneous List States response +content: + application/json: + schema: + $ref: ../schemas/MiscellaneousListStatesResponse.yaml diff --git a/src/assets/openapi/components/responses/NotFound.yaml b/src/assets/openapi/components/responses/NotFound.yaml new file mode 100644 index 0000000..f1abd85 --- /dev/null +++ b/src/assets/openapi/components/responses/NotFound.yaml @@ -0,0 +1,8 @@ +description: Entity not found +content: + application/json: + schema: + $ref: ../schemas/Error.yaml + example: + status: false + message: Entity not found diff --git a/src/assets/openapi/components/responses/Ok.yaml b/src/assets/openapi/components/responses/Ok.yaml new file mode 100644 index 0000000..2c797b8 --- /dev/null +++ b/src/assets/openapi/components/responses/Ok.yaml @@ -0,0 +1,5 @@ +description: Request successful +content: + application/json: + schema: + $ref: ../schemas/Response.yaml diff --git a/src/assets/openapi/components/responses/OrderCreateSuccess.yaml b/src/assets/openapi/components/responses/OrderCreateSuccess.yaml new file mode 100644 index 0000000..18eaaee --- /dev/null +++ b/src/assets/openapi/components/responses/OrderCreateSuccess.yaml @@ -0,0 +1,5 @@ +description: Order Create response +content: + application/json: + schema: + $ref: ../schemas/OrderCreateResponse.yaml diff --git a/src/assets/openapi/components/responses/OrderFetchProductSuccess.yaml b/src/assets/openapi/components/responses/OrderFetchProductSuccess.yaml new file mode 100644 index 0000000..5e72fa6 --- /dev/null +++ b/src/assets/openapi/components/responses/OrderFetchProductSuccess.yaml @@ -0,0 +1,5 @@ +description: Order Fetch Product response +content: + application/json: + schema: + $ref: ../schemas/OrderFetchProductResponse.yaml diff --git a/src/assets/openapi/components/responses/OrderFetchSuccess.yaml b/src/assets/openapi/components/responses/OrderFetchSuccess.yaml new file mode 100644 index 0000000..08c8c18 --- /dev/null +++ b/src/assets/openapi/components/responses/OrderFetchSuccess.yaml @@ -0,0 +1,5 @@ +description: Order Fetch response +content: + application/json: + schema: + $ref: ../schemas/OrderFetchResponse.yaml diff --git a/src/assets/openapi/components/responses/OrderListSuccess.yaml b/src/assets/openapi/components/responses/OrderListSuccess.yaml new file mode 100644 index 0000000..cee721e --- /dev/null +++ b/src/assets/openapi/components/responses/OrderListSuccess.yaml @@ -0,0 +1,5 @@ +description: Order List response +content: + application/json: + schema: + $ref: ../schemas/OrderListResponse.yaml diff --git a/src/assets/openapi/components/responses/OrderValidateSuccess.yaml b/src/assets/openapi/components/responses/OrderValidateSuccess.yaml new file mode 100644 index 0000000..d3ac9bb --- /dev/null +++ b/src/assets/openapi/components/responses/OrderValidateSuccess.yaml @@ -0,0 +1,5 @@ +description: Order Validate response +content: + application/json: + schema: + $ref: ../schemas/OrderValidateResponse.yaml diff --git a/src/assets/openapi/components/responses/PageAddProductsSuccess.yaml b/src/assets/openapi/components/responses/PageAddProductsSuccess.yaml new file mode 100644 index 0000000..1a5fed8 --- /dev/null +++ b/src/assets/openapi/components/responses/PageAddProductsSuccess.yaml @@ -0,0 +1,5 @@ +description: Page Add Products response +content: + application/json: + schema: + $ref: ../schemas/PageAddProductsResponse.yaml diff --git a/src/assets/openapi/components/responses/PageCheckSlugAvailabilitySuccess.yaml b/src/assets/openapi/components/responses/PageCheckSlugAvailabilitySuccess.yaml new file mode 100644 index 0000000..215e0e3 --- /dev/null +++ b/src/assets/openapi/components/responses/PageCheckSlugAvailabilitySuccess.yaml @@ -0,0 +1,5 @@ +description: Page Check Slug Availability response +content: + application/json: + schema: + $ref: ../schemas/PageCheckSlugAvailabilityResponse.yaml diff --git a/src/assets/openapi/components/responses/PageCreateSuccess.yaml b/src/assets/openapi/components/responses/PageCreateSuccess.yaml new file mode 100644 index 0000000..4c60243 --- /dev/null +++ b/src/assets/openapi/components/responses/PageCreateSuccess.yaml @@ -0,0 +1,5 @@ +description: Page Create response +content: + application/json: + schema: + $ref: ../schemas/PageCreateResponse.yaml diff --git a/src/assets/openapi/components/responses/PageFetchSuccess.yaml b/src/assets/openapi/components/responses/PageFetchSuccess.yaml new file mode 100644 index 0000000..e06ac51 --- /dev/null +++ b/src/assets/openapi/components/responses/PageFetchSuccess.yaml @@ -0,0 +1,5 @@ +description: Page Fetch response +content: + application/json: + schema: + $ref: ../schemas/PageFetchResponse.yaml diff --git a/src/assets/openapi/components/responses/PageListSuccess.yaml b/src/assets/openapi/components/responses/PageListSuccess.yaml new file mode 100644 index 0000000..b760910 --- /dev/null +++ b/src/assets/openapi/components/responses/PageListSuccess.yaml @@ -0,0 +1,5 @@ +description: Page List response +content: + application/json: + schema: + $ref: ../schemas/PageListResponse.yaml diff --git a/src/assets/openapi/components/responses/PageUpdateSuccess.yaml b/src/assets/openapi/components/responses/PageUpdateSuccess.yaml new file mode 100644 index 0000000..c29de43 --- /dev/null +++ b/src/assets/openapi/components/responses/PageUpdateSuccess.yaml @@ -0,0 +1,5 @@ +description: Page Update response +content: + application/json: + schema: + $ref: ../schemas/PageUpdateResponse.yaml diff --git a/src/assets/openapi/components/responses/PaymentRequestArchiveSuccess.yaml b/src/assets/openapi/components/responses/PaymentRequestArchiveSuccess.yaml new file mode 100644 index 0000000..3b49bfb --- /dev/null +++ b/src/assets/openapi/components/responses/PaymentRequestArchiveSuccess.yaml @@ -0,0 +1,5 @@ +description: Payment Request Archive response +content: + application/json: + schema: + $ref: ../schemas/PaymentRequestArchiveResponse.yaml diff --git a/src/assets/openapi/components/responses/PaymentRequestCreateSuccess.yaml b/src/assets/openapi/components/responses/PaymentRequestCreateSuccess.yaml new file mode 100644 index 0000000..76212da --- /dev/null +++ b/src/assets/openapi/components/responses/PaymentRequestCreateSuccess.yaml @@ -0,0 +1,5 @@ +description: Payment Request Create response +content: + application/json: + schema: + $ref: ../schemas/PaymentRequestCreateResponse.yaml diff --git a/src/assets/openapi/components/responses/PaymentRequestFinalizeSuccess.yaml b/src/assets/openapi/components/responses/PaymentRequestFinalizeSuccess.yaml new file mode 100644 index 0000000..bdfcc71 --- /dev/null +++ b/src/assets/openapi/components/responses/PaymentRequestFinalizeSuccess.yaml @@ -0,0 +1,5 @@ +description: Payment Request Finalize response +content: + application/json: + schema: + $ref: ../schemas/PaymentRequestFinalizeResponse.yaml diff --git a/src/assets/openapi/components/responses/PaymentRequestListSuccess.yaml b/src/assets/openapi/components/responses/PaymentRequestListSuccess.yaml new file mode 100644 index 0000000..4e900a4 --- /dev/null +++ b/src/assets/openapi/components/responses/PaymentRequestListSuccess.yaml @@ -0,0 +1,5 @@ +description: Payment Request List response +content: + application/json: + schema: + $ref: ../schemas/PaymentRequestListResponse.yaml diff --git a/src/assets/openapi/components/responses/PaymentRequestSendNotificationSuccess.yaml b/src/assets/openapi/components/responses/PaymentRequestSendNotificationSuccess.yaml new file mode 100644 index 0000000..e9f1ab0 --- /dev/null +++ b/src/assets/openapi/components/responses/PaymentRequestSendNotificationSuccess.yaml @@ -0,0 +1,5 @@ +description: Payment Request Send Notification response +content: + application/json: + schema: + $ref: ../schemas/PaymentRequestSendNotificationResponse.yaml diff --git a/src/assets/openapi/components/responses/PaymentRequestTotalSuccess.yaml b/src/assets/openapi/components/responses/PaymentRequestTotalSuccess.yaml new file mode 100644 index 0000000..fe80504 --- /dev/null +++ b/src/assets/openapi/components/responses/PaymentRequestTotalSuccess.yaml @@ -0,0 +1,5 @@ +description: Payment Request Total response +content: + application/json: + schema: + $ref: ../schemas/PaymentRequestTotalResponse.yaml diff --git a/src/assets/openapi/components/responses/PaymentRequestUpdateSuccess.yaml b/src/assets/openapi/components/responses/PaymentRequestUpdateSuccess.yaml new file mode 100644 index 0000000..da23172 --- /dev/null +++ b/src/assets/openapi/components/responses/PaymentRequestUpdateSuccess.yaml @@ -0,0 +1,5 @@ +description: Payment Request Update response +content: + application/json: + schema: + $ref: ../schemas/PaymentRequestUpdateResponse.yaml diff --git a/src/assets/openapi/components/responses/PaymentRequestVerifySuccess.yaml b/src/assets/openapi/components/responses/PaymentRequestVerifySuccess.yaml new file mode 100644 index 0000000..4854ecb --- /dev/null +++ b/src/assets/openapi/components/responses/PaymentRequestVerifySuccess.yaml @@ -0,0 +1,5 @@ +description: Payment Request Verify response +content: + application/json: + schema: + $ref: ../schemas/PaymentRequestVerifyResponse.yaml diff --git a/src/assets/openapi/components/responses/PlanCreateSuccess.yaml b/src/assets/openapi/components/responses/PlanCreateSuccess.yaml new file mode 100644 index 0000000..6e97d4c --- /dev/null +++ b/src/assets/openapi/components/responses/PlanCreateSuccess.yaml @@ -0,0 +1,5 @@ +description: Plan Create response +content: + application/json: + schema: + $ref: ../schemas/PlanCreateResponse.yaml diff --git a/src/assets/openapi/components/responses/PlanFetchSuccess.yaml b/src/assets/openapi/components/responses/PlanFetchSuccess.yaml new file mode 100644 index 0000000..bc6c320 --- /dev/null +++ b/src/assets/openapi/components/responses/PlanFetchSuccess.yaml @@ -0,0 +1,5 @@ +description: Plan Fetch response +content: + application/json: + schema: + $ref: ../schemas/PlanFetchResponse.yaml diff --git a/src/assets/openapi/components/responses/PlanListSuccess.yaml b/src/assets/openapi/components/responses/PlanListSuccess.yaml new file mode 100644 index 0000000..f6228f4 --- /dev/null +++ b/src/assets/openapi/components/responses/PlanListSuccess.yaml @@ -0,0 +1,5 @@ +description: Plan List response +content: + application/json: + schema: + $ref: ../schemas/PlanListResponse.yaml diff --git a/src/assets/openapi/components/responses/PlanUpdateSuccess.yaml b/src/assets/openapi/components/responses/PlanUpdateSuccess.yaml new file mode 100644 index 0000000..692be39 --- /dev/null +++ b/src/assets/openapi/components/responses/PlanUpdateSuccess.yaml @@ -0,0 +1,5 @@ +description: Plan Update response +content: + application/json: + schema: + $ref: ../schemas/PlanUpdateResponse.yaml diff --git a/src/assets/openapi/components/responses/ProductCreateSuccess.yaml b/src/assets/openapi/components/responses/ProductCreateSuccess.yaml new file mode 100644 index 0000000..bb9fb84 --- /dev/null +++ b/src/assets/openapi/components/responses/ProductCreateSuccess.yaml @@ -0,0 +1,5 @@ +description: Product Create response +content: + application/json: + schema: + $ref: ../schemas/ProductCreateResponse.yaml diff --git a/src/assets/openapi/components/responses/ProductDeleteSuccess.yaml b/src/assets/openapi/components/responses/ProductDeleteSuccess.yaml new file mode 100644 index 0000000..e2eb3e4 --- /dev/null +++ b/src/assets/openapi/components/responses/ProductDeleteSuccess.yaml @@ -0,0 +1,5 @@ +description: Product Delete response +content: + application/json: + schema: + $ref: ../schemas/ProductDeleteResponse.yaml diff --git a/src/assets/openapi/components/responses/ProductFetchSuccess.yaml b/src/assets/openapi/components/responses/ProductFetchSuccess.yaml new file mode 100644 index 0000000..a389870 --- /dev/null +++ b/src/assets/openapi/components/responses/ProductFetchSuccess.yaml @@ -0,0 +1,5 @@ +description: Product Fetch response +content: + application/json: + schema: + $ref: ../schemas/ProductFetchResponse.yaml diff --git a/src/assets/openapi/components/responses/ProductListsSuccess.yaml b/src/assets/openapi/components/responses/ProductListsSuccess.yaml new file mode 100644 index 0000000..623a7f9 --- /dev/null +++ b/src/assets/openapi/components/responses/ProductListsSuccess.yaml @@ -0,0 +1,5 @@ +description: Product Lists response +content: + application/json: + schema: + $ref: ../schemas/ProductListsResponse.yaml diff --git a/src/assets/openapi/components/responses/ProductUpdateSuccess.yaml b/src/assets/openapi/components/responses/ProductUpdateSuccess.yaml new file mode 100644 index 0000000..b9d32d0 --- /dev/null +++ b/src/assets/openapi/components/responses/ProductUpdateSuccess.yaml @@ -0,0 +1,5 @@ +description: Product Update response +content: + application/json: + schema: + $ref: ../schemas/ProductUpdateResponse.yaml diff --git a/src/assets/openapi/components/responses/RefundCreateSuccess.yaml b/src/assets/openapi/components/responses/RefundCreateSuccess.yaml new file mode 100644 index 0000000..2f1052e --- /dev/null +++ b/src/assets/openapi/components/responses/RefundCreateSuccess.yaml @@ -0,0 +1,5 @@ +description: Refund Create response +content: + application/json: + schema: + $ref: ../schemas/RefundCreateResponse.yaml diff --git a/src/assets/openapi/components/responses/RefundFetchSuccess.yaml b/src/assets/openapi/components/responses/RefundFetchSuccess.yaml new file mode 100644 index 0000000..8d07810 --- /dev/null +++ b/src/assets/openapi/components/responses/RefundFetchSuccess.yaml @@ -0,0 +1,5 @@ +description: Refund Fetch response +content: + application/json: + schema: + $ref: ../schemas/RefundFetchResponse.yaml diff --git a/src/assets/openapi/components/responses/RefundListSuccess.yaml b/src/assets/openapi/components/responses/RefundListSuccess.yaml new file mode 100644 index 0000000..cb5a429 --- /dev/null +++ b/src/assets/openapi/components/responses/RefundListSuccess.yaml @@ -0,0 +1,5 @@ +description: Refund List response +content: + application/json: + schema: + $ref: ../schemas/RefundListResponse.yaml diff --git a/src/assets/openapi/components/responses/SplitAddUpdateSubaccountSuccess.yaml b/src/assets/openapi/components/responses/SplitAddUpdateSubaccountSuccess.yaml new file mode 100644 index 0000000..0c1b66f --- /dev/null +++ b/src/assets/openapi/components/responses/SplitAddUpdateSubaccountSuccess.yaml @@ -0,0 +1,5 @@ +description: Split Add Update Subaccount response +content: + application/json: + schema: + $ref: ../schemas/SplitAddUpdateSubaccountResponse.yaml diff --git a/src/assets/openapi/components/responses/SplitCreateSuccess.yaml b/src/assets/openapi/components/responses/SplitCreateSuccess.yaml new file mode 100644 index 0000000..ae3c7d4 --- /dev/null +++ b/src/assets/openapi/components/responses/SplitCreateSuccess.yaml @@ -0,0 +1,5 @@ +description: Split Create response +content: + application/json: + schema: + $ref: ../schemas/SplitCreateResponse.yaml diff --git a/src/assets/openapi/components/responses/SplitFetchSuccess.yaml b/src/assets/openapi/components/responses/SplitFetchSuccess.yaml new file mode 100644 index 0000000..40ea308 --- /dev/null +++ b/src/assets/openapi/components/responses/SplitFetchSuccess.yaml @@ -0,0 +1,5 @@ +description: Split Fetch response +content: + application/json: + schema: + $ref: ../schemas/SplitFetchResponse.yaml diff --git a/src/assets/openapi/components/responses/SplitListSuccess.yaml b/src/assets/openapi/components/responses/SplitListSuccess.yaml new file mode 100644 index 0000000..19ff054 --- /dev/null +++ b/src/assets/openapi/components/responses/SplitListSuccess.yaml @@ -0,0 +1,5 @@ +description: Split List response +content: + application/json: + schema: + $ref: ../schemas/SplitListResponse.yaml diff --git a/src/assets/openapi/components/responses/SplitRemoveSubaccountSuccess.yaml b/src/assets/openapi/components/responses/SplitRemoveSubaccountSuccess.yaml new file mode 100644 index 0000000..f9c213a --- /dev/null +++ b/src/assets/openapi/components/responses/SplitRemoveSubaccountSuccess.yaml @@ -0,0 +1,5 @@ +description: Split Remove Subaccount response +content: + application/json: + schema: + $ref: ../schemas/SplitRemoveSubaccountResponse.yaml diff --git a/src/assets/openapi/components/responses/SplitUpdateSuccess.yaml b/src/assets/openapi/components/responses/SplitUpdateSuccess.yaml new file mode 100644 index 0000000..e64bdc3 --- /dev/null +++ b/src/assets/openapi/components/responses/SplitUpdateSuccess.yaml @@ -0,0 +1,5 @@ +description: Split Update response +content: + application/json: + schema: + $ref: ../schemas/SplitUpdateResponse.yaml diff --git a/src/assets/openapi/components/responses/StorefrontCreateSuccess.yaml b/src/assets/openapi/components/responses/StorefrontCreateSuccess.yaml new file mode 100644 index 0000000..067ffcc --- /dev/null +++ b/src/assets/openapi/components/responses/StorefrontCreateSuccess.yaml @@ -0,0 +1,5 @@ +description: Storefront Create response +content: + application/json: + schema: + $ref: ../schemas/StorefrontCreateResponse.yaml diff --git a/src/assets/openapi/components/responses/StorefrontDeleteSuccess.yaml b/src/assets/openapi/components/responses/StorefrontDeleteSuccess.yaml new file mode 100644 index 0000000..3038e0e --- /dev/null +++ b/src/assets/openapi/components/responses/StorefrontDeleteSuccess.yaml @@ -0,0 +1,5 @@ +description: Storefront Delete response +content: + application/json: + schema: + $ref: ../schemas/StorefrontDeleteResponse.yaml diff --git a/src/assets/openapi/components/responses/StorefrontFetchSuccess.yaml b/src/assets/openapi/components/responses/StorefrontFetchSuccess.yaml new file mode 100644 index 0000000..2fbc8b4 --- /dev/null +++ b/src/assets/openapi/components/responses/StorefrontFetchSuccess.yaml @@ -0,0 +1,5 @@ +description: Storefront Fetch response +content: + application/json: + schema: + $ref: ../schemas/StorefrontFetchResponse.yaml diff --git a/src/assets/openapi/components/responses/StorefrontListSuccess.yaml b/src/assets/openapi/components/responses/StorefrontListSuccess.yaml new file mode 100644 index 0000000..45f39be --- /dev/null +++ b/src/assets/openapi/components/responses/StorefrontListSuccess.yaml @@ -0,0 +1,5 @@ +description: Storefront List response +content: + application/json: + schema: + $ref: ../schemas/StorefrontListResponse.yaml diff --git a/src/assets/openapi/components/responses/StorefrontUpdateSuccess.yaml b/src/assets/openapi/components/responses/StorefrontUpdateSuccess.yaml new file mode 100644 index 0000000..ed276a7 --- /dev/null +++ b/src/assets/openapi/components/responses/StorefrontUpdateSuccess.yaml @@ -0,0 +1,5 @@ +description: Storefront Update response +content: + application/json: + schema: + $ref: ../schemas/StorefrontUpdateResponse.yaml diff --git a/src/assets/openapi/components/responses/SubaccountCreateSuccess.yaml b/src/assets/openapi/components/responses/SubaccountCreateSuccess.yaml new file mode 100644 index 0000000..aaf5836 --- /dev/null +++ b/src/assets/openapi/components/responses/SubaccountCreateSuccess.yaml @@ -0,0 +1,5 @@ +description: Subaccount Create response +content: + application/json: + schema: + $ref: ../schemas/SubaccountCreateResponse.yaml diff --git a/src/assets/openapi/components/responses/SubaccountFetchSuccess.yaml b/src/assets/openapi/components/responses/SubaccountFetchSuccess.yaml new file mode 100644 index 0000000..0e8e8f2 --- /dev/null +++ b/src/assets/openapi/components/responses/SubaccountFetchSuccess.yaml @@ -0,0 +1,5 @@ +description: Subaccount Fetch response +content: + application/json: + schema: + $ref: ../schemas/SubaccountFetchResponse.yaml diff --git a/src/assets/openapi/components/responses/SubaccountListSuccess.yaml b/src/assets/openapi/components/responses/SubaccountListSuccess.yaml new file mode 100644 index 0000000..ce95f63 --- /dev/null +++ b/src/assets/openapi/components/responses/SubaccountListSuccess.yaml @@ -0,0 +1,5 @@ +description: Subaccount List response +content: + application/json: + schema: + $ref: ../schemas/SubaccountListResponse.yaml diff --git a/src/assets/openapi/components/responses/SubaccountUpdateSuccess.yaml b/src/assets/openapi/components/responses/SubaccountUpdateSuccess.yaml new file mode 100644 index 0000000..fe8cf0e --- /dev/null +++ b/src/assets/openapi/components/responses/SubaccountUpdateSuccess.yaml @@ -0,0 +1,5 @@ +description: Subaccount Update response +content: + application/json: + schema: + $ref: ../schemas/SubaccountUpdateResponse.yaml diff --git a/src/assets/openapi/components/responses/SubscriptionCreateSuccess.yaml b/src/assets/openapi/components/responses/SubscriptionCreateSuccess.yaml new file mode 100644 index 0000000..dcfc21b --- /dev/null +++ b/src/assets/openapi/components/responses/SubscriptionCreateSuccess.yaml @@ -0,0 +1,5 @@ +description: Subscription Create response +content: + application/json: + schema: + $ref: ../schemas/SubscriptionCreateResponse.yaml diff --git a/src/assets/openapi/components/responses/SubscriptionDisableSuccess.yaml b/src/assets/openapi/components/responses/SubscriptionDisableSuccess.yaml new file mode 100644 index 0000000..94f06c8 --- /dev/null +++ b/src/assets/openapi/components/responses/SubscriptionDisableSuccess.yaml @@ -0,0 +1,5 @@ +description: Subscription Disable response +content: + application/json: + schema: + $ref: ../schemas/SubscriptionDisableResponse.yaml diff --git a/src/assets/openapi/components/responses/SubscriptionFetchSuccess.yaml b/src/assets/openapi/components/responses/SubscriptionFetchSuccess.yaml new file mode 100644 index 0000000..4a4af76 --- /dev/null +++ b/src/assets/openapi/components/responses/SubscriptionFetchSuccess.yaml @@ -0,0 +1,5 @@ +description: Subscription Fetch response +content: + application/json: + schema: + $ref: ../schemas/SubscriptionFetchResponse.yaml diff --git a/src/assets/openapi/components/responses/SubscriptionListSuccess.yaml b/src/assets/openapi/components/responses/SubscriptionListSuccess.yaml new file mode 100644 index 0000000..1d46654 --- /dev/null +++ b/src/assets/openapi/components/responses/SubscriptionListSuccess.yaml @@ -0,0 +1,5 @@ +description: Subscription List response +content: + application/json: + schema: + $ref: ../schemas/SubscriptionListResponse.yaml diff --git a/src/assets/openapi/components/responses/TerminalCommissionDeviceSuccess.yaml b/src/assets/openapi/components/responses/TerminalCommissionDeviceSuccess.yaml new file mode 100644 index 0000000..23eacfc --- /dev/null +++ b/src/assets/openapi/components/responses/TerminalCommissionDeviceSuccess.yaml @@ -0,0 +1,5 @@ +description: Terminal Commission Device response +content: + application/json: + schema: + $ref: ../schemas/TerminalCommissionDeviceResponse.yaml diff --git a/src/assets/openapi/components/responses/TerminalDecommissionDeviceSuccess.yaml b/src/assets/openapi/components/responses/TerminalDecommissionDeviceSuccess.yaml new file mode 100644 index 0000000..448bbe5 --- /dev/null +++ b/src/assets/openapi/components/responses/TerminalDecommissionDeviceSuccess.yaml @@ -0,0 +1,5 @@ +description: Terminal Decommission Device response +content: + application/json: + schema: + $ref: ../schemas/TerminalDecommissionDeviceResponse.yaml diff --git a/src/assets/openapi/components/responses/TerminalGetStatusSuccess.yaml b/src/assets/openapi/components/responses/TerminalGetStatusSuccess.yaml new file mode 100644 index 0000000..7e7566f --- /dev/null +++ b/src/assets/openapi/components/responses/TerminalGetStatusSuccess.yaml @@ -0,0 +1,5 @@ +description: Terminal Get Status response +content: + application/json: + schema: + $ref: ../schemas/TerminalGetStatusResponse.yaml diff --git a/src/assets/openapi/components/responses/TerminalGetSuccess.yaml b/src/assets/openapi/components/responses/TerminalGetSuccess.yaml new file mode 100644 index 0000000..9f62aaa --- /dev/null +++ b/src/assets/openapi/components/responses/TerminalGetSuccess.yaml @@ -0,0 +1,5 @@ +description: Terminal Get response +content: + application/json: + schema: + $ref: ../schemas/TerminalGetResponse.yaml diff --git a/src/assets/openapi/components/responses/TerminalListsSuccess.yaml b/src/assets/openapi/components/responses/TerminalListsSuccess.yaml new file mode 100644 index 0000000..c549fd8 --- /dev/null +++ b/src/assets/openapi/components/responses/TerminalListsSuccess.yaml @@ -0,0 +1,5 @@ +description: Terminal Lists response +content: + application/json: + schema: + $ref: ../schemas/TerminalListsResponse.yaml diff --git a/src/assets/openapi/components/responses/TerminalUpdateSuccess.yaml b/src/assets/openapi/components/responses/TerminalUpdateSuccess.yaml new file mode 100644 index 0000000..31607e7 --- /dev/null +++ b/src/assets/openapi/components/responses/TerminalUpdateSuccess.yaml @@ -0,0 +1,5 @@ +description: Terminal Update response +content: + application/json: + schema: + $ref: ../schemas/TerminalUpdateResponse.yaml diff --git a/src/assets/openapi/components/responses/TransactionInitializeBadRequestResponse.yaml b/src/assets/openapi/components/responses/TransactionInitializeBadRequestResponse.yaml new file mode 100644 index 0000000..0066532 --- /dev/null +++ b/src/assets/openapi/components/responses/TransactionInitializeBadRequestResponse.yaml @@ -0,0 +1,5 @@ +description: Responses from the Transaction Initialize endpoint +content: + application/json: + schema: + $ref: ../schemas/TransactionInitializeBadRequestModel.yaml diff --git a/src/assets/openapi/components/responses/TransferBulkSuccess.yaml b/src/assets/openapi/components/responses/TransferBulkSuccess.yaml new file mode 100644 index 0000000..f28ddc6 --- /dev/null +++ b/src/assets/openapi/components/responses/TransferBulkSuccess.yaml @@ -0,0 +1,5 @@ +description: Transfer Bulk response +content: + application/json: + schema: + $ref: ../schemas/TransferBulkResponse.yaml diff --git a/src/assets/openapi/components/responses/TransferCreateSuccess.yaml b/src/assets/openapi/components/responses/TransferCreateSuccess.yaml new file mode 100644 index 0000000..5b42b19 --- /dev/null +++ b/src/assets/openapi/components/responses/TransferCreateSuccess.yaml @@ -0,0 +1,5 @@ +description: Transfer Create response +content: + application/json: + schema: + $ref: ../schemas/TransferCreateResponse.yaml diff --git a/src/assets/openapi/components/responses/TransferDisablesOtpSuccess.yaml b/src/assets/openapi/components/responses/TransferDisablesOtpSuccess.yaml new file mode 100644 index 0000000..94649d7 --- /dev/null +++ b/src/assets/openapi/components/responses/TransferDisablesOtpSuccess.yaml @@ -0,0 +1,5 @@ +description: Transfer Disables Otp response +content: + application/json: + schema: + $ref: ../schemas/TransferDisablesOtpResponse.yaml diff --git a/src/assets/openapi/components/responses/TransferEnablesOtpSuccess.yaml b/src/assets/openapi/components/responses/TransferEnablesOtpSuccess.yaml new file mode 100644 index 0000000..666f4d6 --- /dev/null +++ b/src/assets/openapi/components/responses/TransferEnablesOtpSuccess.yaml @@ -0,0 +1,5 @@ +description: Transfer Enables Otp response +content: + application/json: + schema: + $ref: ../schemas/TransferEnablesOtpResponse.yaml diff --git a/src/assets/openapi/components/responses/TransferFetchSuccess.yaml b/src/assets/openapi/components/responses/TransferFetchSuccess.yaml new file mode 100644 index 0000000..3daefcc --- /dev/null +++ b/src/assets/openapi/components/responses/TransferFetchSuccess.yaml @@ -0,0 +1,5 @@ +description: Transfer Fetch response +content: + application/json: + schema: + $ref: ../schemas/TransferFetchResponse.yaml diff --git a/src/assets/openapi/components/responses/TransferFinalizeDisablesOtpSuccess.yaml b/src/assets/openapi/components/responses/TransferFinalizeDisablesOtpSuccess.yaml new file mode 100644 index 0000000..e901ac4 --- /dev/null +++ b/src/assets/openapi/components/responses/TransferFinalizeDisablesOtpSuccess.yaml @@ -0,0 +1,5 @@ +description: Transfer Finalize Disables Otp response +content: + application/json: + schema: + $ref: ../schemas/TransferFinalizeDisablesOtpResponse.yaml diff --git a/src/assets/openapi/components/responses/TransferListSuccess.yaml b/src/assets/openapi/components/responses/TransferListSuccess.yaml new file mode 100644 index 0000000..4d8fad8 --- /dev/null +++ b/src/assets/openapi/components/responses/TransferListSuccess.yaml @@ -0,0 +1,5 @@ +description: Transfer List response +content: + application/json: + schema: + $ref: ../schemas/TransferListResponse.yaml diff --git a/src/assets/openapi/components/responses/TransferRecipientBulkCreateSuccess.yaml b/src/assets/openapi/components/responses/TransferRecipientBulkCreateSuccess.yaml new file mode 100644 index 0000000..269a730 --- /dev/null +++ b/src/assets/openapi/components/responses/TransferRecipientBulkCreateSuccess.yaml @@ -0,0 +1,5 @@ +description: Transfer Recipient Bulk Create response +content: + application/json: + schema: + $ref: ../schemas/TransferRecipientBulkCreateResponse.yaml diff --git a/src/assets/openapi/components/responses/TransferRecipientCreateSuccess.yaml b/src/assets/openapi/components/responses/TransferRecipientCreateSuccess.yaml new file mode 100644 index 0000000..aa57d04 --- /dev/null +++ b/src/assets/openapi/components/responses/TransferRecipientCreateSuccess.yaml @@ -0,0 +1,5 @@ +description: Transfer Recipient Create response +content: + application/json: + schema: + $ref: ../schemas/TransferRecipientCreateResponse.yaml diff --git a/src/assets/openapi/components/responses/TransferRecipientDeleteSuccess.yaml b/src/assets/openapi/components/responses/TransferRecipientDeleteSuccess.yaml new file mode 100644 index 0000000..2dbcaab --- /dev/null +++ b/src/assets/openapi/components/responses/TransferRecipientDeleteSuccess.yaml @@ -0,0 +1,5 @@ +description: Transfer Recipient Delete response +content: + application/json: + schema: + $ref: ../schemas/TransferRecipientDeleteResponse.yaml diff --git a/src/assets/openapi/components/responses/TransferRecipientFetchSuccess.yaml b/src/assets/openapi/components/responses/TransferRecipientFetchSuccess.yaml new file mode 100644 index 0000000..6af4c58 --- /dev/null +++ b/src/assets/openapi/components/responses/TransferRecipientFetchSuccess.yaml @@ -0,0 +1,5 @@ +description: Transfer Recipient Fetch response +content: + application/json: + schema: + $ref: ../schemas/TransferRecipientFetchResponse.yaml diff --git a/src/assets/openapi/components/responses/TransferRecipientListSuccess.yaml b/src/assets/openapi/components/responses/TransferRecipientListSuccess.yaml new file mode 100644 index 0000000..cc24a93 --- /dev/null +++ b/src/assets/openapi/components/responses/TransferRecipientListSuccess.yaml @@ -0,0 +1,5 @@ +description: Transfer Recipient List response +content: + application/json: + schema: + $ref: ../schemas/TransferRecipientListResponse.yaml diff --git a/src/assets/openapi/components/responses/TransferRecipientUpdateSuccess.yaml b/src/assets/openapi/components/responses/TransferRecipientUpdateSuccess.yaml new file mode 100644 index 0000000..ec884ff --- /dev/null +++ b/src/assets/openapi/components/responses/TransferRecipientUpdateSuccess.yaml @@ -0,0 +1,5 @@ +description: Transfer Recipient Update response +content: + application/json: + schema: + $ref: ../schemas/TransferRecipientUpdateResponse.yaml diff --git a/src/assets/openapi/components/responses/TransferResendsOtpSuccess.yaml b/src/assets/openapi/components/responses/TransferResendsOtpSuccess.yaml new file mode 100644 index 0000000..2fa91b5 --- /dev/null +++ b/src/assets/openapi/components/responses/TransferResendsOtpSuccess.yaml @@ -0,0 +1,5 @@ +description: Transfer Resends Otp response +content: + application/json: + schema: + $ref: ../schemas/TransferResendsOtpResponse.yaml diff --git a/src/assets/openapi/components/responses/TransferVerifySuccess.yaml b/src/assets/openapi/components/responses/TransferVerifySuccess.yaml new file mode 100644 index 0000000..adc3538 --- /dev/null +++ b/src/assets/openapi/components/responses/TransferVerifySuccess.yaml @@ -0,0 +1,5 @@ +description: Transfer Verify response +content: + application/json: + schema: + $ref: ../schemas/TransferVerifyResponse.yaml diff --git a/src/assets/openapi/components/responses/Unauthorized.yaml b/src/assets/openapi/components/responses/Unauthorized.yaml new file mode 100644 index 0000000..f184a77 --- /dev/null +++ b/src/assets/openapi/components/responses/Unauthorized.yaml @@ -0,0 +1,8 @@ +description: Unauthorized operation +content: + application/json: + schema: + $ref: ../schemas/Error.yaml + example: + status: false + message: Invalid key diff --git a/src/assets/openapi/components/responses/VerificationResolveAccountNumberSuccess.yaml b/src/assets/openapi/components/responses/VerificationResolveAccountNumberSuccess.yaml new file mode 100644 index 0000000..0d84148 --- /dev/null +++ b/src/assets/openapi/components/responses/VerificationResolveAccountNumberSuccess.yaml @@ -0,0 +1,5 @@ +description: Verification Resolve Account Number response +content: + application/json: + schema: + $ref: ../schemas/VerificationResolveAccountNumberResponse.yaml diff --git a/src/assets/openapi/components/responses/VerificationResolveCardBINSuccess.yaml b/src/assets/openapi/components/responses/VerificationResolveCardBINSuccess.yaml new file mode 100644 index 0000000..d94fe16 --- /dev/null +++ b/src/assets/openapi/components/responses/VerificationResolveCardBINSuccess.yaml @@ -0,0 +1,5 @@ +description: Verification Resolve Card B I N response +content: + application/json: + schema: + $ref: ../schemas/VerificationResolveCardBINResponse.yaml diff --git a/src/assets/openapi/components/responses/VerificationValidateAccountSuccess.yaml b/src/assets/openapi/components/responses/VerificationValidateAccountSuccess.yaml new file mode 100644 index 0000000..35bb879 --- /dev/null +++ b/src/assets/openapi/components/responses/VerificationValidateAccountSuccess.yaml @@ -0,0 +1,5 @@ +description: Verification Validate Account response +content: + application/json: + schema: + $ref: ../schemas/VerificationValidateAccountResponse.yaml diff --git a/src/assets/openapi/components/responses/VirtualTerminalAddSplitCodeSuccess.yaml b/src/assets/openapi/components/responses/VirtualTerminalAddSplitCodeSuccess.yaml new file mode 100644 index 0000000..5d98b1f --- /dev/null +++ b/src/assets/openapi/components/responses/VirtualTerminalAddSplitCodeSuccess.yaml @@ -0,0 +1,5 @@ +description: Virtual Terminal Split Assign response +content: + application/json: + schema: + $ref: ../schemas/VirtualTerminalAddSplitCodeResponse.yaml diff --git a/src/assets/openapi/components/responses/VirtualTerminalCreateSuccess.yaml b/src/assets/openapi/components/responses/VirtualTerminalCreateSuccess.yaml new file mode 100644 index 0000000..98b7b2f --- /dev/null +++ b/src/assets/openapi/components/responses/VirtualTerminalCreateSuccess.yaml @@ -0,0 +1,5 @@ +description: Virtual Terminal Create response +content: + application/json: + schema: + $ref: ../schemas/VirtualTerminalCreateResponse.yaml diff --git a/src/assets/openapi/components/responses/VirtualTerminalDeactivateSuccess.yaml b/src/assets/openapi/components/responses/VirtualTerminalDeactivateSuccess.yaml new file mode 100644 index 0000000..c2b8796 --- /dev/null +++ b/src/assets/openapi/components/responses/VirtualTerminalDeactivateSuccess.yaml @@ -0,0 +1,5 @@ +description: Virtual Terminal Deactivate response +content: + application/json: + schema: + $ref: ../schemas/VirtualTerminalDeactivateResponse.yaml diff --git a/src/assets/openapi/components/responses/VirtualTerminalDeleteSplitCodeSuccess.yaml b/src/assets/openapi/components/responses/VirtualTerminalDeleteSplitCodeSuccess.yaml new file mode 100644 index 0000000..dfa1ebb --- /dev/null +++ b/src/assets/openapi/components/responses/VirtualTerminalDeleteSplitCodeSuccess.yaml @@ -0,0 +1,5 @@ +description: Virtual Terminal Split Remove response +content: + application/json: + schema: + $ref: ../schemas/VirtualTerminalDeleteSplitCodeResponse.yaml diff --git a/src/assets/openapi/components/responses/VirtualTerminalDestinationAssignSuccess.yaml b/src/assets/openapi/components/responses/VirtualTerminalDestinationAssignSuccess.yaml new file mode 100644 index 0000000..160c12c --- /dev/null +++ b/src/assets/openapi/components/responses/VirtualTerminalDestinationAssignSuccess.yaml @@ -0,0 +1,5 @@ +description: Virtual Terminal Deactivate response +content: + application/json: + schema: + $ref: ../schemas/VirtualTerminalDestinationAssignResponse.yaml diff --git a/src/assets/openapi/components/responses/VirtualTerminalDestinationUnassignSuccess.yaml b/src/assets/openapi/components/responses/VirtualTerminalDestinationUnassignSuccess.yaml new file mode 100644 index 0000000..9f310f6 --- /dev/null +++ b/src/assets/openapi/components/responses/VirtualTerminalDestinationUnassignSuccess.yaml @@ -0,0 +1,5 @@ +description: Virtual Terminal unassign response +content: + application/json: + schema: + $ref: ../schemas/VirtualTerminalDestinationUnassignResponse.yaml diff --git a/src/assets/openapi/components/responses/VirtualTerminalFetchSuccess.yaml b/src/assets/openapi/components/responses/VirtualTerminalFetchSuccess.yaml new file mode 100644 index 0000000..c4d927f --- /dev/null +++ b/src/assets/openapi/components/responses/VirtualTerminalFetchSuccess.yaml @@ -0,0 +1,5 @@ +description: Virtual Terminal Fetch response +content: + application/json: + schema: + $ref: ../schemas/VirtualTerminalFetchResponse.yaml diff --git a/src/assets/openapi/components/responses/VirtualTerminalListSuccess.yaml b/src/assets/openapi/components/responses/VirtualTerminalListSuccess.yaml new file mode 100644 index 0000000..275ddfb --- /dev/null +++ b/src/assets/openapi/components/responses/VirtualTerminalListSuccess.yaml @@ -0,0 +1,5 @@ +description: Virtual Terminal Lists response +content: + application/json: + schema: + $ref: ../schemas/VirtualTerminalListResponse.yaml diff --git a/src/assets/openapi/components/responses/VirtualTerminalUpdateSuccess.yaml b/src/assets/openapi/components/responses/VirtualTerminalUpdateSuccess.yaml new file mode 100644 index 0000000..a192c13 --- /dev/null +++ b/src/assets/openapi/components/responses/VirtualTerminalUpdateSuccess.yaml @@ -0,0 +1,5 @@ +description: Virtual Terminal Update response +content: + application/json: + schema: + $ref: ../schemas/VirtualTerminalUpdateResponse.yaml diff --git a/src/assets/openapi/components/schemas/ApplePayCreateOkModel.yaml b/src/assets/openapi/components/schemas/ApplePayCreateOkModel.yaml new file mode 100644 index 0000000..b14fbfa --- /dev/null +++ b/src/assets/openapi/components/schemas/ApplePayCreateOkModel.yaml @@ -0,0 +1,11 @@ +type: object +properties: + status: + description: An indicator + type: boolean + message: + description: A short description of the response + type: string +example: + status: true + message: Domain successfully registered on Apple Pay diff --git a/src/assets/openapi/components/schemas/ApplePayParam.yaml b/src/assets/openapi/components/schemas/ApplePayParam.yaml new file mode 100644 index 0000000..f747323 --- /dev/null +++ b/src/assets/openapi/components/schemas/ApplePayParam.yaml @@ -0,0 +1,9 @@ +type: object +required: + - domainName +properties: + domainName: + description: The domain or subdomain for your application + type: string +example: + domainName: example.com diff --git a/src/assets/openapi/components/schemas/BalanceCheckResponse.yaml b/src/assets/openapi/components/schemas/BalanceCheckResponse.yaml new file mode 100644 index 0000000..919ba70 --- /dev/null +++ b/src/assets/openapi/components/schemas/BalanceCheckResponse.yaml @@ -0,0 +1,14 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./BalanceCheckResponseArray.yaml +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/BalanceCheckResponseArray.yaml b/src/assets/openapi/components/schemas/BalanceCheckResponseArray.yaml new file mode 100644 index 0000000..ba6f37a --- /dev/null +++ b/src/assets/openapi/components/schemas/BalanceCheckResponseArray.yaml @@ -0,0 +1,9 @@ +type: object +properties: + currency: + type: string + balance: + type: integer +required: + - currency + - balance diff --git a/src/assets/openapi/components/schemas/BalanceFetchLedgerResponse.yaml b/src/assets/openapi/components/schemas/BalanceFetchLedgerResponse.yaml new file mode 100644 index 0000000..6b0c797 --- /dev/null +++ b/src/assets/openapi/components/schemas/BalanceFetchLedgerResponse.yaml @@ -0,0 +1,35 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./BalanceFetchLedgerResponseArray.yaml + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false +required: + - status + - message + - data + - meta diff --git a/src/assets/openapi/components/schemas/BalanceFetchLedgerResponseArray.yaml b/src/assets/openapi/components/schemas/BalanceFetchLedgerResponseArray.yaml new file mode 100644 index 0000000..32ad7e9 --- /dev/null +++ b/src/assets/openapi/components/schemas/BalanceFetchLedgerResponseArray.yaml @@ -0,0 +1,36 @@ +type: object +properties: + integration: + type: integer + domain: + type: string + balance: + type: integer + currency: + type: string + difference: + type: integer + reason: + type: string + model_responsible: + type: string + model_row: + type: integer + id: + type: integer + createdAt: + type: string + updatedAt: + type: string +required: + - integration + - domain + - balance + - currency + - difference + - reason + - model_responsible + - model_row + - id + - createdAt + - updatedAt diff --git a/main/schemas/channel/Bank.yaml b/src/assets/openapi/components/schemas/Bank.yaml similarity index 67% rename from main/schemas/channel/Bank.yaml rename to src/assets/openapi/components/schemas/Bank.yaml index 410634a..1a1d0dd 100644 --- a/main/schemas/channel/Bank.yaml +++ b/src/assets/openapi/components/schemas/Bank.yaml @@ -1,8 +1,9 @@ type: object +description: The bank object if charging a bank account properties: code: description: Customer's bank code type: string account_number: description: Customer's account number - type: string \ No newline at end of file + type: string diff --git a/src/assets/openapi/components/schemas/BankValidateRequest.yaml b/src/assets/openapi/components/schemas/BankValidateRequest.yaml new file mode 100644 index 0000000..ada9129 --- /dev/null +++ b/src/assets/openapi/components/schemas/BankValidateRequest.yaml @@ -0,0 +1,39 @@ +type: object +required: + - account_name + - account_number + - account_type + - bank_code + - country_code + - document_type +properties: + account_name: + description: Customer's first and last name registered with their bank + type: string + account_number: + description: Customer's account number + type: string + account_type: + description: The type of the customer's account number + type: string + enum: + - personal + - business + bank_code: + description: >- + The bank code of the customer’s bank. You can fetch the bank codes by + using our List Banks endpoint + type: string + country_code: + description: The two digit ISO code of the customer’s bank + type: string + document_type: + description: Customer’s mode of identity + type: string + enum: + - identityNumber + - passportNumber + - businessRegistrationNumber + document_number: + description: Customer’s mode of identity number + type: string diff --git a/src/assets/openapi/components/schemas/BulkChargeFetchBulkBatchChargesResponse.yaml b/src/assets/openapi/components/schemas/BulkChargeFetchBulkBatchChargesResponse.yaml new file mode 100644 index 0000000..67e03dd --- /dev/null +++ b/src/assets/openapi/components/schemas/BulkChargeFetchBulkBatchChargesResponse.yaml @@ -0,0 +1,35 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./BulkChargeFetchBulkBatchChargesResponseArray.yaml + meta: + type: object + properties: + perPage: + type: string + total: + type: integer + skipped: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - perPage + - total + - skipped + - page + - pageCount + additionalProperties: false +required: + - status + - message + - data + - meta diff --git a/src/assets/openapi/components/schemas/BulkChargeFetchBulkBatchChargesResponseArray.yaml b/src/assets/openapi/components/schemas/BulkChargeFetchBulkBatchChargesResponseArray.yaml new file mode 100644 index 0000000..3fca2ea --- /dev/null +++ b/src/assets/openapi/components/schemas/BulkChargeFetchBulkBatchChargesResponseArray.yaml @@ -0,0 +1,131 @@ +type: object +properties: + integration: + type: integer + bulkcharge: + type: integer + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + properties: + calling_code: + type: string + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + domain: + type: string + amount: + type: integer + at_least: + type: integer + currency: + type: string + reference: + type: string + metadata: + type: object + properties: + custom_fields: + type: array + items: + $ref: ./MetadataCustomFieldsArray.yaml + required: + - custom_fields + status: + type: string + message: + type: string + attempt_partial_debit: + type: boolean + id: + type: integer + createdAt: + type: string + updatedAt: + type: string +required: + - integration + - bulkcharge + - customer + - authorization + - domain + - amount + - at_least + - currency + - reference + - metadata + - status + - message + - attempt_partial_debit + - id + - createdAt + - updatedAt diff --git a/src/assets/openapi/components/schemas/BulkChargeFetchResponse.yaml b/src/assets/openapi/components/schemas/BulkChargeFetchResponse.yaml new file mode 100644 index 0000000..54d60ef --- /dev/null +++ b/src/assets/openapi/components/schemas/BulkChargeFetchResponse.yaml @@ -0,0 +1,44 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + batch_code: + type: string + reference: + type: string + id: + type: integer + integration: + type: integer + domain: + type: string + status: + type: string + total_charges: + type: integer + pending_charges: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - batch_code + - reference + - id + - integration + - domain + - status + - total_charges + - pending_charges + - createdAt + - updatedAt +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/BulkChargeInitiate.yaml b/src/assets/openapi/components/schemas/BulkChargeInitiate.yaml new file mode 100644 index 0000000..bbe9183 --- /dev/null +++ b/src/assets/openapi/components/schemas/BulkChargeInitiate.yaml @@ -0,0 +1,31 @@ +type: object +description: A list of charge object +required: + - authorization + - amount +properties: + authorization: + description: Customer's card authorization code + type: string + amount: + description: Amount to charge on the authorization + type: integer + reference: + description: | + A unique identifier containing lowercase letters `(a-z)`, digits `(0-9)` and these symbols: dash (`-`), underscore(`_`) + type: string + attempt_partial_debit: + description: >- + A flag to indicate if you want us to try recouping lower amounts when the + customer has insufficient fund + type: boolean + at_least: + description: Minimum amount to charge if the attempt_partial_debit flag is set + type: integer + metadata: + description: JSON object of custom data + type: object +example: + authorization: "AUTH_ncx8hews93" + amount: 250000 + reference: "dam1266638dhhd" \ No newline at end of file diff --git a/src/assets/openapi/components/schemas/BulkChargeInitiateResponse.yaml b/src/assets/openapi/components/schemas/BulkChargeInitiateResponse.yaml new file mode 100644 index 0000000..54d60ef --- /dev/null +++ b/src/assets/openapi/components/schemas/BulkChargeInitiateResponse.yaml @@ -0,0 +1,44 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + batch_code: + type: string + reference: + type: string + id: + type: integer + integration: + type: integer + domain: + type: string + status: + type: string + total_charges: + type: integer + pending_charges: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - batch_code + - reference + - id + - integration + - domain + - status + - total_charges + - pending_charges + - createdAt + - updatedAt +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/BulkChargeListResponse.yaml b/src/assets/openapi/components/schemas/BulkChargeListResponse.yaml new file mode 100644 index 0000000..5cdfb92 --- /dev/null +++ b/src/assets/openapi/components/schemas/BulkChargeListResponse.yaml @@ -0,0 +1,37 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./BulkChargeListResponseArray.yaml + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + anyOf: + - type: integer + - type: string + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false +required: + - status + - message + - data + - meta diff --git a/src/assets/openapi/components/schemas/BulkChargeListResponseArray.yaml b/src/assets/openapi/components/schemas/BulkChargeListResponseArray.yaml new file mode 100644 index 0000000..84e5890 --- /dev/null +++ b/src/assets/openapi/components/schemas/BulkChargeListResponseArray.yaml @@ -0,0 +1,30 @@ +type: object +properties: + integration: + type: integer + domain: + type: string + batch_code: + type: string + status: + type: string + easy_cron_id: + nullable: true + reference: + type: string + id: + type: integer + createdAt: + type: string + updatedAt: + type: string +required: + - integration + - domain + - batch_code + - status + - easy_cron_id + - reference + - id + - createdAt + - updatedAt diff --git a/main/responses/bulk-response.yaml b/src/assets/openapi/components/schemas/BulkChargePauseResponse.yaml similarity index 55% rename from main/responses/bulk-response.yaml rename to src/assets/openapi/components/schemas/BulkChargePauseResponse.yaml index ee67bd6..87b039a 100644 --- a/main/responses/bulk-response.yaml +++ b/src/assets/openapi/components/schemas/BulkChargePauseResponse.yaml @@ -1,8 +1,9 @@ type: object properties: status: - type: boolean + type: boolean message: type: string - data: - type: array \ No newline at end of file +required: + - status + - message diff --git a/src/assets/openapi/components/schemas/BulkChargeResumeResponse.yaml b/src/assets/openapi/components/schemas/BulkChargeResumeResponse.yaml new file mode 100644 index 0000000..87b039a --- /dev/null +++ b/src/assets/openapi/components/schemas/BulkChargeResumeResponse.yaml @@ -0,0 +1,9 @@ +type: object +properties: + status: + type: boolean + message: + type: string +required: + - status + - message diff --git a/src/assets/openapi/components/schemas/ChannelOptionMobileMoneyArray.yaml b/src/assets/openapi/components/schemas/ChannelOptionMobileMoneyArray.yaml new file mode 100644 index 0000000..7ff7e9a --- /dev/null +++ b/src/assets/openapi/components/schemas/ChannelOptionMobileMoneyArray.yaml @@ -0,0 +1,18 @@ +type: object +properties: + key: + type: string + value: + type: string + isNew: + type: boolean + phoneNumberRegex: + type: string + phoneNumberPlaceholder: + type: string +required: + - key + - value + - isNew + - phoneNumberRegex + - phoneNumberPlaceholder diff --git a/src/assets/openapi/components/schemas/ChargeAuthorizationResponse.yaml b/src/assets/openapi/components/schemas/ChargeAuthorizationResponse.yaml new file mode 100644 index 0000000..6db5731 --- /dev/null +++ b/src/assets/openapi/components/schemas/ChargeAuthorizationResponse.yaml @@ -0,0 +1,187 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + amount: + type: integer + currency: + type: string + transaction_date: + type: string + status: + type: string + reference: + type: string + domain: + type: string + metadata: + type: string + gateway_response: + type: string + message: + type: string + nullable: true + channel: + type: string + ip_address: + nullable: true + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + nullable: true + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + metadata: + type: object + properties: + calling_code: + type: string + nullable: true + risk_action: + type: string + international_format_phone: + type: string + nullable: true + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + nullable: true + id: + type: integer + required: + - amount + - currency + - transaction_date + - status + - reference + - domain + - metadata + - gateway_response + - message + - channel + - ip_address + - log + - fees + - authorization + - customer + - plan + - id +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/ChargeCheckPendingResponse.yaml b/src/assets/openapi/components/schemas/ChargeCheckPendingResponse.yaml new file mode 100644 index 0000000..de9e72d --- /dev/null +++ b/src/assets/openapi/components/schemas/ChargeCheckPendingResponse.yaml @@ -0,0 +1,121 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + status: + type: string + amount: + type: integer + currency: + type: string + transaction_date: + type: string + reference: + type: string + domain: + type: string + redirect_url: + type: string + nullable: true + metadata: + type: object + gateway_response: + type: string + message: + type: string + nullable: true + channel: + type: string + fees: + type: integer + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + nullable: true + bin: + type: string + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + customer: + type: object + properties: + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + risk_action: + type: string + required: + - first_name + - last_name + - email + - customer_code + - phone + - risk_action + required: + - status + - amount + - currency + - transaction_date + - reference + - domain + - redirect_url + - metadata + - gateway_response + - message + - channel + - fees + - authorization + - customer +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/ChargeCreate.yaml b/src/assets/openapi/components/schemas/ChargeCreate.yaml new file mode 100644 index 0000000..269b5fe --- /dev/null +++ b/src/assets/openapi/components/schemas/ChargeCreate.yaml @@ -0,0 +1,42 @@ +type: object +required: + - email + - amount +properties: + email: + description: Customer's email address + type: string + amount: + description: >- + Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, + and cents, if currency is ZAR + type: integer + authorization_code: + description: An authorization code to charge. + type: string + pin: + description: 4-digit PIN (send with a non-reusable authorization code) + type: string + reference: + description: >- + Unique transaction reference. Only -, .`, = and alphanumeric characters + allowed. + type: string + birthday: + description: The customer's birthday in the format YYYY-MM-DD e.g 2017-05-16 + type: string + format: date + device_id: + description: >- + This is the unique identifier of the device a user uses in making + payment. + + Only -, .`, = and alphanumeric characters are allowed. + type: string + metadata: + description: JSON object of custom data + type: object +example: + email: "customer@email.com" + amount: 350000 + authorization_code: "AUTH_df1l5ehnym" diff --git a/src/assets/openapi/components/schemas/ChargeCreateResponse.yaml b/src/assets/openapi/components/schemas/ChargeCreateResponse.yaml new file mode 100644 index 0000000..b4d9b02 --- /dev/null +++ b/src/assets/openapi/components/schemas/ChargeCreateResponse.yaml @@ -0,0 +1,236 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + receipt_number: + nullable: true + amount: + type: integer + message: + type: string + nullable: true + gateway_response: + type: string + paid_at: + type: string + created_at: + type: string + channel: + type: string + currency: + type: string + ip_address: + type: string + metadata: + type: object + properties: + custom_fields: + type: array + items: + $ref: ./MetadataCustomFieldsArray.yaml + required: + - custom_fields + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + fees_split: + type: integer + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + nullable: true + receiver_bank_account_number: + nullable: true + receiver_bank: + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + - receiver_bank_account_number + - receiver_bank + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + nullable: true + split: + type: object + order_id: + nullable: true + paidAt: + type: string + createdAt: + type: string + requested_amount: + type: integer + pos_transaction_data: + nullable: true + source: + nullable: true + fees_breakdown: + nullable: true + connect: + nullable: true + transaction_date: + type: string + plan_object: + type: object + subaccount: + type: object + required: + - id + - domain + - status + - reference + - receipt_number + - amount + - message + - gateway_response + - paid_at + - created_at + - channel + - currency + - ip_address + - metadata + - log + - fees + - fees_split + - authorization + - customer + - plan + - split + - order_id + - paidAt + - createdAt + - requested_amount + - pos_transaction_data + - source + - fees_breakdown + - connect + - transaction_date + - plan_object + - subaccount +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/ChargeMobileMoneyResponse.yaml b/src/assets/openapi/components/schemas/ChargeMobileMoneyResponse.yaml new file mode 100644 index 0000000..604ee5f --- /dev/null +++ b/src/assets/openapi/components/schemas/ChargeMobileMoneyResponse.yaml @@ -0,0 +1,40 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + transaction: + type: integer + phone: + type: string + provider: + type: string + channel_name: + type: string + display: + type: object + properties: + type: + type: string + message: + type: string + timer: + type: integer + required: + - type + - message + - timer + required: + - transaction + - phone + - provider + - channel_name + - display +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/ChargeResponse.yaml b/src/assets/openapi/components/schemas/ChargeResponse.yaml new file mode 100644 index 0000000..ab06b82 --- /dev/null +++ b/src/assets/openapi/components/schemas/ChargeResponse.yaml @@ -0,0 +1,131 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + status: + type: string + amount: + type: integer + currency: + type: string + transaction_date: + type: string + reference: + type: string + domain: + type: string + redirect_url: + type: string + nullable: true + metadata: + type: object + gateway_response: + type: string + message: + type: string + nullable: true + channel: + type: string + fees: + type: integer + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + nullable: true + bin: + type: string + nullable: true + last4: + type: string + nullable: true + exp_month: + type: string + exp_year: + type: string + channel: + type: string + nullable: true + card_type: + type: string + nullable: true + bank: + type: string + nullable: true + country_code: + type: string + nullable: true + brand: + type: string + nullable: true + reusable: + type: boolean + signature: + type: string + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + customer: + type: object + properties: + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + risk_action: + type: string + required: + - first_name + - last_name + - email + - customer_code + - phone + - risk_action + url: + type: string + required: + - status + - amount + - currency + - transaction_date + - reference + - domain + - redirect_url + - metadata + - gateway_response + - message + - channel + - fees + - authorization + - customer +required: + - status + - message + - data diff --git a/main/schemas/charge/SubmitAddress.yaml b/src/assets/openapi/components/schemas/ChargeSubmitAddress.yaml similarity index 59% rename from main/schemas/charge/SubmitAddress.yaml rename to src/assets/openapi/components/schemas/ChargeSubmitAddress.yaml index 85967bf..214f4b9 100644 --- a/main/schemas/charge/SubmitAddress.yaml +++ b/src/assets/openapi/components/schemas/ChargeSubmitAddress.yaml @@ -4,7 +4,7 @@ required: - reference - city - state - - zipcode + - zip_code properties: address: description: Customer's address @@ -15,10 +15,15 @@ properties: state: description: Customer's state type: string - zipcode: + zip_code: description: Customer's zipcode type: string reference: - description: |- - The reference of the ongoing transaction - type: string \ No newline at end of file + description: The reference of the ongoing transaction + type: string +example: + address: "140 N 2ND ST" + city: "Stroudsburg" + state: "PA" + zip_code: "18360" + reference: "5bwib5v6anhe9xa" \ No newline at end of file diff --git a/main/schemas/charge/SubmitBirthday.yaml b/src/assets/openapi/components/schemas/ChargeSubmitBirthday.yaml similarity index 53% rename from main/schemas/charge/SubmitBirthday.yaml rename to src/assets/openapi/components/schemas/ChargeSubmitBirthday.yaml index e263fb2..e7877a3 100644 --- a/main/schemas/charge/SubmitBirthday.yaml +++ b/src/assets/openapi/components/schemas/ChargeSubmitBirthday.yaml @@ -6,7 +6,10 @@ properties: birthday: description: Customer's birthday in the format YYYY-MM-DD e.g 2016-09-21 type: string + format: date reference: - description: |- - The reference of the ongoing transaction - type: string \ No newline at end of file + description: The reference of the ongoing transaction + type: string +example: + birthday: "1961-09-21" + reference: "5bwib5v6anhe9xa" \ No newline at end of file diff --git a/src/assets/openapi/components/schemas/ChargeSubmitBirthdayResponse.yaml b/src/assets/openapi/components/schemas/ChargeSubmitBirthdayResponse.yaml new file mode 100644 index 0000000..7e004d7 --- /dev/null +++ b/src/assets/openapi/components/schemas/ChargeSubmitBirthdayResponse.yaml @@ -0,0 +1,20 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + status: + type: string + display_text: + type: string + required: + - status + - display_text +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/ChargeSubmitOTP.yaml b/src/assets/openapi/components/schemas/ChargeSubmitOTP.yaml new file mode 100644 index 0000000..832485d --- /dev/null +++ b/src/assets/openapi/components/schemas/ChargeSubmitOTP.yaml @@ -0,0 +1,14 @@ +type: object +required: + - otp + - reference +properties: + otp: + description: Customer's OTP for ongoing transaction + type: string + reference: + description: The reference of the ongoing transaction + type: string +example: + otp: "123456" + reference: "5bwib5v6anhe9xa" diff --git a/src/assets/openapi/components/schemas/ChargeSubmitOtpResponse.yaml b/src/assets/openapi/components/schemas/ChargeSubmitOtpResponse.yaml new file mode 100644 index 0000000..de9e72d --- /dev/null +++ b/src/assets/openapi/components/schemas/ChargeSubmitOtpResponse.yaml @@ -0,0 +1,121 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + status: + type: string + amount: + type: integer + currency: + type: string + transaction_date: + type: string + reference: + type: string + domain: + type: string + redirect_url: + type: string + nullable: true + metadata: + type: object + gateway_response: + type: string + message: + type: string + nullable: true + channel: + type: string + fees: + type: integer + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + nullable: true + bin: + type: string + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + customer: + type: object + properties: + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + risk_action: + type: string + required: + - first_name + - last_name + - email + - customer_code + - phone + - risk_action + required: + - status + - amount + - currency + - transaction_date + - reference + - domain + - redirect_url + - metadata + - gateway_response + - message + - channel + - fees + - authorization + - customer +required: + - status + - message + - data diff --git a/main/schemas/charge/SubmitPhone.yaml b/src/assets/openapi/components/schemas/ChargeSubmitPhone.yaml similarity index 50% rename from main/schemas/charge/SubmitPhone.yaml rename to src/assets/openapi/components/schemas/ChargeSubmitPhone.yaml index 87d71a5..5b86122 100644 --- a/main/schemas/charge/SubmitPhone.yaml +++ b/src/assets/openapi/components/schemas/ChargeSubmitPhone.yaml @@ -7,6 +7,8 @@ properties: description: Customer's mobile number type: string reference: - description: |- - The reference of the ongoing transaction - type: string \ No newline at end of file + description: The reference of the ongoing transaction + type: string +example: + phone: "08012345678" + reference: "5bwib5v6anhe9xa" \ No newline at end of file diff --git a/src/assets/openapi/components/schemas/ChargeSubmitPhoneResponse.yaml b/src/assets/openapi/components/schemas/ChargeSubmitPhoneResponse.yaml new file mode 100644 index 0000000..bf5be61 --- /dev/null +++ b/src/assets/openapi/components/schemas/ChargeSubmitPhoneResponse.yaml @@ -0,0 +1,124 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + status: + type: string + amount: + type: integer + currency: + type: string + transaction_date: + type: string + reference: + type: string + domain: + type: string + redirect_url: + type: string + nullable: true + metadata: + type: object + gateway_response: + type: string + message: + type: string + nullable: true + channel: + type: string + fees: + type: integer + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + nullable: true + bin: + type: string + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + customer: + type: object + properties: + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + risk_action: + type: string + required: + - first_name + - last_name + - email + - customer_code + - phone + - risk_action + display_text: + type: string + required: + - status + - amount + - currency + - transaction_date + - reference + - domain + - redirect_url + - metadata + - gateway_response + - message + - channel + - fees + - authorization + - customer + - display_text +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/ChargeSubmitPin.yaml b/src/assets/openapi/components/schemas/ChargeSubmitPin.yaml new file mode 100644 index 0000000..1e43df5 --- /dev/null +++ b/src/assets/openapi/components/schemas/ChargeSubmitPin.yaml @@ -0,0 +1,14 @@ +type: object +required: + - pin + - reference +properties: + pin: + description: Customer's PIN for the ongoing transaction + type: string + reference: + description: Transaction reference that requires the PIN + type: string +example: + pin: "1234" + reference: "5bwib5v6anhe9xa" \ No newline at end of file diff --git a/src/assets/openapi/components/schemas/ChargeSubmitPinResponse.yaml b/src/assets/openapi/components/schemas/ChargeSubmitPinResponse.yaml new file mode 100644 index 0000000..de9e72d --- /dev/null +++ b/src/assets/openapi/components/schemas/ChargeSubmitPinResponse.yaml @@ -0,0 +1,121 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + status: + type: string + amount: + type: integer + currency: + type: string + transaction_date: + type: string + reference: + type: string + domain: + type: string + redirect_url: + type: string + nullable: true + metadata: + type: object + gateway_response: + type: string + message: + type: string + nullable: true + channel: + type: string + fees: + type: integer + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + nullable: true + bin: + type: string + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + customer: + type: object + properties: + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + risk_action: + type: string + required: + - first_name + - last_name + - email + - customer_code + - phone + - risk_action + required: + - status + - amount + - currency + - transaction_date + - reference + - domain + - redirect_url + - metadata + - gateway_response + - message + - channel + - fees + - authorization + - customer +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/ControlPanelFetchPaymentSessionTimeoutResponse.yaml b/src/assets/openapi/components/schemas/ControlPanelFetchPaymentSessionTimeoutResponse.yaml new file mode 100644 index 0000000..7947de1 --- /dev/null +++ b/src/assets/openapi/components/schemas/ControlPanelFetchPaymentSessionTimeoutResponse.yaml @@ -0,0 +1,17 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + payment_session_timeout: + type: integer + required: + - payment_session_timeout +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/ControlPanelUpdatePaymentSessionTimeoutResponse.yaml b/src/assets/openapi/components/schemas/ControlPanelUpdatePaymentSessionTimeoutResponse.yaml new file mode 100644 index 0000000..7947de1 --- /dev/null +++ b/src/assets/openapi/components/schemas/ControlPanelUpdatePaymentSessionTimeoutResponse.yaml @@ -0,0 +1,17 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + payment_session_timeout: + type: integer + required: + - payment_session_timeout +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/Currency.yaml b/src/assets/openapi/components/schemas/Currency.yaml new file mode 100644 index 0000000..7521370 --- /dev/null +++ b/src/assets/openapi/components/schemas/Currency.yaml @@ -0,0 +1,9 @@ +description: List of all support currencies +type: string +enum: + - GHS + - KES + - NGN + - ZAR + - USD +example: GHS diff --git a/src/assets/openapi/components/schemas/CustomerAuthorizationInitializeAccount.yaml b/src/assets/openapi/components/schemas/CustomerAuthorizationInitializeAccount.yaml new file mode 100644 index 0000000..ccf0362 --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerAuthorizationInitializeAccount.yaml @@ -0,0 +1,13 @@ +type: object +properties: + number: + type: string + description: The customer's account number + example: '0123456789' + bank_code: + type: string + description: The code representing the customer's bank + example: '058' +required: + - number + - bank_code diff --git a/src/assets/openapi/components/schemas/CustomerAuthorizationInitializeAddress.yaml b/src/assets/openapi/components/schemas/CustomerAuthorizationInitializeAddress.yaml new file mode 100644 index 0000000..68c72e9 --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerAuthorizationInitializeAddress.yaml @@ -0,0 +1,18 @@ +type: object +properties: + street: + type: string + description: The customer's street + example: 123 Main Street + city: + type: string + description: The customer's city + example: Lagos + state: + type: string + description: The customer's state + example: Lagos +required: + - street + - city + - state diff --git a/src/assets/openapi/components/schemas/CustomerAuthorizationInitializeRequest.yaml b/src/assets/openapi/components/schemas/CustomerAuthorizationInitializeRequest.yaml new file mode 100644 index 0000000..41f66f7 --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerAuthorizationInitializeRequest.yaml @@ -0,0 +1,25 @@ +type: object +required: + - email + - channel +properties: + email: + type: string + description: Customer's email address + example: ravi@demo.com + channel: + type: string + description: direct_debit is the only supported option for now + enum: + - direct_debit + example: direct_debit + callback_url: + type: string + description: >- + Fully qualified url (e.g. https://example.com/) to redirect your customer + to + example: http://test.url.com + account: + $ref: ./CustomerAuthorizationInitializeAccount.yaml + address: + $ref: ./CustomerAuthorizationInitializeAddress.yaml diff --git a/src/assets/openapi/components/schemas/CustomerAuthorizationInitializeResponse.yaml b/src/assets/openapi/components/schemas/CustomerAuthorizationInitializeResponse.yaml new file mode 100644 index 0000000..f31dbed --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerAuthorizationInitializeResponse.yaml @@ -0,0 +1,14 @@ +type: object +properties: + status: + type: boolean + example: true + message: + type: string + example: Authorization initialized + data: + $ref: ./CustomerAuthorizationInitializeResponseData.yaml +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/CustomerAuthorizationInitializeResponseData.yaml b/src/assets/openapi/components/schemas/CustomerAuthorizationInitializeResponseData.yaml new file mode 100644 index 0000000..4275d81 --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerAuthorizationInitializeResponseData.yaml @@ -0,0 +1,15 @@ +type: object +properties: + redirect_url: + type: string + example: https://checkout.paystack.com/82t4mp5b5mfn51h + access_code: + type: string + example: 82t4mp5b5mfn51h + reference: + type: string + example: dfbzfotsrbv4n5s82t4mp5b5mfn51h +required: + - redirect_url + - access_code + - reference diff --git a/src/assets/openapi/components/schemas/CustomerAuthorizationVerifyResponse.yaml b/src/assets/openapi/components/schemas/CustomerAuthorizationVerifyResponse.yaml new file mode 100644 index 0000000..5ca48a8 --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerAuthorizationVerifyResponse.yaml @@ -0,0 +1,14 @@ +type: object +properties: + status: + type: boolean + example: true + message: + type: string + example: Authorization retrieved successfully + data: + $ref: ./CustomerAuthorizationVerifyResponseData.yaml +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/CustomerAuthorizationVerifyResponseCustomer.yaml b/src/assets/openapi/components/schemas/CustomerAuthorizationVerifyResponseCustomer.yaml new file mode 100644 index 0000000..58603ae --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerAuthorizationVerifyResponseCustomer.yaml @@ -0,0 +1,11 @@ +type: object +properties: + code: + type: string + example: CUS_24lze1c8i2zl76y + email: + type: string + example: ravi@demo.com +required: + - code + - email diff --git a/src/assets/openapi/components/schemas/CustomerAuthorizationVerifyResponseData.yaml b/src/assets/openapi/components/schemas/CustomerAuthorizationVerifyResponseData.yaml new file mode 100644 index 0000000..62c166f --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerAuthorizationVerifyResponseData.yaml @@ -0,0 +1,22 @@ +type: object +properties: + authorization_code: + type: string + example: AUTH_JV4T9Wawdj + channel: + type: string + example: direct_debit + bank: + type: string + example: Guaranty Trust Bank + active: + type: boolean + example: true + customer: + $ref: ./CustomerAuthorizationVerifyResponseCustomer.yaml +required: + - authorization_code + - channel + - bank + - active + - customer diff --git a/src/assets/openapi/components/schemas/CustomerCreate.yaml b/src/assets/openapi/components/schemas/CustomerCreate.yaml new file mode 100644 index 0000000..fffd2bb --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerCreate.yaml @@ -0,0 +1,23 @@ +type: object +required: + - email +properties: + email: + description: Customer's email address + type: string + first_name: + description: Customer's first name + type: string + last_name: + description: Customer's last name + type: string + phone: + description: Customer's phone number + type: string + metadata: + description: Stringified JSON object of custom data + type: string +example: + email: rock@sandy.com + first_name: Rock + last_name: Sandy \ No newline at end of file diff --git a/src/assets/openapi/components/schemas/CustomerCreateResponse.yaml b/src/assets/openapi/components/schemas/CustomerCreateResponse.yaml new file mode 100644 index 0000000..e171d2c --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerCreateResponse.yaml @@ -0,0 +1,71 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + transactions: + type: array + items: {} + subscriptions: + type: array + items: {} + authorizations: + type: array + items: {} + email: + type: string + first_name: + type: string + last_name: + type: string + phone: + type: string + integration: + type: integer + domain: + type: string + metadata: + type: object + properties: + calling_code: + type: string + customer_code: + type: string + risk_action: + type: string + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + identified: + type: boolean + identifications: + nullable: true + required: + - transactions + - subscriptions + - authorizations + - email + - first_name + - last_name + - phone + - integration + - domain + - metadata + - customer_code + - risk_action + - id + - createdAt + - updatedAt + - identified + - identifications +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/CustomerDeactivateAuthorization.yaml b/src/assets/openapi/components/schemas/CustomerDeactivateAuthorization.yaml new file mode 100644 index 0000000..9fd1ad5 --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerDeactivateAuthorization.yaml @@ -0,0 +1,9 @@ +type: object +required: + - authorization_code +properties: + authorization_code: + description: Authorization code to be deactivated + type: string +example: + authorization_code: "AUTH_xxxIjkZVj5" \ No newline at end of file diff --git a/src/assets/openapi/components/schemas/CustomerDeactivateAuthorizationResponse.yaml b/src/assets/openapi/components/schemas/CustomerDeactivateAuthorizationResponse.yaml new file mode 100644 index 0000000..87b039a --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerDeactivateAuthorizationResponse.yaml @@ -0,0 +1,9 @@ +type: object +properties: + status: + type: boolean + message: + type: string +required: + - status + - message diff --git a/src/assets/openapi/components/schemas/CustomerDirectDebitActivationChargeRequest.yaml b/src/assets/openapi/components/schemas/CustomerDirectDebitActivationChargeRequest.yaml new file mode 100644 index 0000000..bb08524 --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerDirectDebitActivationChargeRequest.yaml @@ -0,0 +1,8 @@ +type: object +required: + - authorization_id +properties: + authorization_id: + type: integer + description: The authorization ID gotten from the initiation response + example: 1069309917 diff --git a/src/assets/openapi/components/schemas/CustomerDirectDebitActivationChargeResponse.yaml b/src/assets/openapi/components/schemas/CustomerDirectDebitActivationChargeResponse.yaml new file mode 100644 index 0000000..e955e65 --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerDirectDebitActivationChargeResponse.yaml @@ -0,0 +1,11 @@ +type: object +properties: + status: + type: boolean + example: true + message: + type: string + example: Mandate is queued for retry +required: + - status + - message diff --git a/src/assets/openapi/components/schemas/CustomerFetchMandateAuthorizationsResponse.yaml b/src/assets/openapi/components/schemas/CustomerFetchMandateAuthorizationsResponse.yaml new file mode 100644 index 0000000..89df1b9 --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerFetchMandateAuthorizationsResponse.yaml @@ -0,0 +1,19 @@ +type: object +properties: + status: + type: boolean + example: true + message: + type: string + example: Mandate authorizations retrieved successfully + data: + type: array + items: + $ref: ./CustomerFetchMandateAuthorizationsResponseData.yaml + meta: + $ref: ./CustomerFetchMandateAuthorizationsResponseMeta.yaml +required: + - status + - message + - data + - meta diff --git a/src/assets/openapi/components/schemas/CustomerFetchMandateAuthorizationsResponseData.yaml b/src/assets/openapi/components/schemas/CustomerFetchMandateAuthorizationsResponseData.yaml new file mode 100644 index 0000000..6719b17 --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerFetchMandateAuthorizationsResponseData.yaml @@ -0,0 +1,63 @@ +type: object +properties: + id: + type: integer + example: 164098 + status: + type: string + example: active + mandate_id: + type: integer + example: 512003 + authorization_id: + type: integer + example: 110049014 + authorization_code: + type: string + example: AUTH_8Lol0pNt14 + integration_id: + type: integer + example: 463433 + account_number: + type: string + example: '0123456789' + bank_code: + type: string + example: "032" + bank_name: + type: string + nullable: true + example: null + customer: + type: object + properties: + id: + type: integer + example: 43975700 + customer_code: + type: string + example: CUS_2eusy8uwe34s23fy + email: + type: string + example: customer@email.com + first_name: + type: string + example: Smith + last_name: + type: string + example: Bel + authorized_at: + type: string + format: date-time + example: '2024-09-27T10:57:53.824Z' +required: + - id + - status + - mandate_id + - authorization_id + - authorization_code + - integration_id + - account_number + - bank_code + - customer + - authorized_at diff --git a/src/assets/openapi/components/schemas/CustomerFetchMandateAuthorizationsResponseMeta.yaml b/src/assets/openapi/components/schemas/CustomerFetchMandateAuthorizationsResponseMeta.yaml new file mode 100644 index 0000000..bce5589 --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerFetchMandateAuthorizationsResponseMeta.yaml @@ -0,0 +1,19 @@ +type: object +properties: + per_page: + type: integer + example: 50 + next: + type: string + nullable: true + example: null + count: + type: integer + example: 1 + total: + type: integer + example: 1 +required: + - per_page + - count + - total diff --git a/src/assets/openapi/components/schemas/CustomerFetchResponse.yaml b/src/assets/openapi/components/schemas/CustomerFetchResponse.yaml new file mode 100644 index 0000000..1ecfeb9 --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerFetchResponse.yaml @@ -0,0 +1,92 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + transactions: + type: array + items: {} + subscriptions: + type: array + items: {} + authorizations: + type: array + items: {} + first_name: + type: string + last_name: + type: string + email: + type: string + phone: + type: string + metadata: + type: object + properties: + calling_code: + type: string + domain: + type: string + customer_code: + type: string + risk_action: + type: string + id: + type: integer + integration: + type: integer + createdAt: + type: string + updatedAt: + type: string + created_at: + type: string + updated_at: + type: string + total_transactions: + type: integer + total_transaction_value: + type: array + items: {} + dedicated_account: + nullable: true + dedicated_accounts: + type: array + items: {} + nullable: true + identified: + type: boolean + identifications: + nullable: true + required: + - transactions + - subscriptions + - authorizations + - first_name + - last_name + - email + - phone + - metadata + - domain + - customer_code + - risk_action + - id + - integration + - createdAt + - updatedAt + - created_at + - updated_at + - total_transactions + - total_transaction_value + - dedicated_account + - dedicated_accounts + - identified + - identifications +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/CustomerInitializeDirectDebitAccount.yaml b/src/assets/openapi/components/schemas/CustomerInitializeDirectDebitAccount.yaml new file mode 100644 index 0000000..ccf0362 --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerInitializeDirectDebitAccount.yaml @@ -0,0 +1,13 @@ +type: object +properties: + number: + type: string + description: The customer's account number + example: '0123456789' + bank_code: + type: string + description: The code representing the customer's bank + example: '058' +required: + - number + - bank_code diff --git a/src/assets/openapi/components/schemas/CustomerInitializeDirectDebitAddress.yaml b/src/assets/openapi/components/schemas/CustomerInitializeDirectDebitAddress.yaml new file mode 100644 index 0000000..2497561 --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerInitializeDirectDebitAddress.yaml @@ -0,0 +1,18 @@ +type: object +properties: + street: + type: string + description: The customer's street + example: Some Where + city: + type: string + description: The customer's city + example: Ikeja + state: + type: string + description: The customer's state + example: Lagos +required: + - street + - city + - state diff --git a/src/assets/openapi/components/schemas/CustomerInitializeDirectDebitRequest.yaml b/src/assets/openapi/components/schemas/CustomerInitializeDirectDebitRequest.yaml new file mode 100644 index 0000000..b430efb --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerInitializeDirectDebitRequest.yaml @@ -0,0 +1,9 @@ +type: object +required: + - account + - address +properties: + account: + $ref: ./CustomerInitializeDirectDebitAccount.yaml + address: + $ref: ./CustomerInitializeDirectDebitAddress.yaml diff --git a/src/assets/openapi/components/schemas/CustomerInitializeDirectDebitResponse.yaml b/src/assets/openapi/components/schemas/CustomerInitializeDirectDebitResponse.yaml new file mode 100644 index 0000000..72b568f --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerInitializeDirectDebitResponse.yaml @@ -0,0 +1,14 @@ +type: object +properties: + status: + type: boolean + example: true + message: + type: string + example: Authorization initialized + data: + $ref: ./CustomerInitializeDirectDebitResponseData.yaml +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/CustomerInitializeDirectDebitResponseData.yaml b/src/assets/openapi/components/schemas/CustomerInitializeDirectDebitResponseData.yaml new file mode 100644 index 0000000..4ea08eb --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerInitializeDirectDebitResponseData.yaml @@ -0,0 +1,15 @@ +type: object +properties: + redirect_url: + type: string + example: https://link.paystack.com/ll6b0szngj1f27k + access_code: + type: string + example: ll6b0szngj1f27k + reference: + type: string + example: 1er945lpy4txyki +required: + - redirect_url + - access_code + - reference diff --git a/src/assets/openapi/components/schemas/CustomerListResponse.yaml b/src/assets/openapi/components/schemas/CustomerListResponse.yaml new file mode 100644 index 0000000..b267a1d --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerListResponse.yaml @@ -0,0 +1,37 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./CustomerListResponseArray.yaml + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + anyOf: + - type: string + - type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false +required: + - status + - message + - data + - meta diff --git a/src/assets/openapi/components/schemas/CustomerListResponseArray.yaml b/src/assets/openapi/components/schemas/CustomerListResponseArray.yaml new file mode 100644 index 0000000..3fa40f4 --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerListResponseArray.yaml @@ -0,0 +1,43 @@ +type: object +properties: + integration: + type: integer + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + phone: + type: string + nullable: true + metadata: + type: object + nullable: true + domain: + type: string + customer_code: + type: string + risk_action: + type: string + id: + type: integer + createdAt: + type: string + updatedAt: + type: string +required: + - integration + - first_name + - last_name + - email + - phone + - metadata + - domain + - customer_code + - risk_action + - id + - createdAt + - updatedAt diff --git a/src/assets/openapi/components/schemas/CustomerRiskAction.yaml b/src/assets/openapi/components/schemas/CustomerRiskAction.yaml new file mode 100644 index 0000000..6b3079e --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerRiskAction.yaml @@ -0,0 +1,18 @@ +type: object +required: + - customer +properties: + customer: + description: The customer code from the response of the customer creation + type: string + risk_action: + description: This determines the fraud rules that should be applied to the customer + type: string + default: default + enum: + - allow + - deny + - default +example: + customer: "CUS_c6wqvwmvwopw4ms" + risk_action: "deny" \ No newline at end of file diff --git a/src/assets/openapi/components/schemas/CustomerRiskActionResponse.yaml b/src/assets/openapi/components/schemas/CustomerRiskActionResponse.yaml new file mode 100644 index 0000000..4be802b --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerRiskActionResponse.yaml @@ -0,0 +1,68 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + transactions: + type: array + items: {} + subscriptions: + type: array + items: {} + authorizations: + type: array + items: {} + first_name: + type: string + last_name: + type: string + email: + type: string + phone: + type: string + metadata: + type: object + domain: + type: string + customer_code: + type: string + risk_action: + type: string + id: + type: integer + integration: + type: integer + createdAt: + type: string + updatedAt: + type: string + identified: + type: boolean + identifications: + nullable: true + required: + - transactions + - subscriptions + - authorizations + - first_name + - last_name + - email + - phone + - metadata + - domain + - customer_code + - risk_action + - id + - integration + - createdAt + - updatedAt + - identified + - identifications +required: + - status + - message + - data diff --git a/main/schemas/customer/CustomerBase.yaml b/src/assets/openapi/components/schemas/CustomerUpdate.yaml similarity index 78% rename from main/schemas/customer/CustomerBase.yaml rename to src/assets/openapi/components/schemas/CustomerUpdate.yaml index bb9e3d9..95a0fb3 100644 --- a/main/schemas/customer/CustomerBase.yaml +++ b/src/assets/openapi/components/schemas/CustomerUpdate.yaml @@ -3,15 +3,15 @@ properties: first_name: description: Customer's first name type: string - example: Some last_name: description: Customer's last name type: string - example: Body phone: description: Customer's phone number type: string - example: "+2348123456789" metadata: description: Stringified JSON object of custom data - type: string \ No newline at end of file + type: string +example: + first_name: Cecilia + last_name: Jones \ No newline at end of file diff --git a/src/assets/openapi/components/schemas/CustomerUpdateResponse.yaml b/src/assets/openapi/components/schemas/CustomerUpdateResponse.yaml new file mode 100644 index 0000000..27d2131 --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerUpdateResponse.yaml @@ -0,0 +1,56 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + first_name: + type: string + last_name: + type: string + email: + type: string + phone: + type: string + metadata: + type: object + domain: + type: string + customer_code: + type: string + risk_action: + type: string + id: + type: integer + integration: + type: integer + createdAt: + type: string + updatedAt: + type: string + identified: + type: boolean + identifications: + nullable: true + required: + - first_name + - last_name + - email + - phone + - metadata + - domain + - customer_code + - risk_action + - id + - integration + - createdAt + - updatedAt + - identified + - identifications +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/CustomerValidate.yaml b/src/assets/openapi/components/schemas/CustomerValidate.yaml new file mode 100644 index 0000000..a8def00 --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerValidate.yaml @@ -0,0 +1,48 @@ +type: object +required: + - first_name + - last_name + - type + - country + - bvn + - bank_code + - account_number +properties: + first_name: + description: Customer's first name + type: string + middle_name: + description: Customer's middle name + type: string + last_name: + description: Customer's last name + type: string + type: + description: Predefined types of identification. + type: string + default: bank_account + value: + description: Customer's identification number. + type: string + country: + description: Two-letter country code of identification issuer + type: string + bvn: + description: Customer's Bank Verification Number + type: string + bank_code: + description: >- + You can get the list of bank codes by calling the List Banks endpoint + (https://api.paystack.co/bank). + type: string + account_number: + description: Customer's bank account number. + type: string +example: + first_name: "Jabal" + last_name: "Cedar" + country: "NG" + type: "bank_account" + account_number: "0123456789" + bank_code: "007" + bvn: "20012345677" diff --git a/src/assets/openapi/components/schemas/CustomerValidateResponse.yaml b/src/assets/openapi/components/schemas/CustomerValidateResponse.yaml new file mode 100644 index 0000000..87b039a --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerValidateResponse.yaml @@ -0,0 +1,9 @@ +type: object +properties: + status: + type: boolean + message: + type: string +required: + - status + - message diff --git a/src/assets/openapi/components/schemas/CustomerWhitelistBlacklistResponse.yaml b/src/assets/openapi/components/schemas/CustomerWhitelistBlacklistResponse.yaml new file mode 100644 index 0000000..4be802b --- /dev/null +++ b/src/assets/openapi/components/schemas/CustomerWhitelistBlacklistResponse.yaml @@ -0,0 +1,68 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + transactions: + type: array + items: {} + subscriptions: + type: array + items: {} + authorizations: + type: array + items: {} + first_name: + type: string + last_name: + type: string + email: + type: string + phone: + type: string + metadata: + type: object + domain: + type: string + customer_code: + type: string + risk_action: + type: string + id: + type: integer + integration: + type: integer + createdAt: + type: string + updatedAt: + type: string + identified: + type: boolean + identifications: + nullable: true + required: + - transactions + - subscriptions + - authorizations + - first_name + - last_name + - email + - phone + - metadata + - domain + - customer_code + - risk_action + - id + - integration + - createdAt + - updatedAt + - identified + - identifications +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/DedicatedNubanCreateResponse.yaml b/src/assets/openapi/components/schemas/DedicatedNubanCreateResponse.yaml new file mode 100644 index 0000000..b5517ef --- /dev/null +++ b/src/assets/openapi/components/schemas/DedicatedNubanCreateResponse.yaml @@ -0,0 +1,114 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + bank: + type: object + properties: + name: + type: string + id: + type: integer + slug: + type: string + required: + - name + - id + - slug + account_name: + type: string + account_number: + type: string + assigned: + type: boolean + currency: + type: string + metadata: + nullable: true + active: + type: boolean + id: + type: integer + created_at: + type: string + updated_at: + type: string + assignment: + type: object + properties: + integration: + type: integer + assignee_id: + type: integer + assignee_type: + type: string + expired: + type: boolean + account_type: + type: string + assigned_at: + type: string + expired_at: + nullable: true + required: + - integration + - assignee_id + - assignee_type + - expired + - account_type + - assigned_at + - expired_at + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + nullable: true + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + required: + - bank + - account_name + - account_number + - assigned + - currency + - metadata + - active + - id + - created_at + - updated_at + - assignment + - customer +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/DedicatedNubanDeactivateResponse.yaml b/src/assets/openapi/components/schemas/DedicatedNubanDeactivateResponse.yaml new file mode 100644 index 0000000..82733f0 --- /dev/null +++ b/src/assets/openapi/components/schemas/DedicatedNubanDeactivateResponse.yaml @@ -0,0 +1,75 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + bank: + type: object + properties: + name: + type: string + id: + type: integer + slug: + type: string + required: + - name + - id + - slug + account_name: + type: string + account_number: + type: string + assigned: + type: boolean + currency: + type: string + metadata: + nullable: true + active: + type: boolean + id: + type: integer + created_at: + type: string + updated_at: + type: string + assignment: + type: object + properties: + assignee_id: + type: integer + assignee_type: + type: string + assigned_at: + type: string + integration: + type: integer + account_type: + type: string + required: + - assignee_id + - assignee_type + - assigned_at + - integration + - account_type + required: + - bank + - account_name + - account_number + - assigned + - currency + - metadata + - active + - id + - created_at + - updated_at + - assignment +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/DedicatedNubanFetchResponse.yaml b/src/assets/openapi/components/schemas/DedicatedNubanFetchResponse.yaml new file mode 100644 index 0000000..be8ee68 --- /dev/null +++ b/src/assets/openapi/components/schemas/DedicatedNubanFetchResponse.yaml @@ -0,0 +1,88 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + nullable: true + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + bank: + type: object + properties: + name: + type: string + id: + type: integer + slug: + type: string + required: + - name + - id + - slug + id: + type: integer + account_name: + type: string + account_number: + type: string + created_at: + type: string + updated_at: + type: string + currency: + type: string + split_config: + nullable: true + active: + type: boolean + assigned: + type: boolean + required: + - customer + - bank + - id + - account_name + - account_number + - created_at + - updated_at + - currency + - split_config + - active + - assigned +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/DedicatedNubanListResponse.yaml b/src/assets/openapi/components/schemas/DedicatedNubanListResponse.yaml new file mode 100644 index 0000000..4385afd --- /dev/null +++ b/src/assets/openapi/components/schemas/DedicatedNubanListResponse.yaml @@ -0,0 +1,35 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./DedicatedNubanListResponseArray.yaml + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false +required: + - status + - message + - data + - meta diff --git a/src/assets/openapi/components/schemas/DedicatedNubanListResponseArray.yaml b/src/assets/openapi/components/schemas/DedicatedNubanListResponseArray.yaml new file mode 100644 index 0000000..fb34bab --- /dev/null +++ b/src/assets/openapi/components/schemas/DedicatedNubanListResponseArray.yaml @@ -0,0 +1,71 @@ +type: object +properties: + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + risk_action: + type: string + international_format_phone: + type: string + nullable: true + bank: + type: object + properties: + name: + type: string + id: + type: integer + slug: + type: string + required: + - name + - id + - slug + id: + type: integer + account_name: + type: string + account_number: + type: string + created_at: + type: string + updated_at: + type: string + currency: + type: string + split_config: + type: object + properties: + subaccount: + type: string + required: + - subaccount + nullable: true + active: + type: boolean + assigned: + type: boolean +required: + - customer + - bank + - id + - account_name + - account_number + - created_at + - updated_at + - currency + - split_config + - active + - assigned diff --git a/src/assets/openapi/components/schemas/DedicatedVirtualAccountAssign.yaml b/src/assets/openapi/components/schemas/DedicatedVirtualAccountAssign.yaml new file mode 100644 index 0000000..bfac101 --- /dev/null +++ b/src/assets/openapi/components/schemas/DedicatedVirtualAccountAssign.yaml @@ -0,0 +1,58 @@ +type: object +required: + - email + - first_name + - last_name + - phone + - preferred_bank + - country +properties: + email: + description: Customer's email address + type: string + first_name: + description: Customer's first name + type: string + last_name: + description: Customer's last name + type: string + phone: + description: Customer's phone name + type: string + preferred_bank: + description: > + The bank slug for preferred bank. To get a list of available banks, + + use the List Banks endpoint, passing `pay_with_bank_transfer=true` query + parameter + type: string + country: + description: The two letter code country + type: string + enum: + - NG + - GH + account_number: + description: Customer's account number + type: string + bvn: + description: Customer's Bank Verification Number + type: string + bank_code: + description: Customer's bank code + type: string + subaccount: + description: Subaccount code of the account you want to split the transaction with + type: string + split_code: + description: >- + Split code consisting of the lists of accounts you want to split the + transaction with + type: string +example: + email: salmon.orange@email.com + first_name: Salmon + last_name: Orange + phone: "+2348100000000" + preferred_bank: "titan-paystack" + country: NG diff --git a/src/assets/openapi/components/schemas/DedicatedVirtualAccountCreate.yaml b/src/assets/openapi/components/schemas/DedicatedVirtualAccountCreate.yaml new file mode 100644 index 0000000..c9d6b1d --- /dev/null +++ b/src/assets/openapi/components/schemas/DedicatedVirtualAccountCreate.yaml @@ -0,0 +1,23 @@ +type: object +required: + - customer +properties: + customer: + description: The code for the previously created customer + type: string + preferred_bank: + description: >- + The bank slug for preferred bank. To get a list of available banks, use + the List Providers endpoint + type: string + subaccount: + description: Subaccount code of the account you want to split the transaction with + type: string + split_code: + description: >- + Split code consisting of the lists of accounts you want to split the + transaction with + type: string +example: + customer: "CUS_bo732eugpb2qrg6" + preferred_bank: "titan-paystack" \ No newline at end of file diff --git a/src/assets/openapi/components/schemas/DedicatedVirtualAccountRemoveSplit.yaml b/src/assets/openapi/components/schemas/DedicatedVirtualAccountRemoveSplit.yaml new file mode 100644 index 0000000..38e7585 --- /dev/null +++ b/src/assets/openapi/components/schemas/DedicatedVirtualAccountRemoveSplit.yaml @@ -0,0 +1,9 @@ +type: object +required: + - account_number +properties: + account_number: + description: Valid Dedicated virtual account + type: string +example: + account_number: "0033322211" diff --git a/main/schemas/dedicated-virtual-account/Split.yaml b/src/assets/openapi/components/schemas/DedicatedVirtualAccountSplit.yaml similarity index 52% rename from main/schemas/dedicated-virtual-account/Split.yaml rename to src/assets/openapi/components/schemas/DedicatedVirtualAccountSplit.yaml index 81db430..6d8828c 100644 --- a/main/schemas/dedicated-virtual-account/Split.yaml +++ b/src/assets/openapi/components/schemas/DedicatedVirtualAccountSplit.yaml @@ -1,6 +1,6 @@ type: object required: -- account_number + - account_number properties: account_number: description: Valid Dedicated virtual account @@ -9,5 +9,10 @@ properties: description: Subaccount code of the account you want to split the transaction with type: string split_code: - description: Split code consisting of the lists of accounts you want to split the transaction with - type: string \ No newline at end of file + description: >- + Split code consisting of the lists of accounts you want to split the + transaction with + type: string +example: + account_number: "0033322211" + split_code: "SPL_e7jnRLtzla" diff --git a/src/assets/openapi/components/schemas/DirectDebitActivationChargeRequest.yaml b/src/assets/openapi/components/schemas/DirectDebitActivationChargeRequest.yaml new file mode 100644 index 0000000..8a3d650 --- /dev/null +++ b/src/assets/openapi/components/schemas/DirectDebitActivationChargeRequest.yaml @@ -0,0 +1,12 @@ +type: object +required: + - customer_ids +properties: + customer_ids: + type: array + description: Array of customer IDs to trigger activation charge for + items: + type: integer + example: + - 28958104 + - 983697220 diff --git a/src/assets/openapi/components/schemas/DirectDebitActivationChargeResponse.yaml b/src/assets/openapi/components/schemas/DirectDebitActivationChargeResponse.yaml new file mode 100644 index 0000000..e955e65 --- /dev/null +++ b/src/assets/openapi/components/schemas/DirectDebitActivationChargeResponse.yaml @@ -0,0 +1,11 @@ +type: object +properties: + status: + type: boolean + example: true + message: + type: string + example: Mandate is queued for retry +required: + - status + - message diff --git a/src/assets/openapi/components/schemas/DirectDebitMandateAuthorizationCustomer.yaml b/src/assets/openapi/components/schemas/DirectDebitMandateAuthorizationCustomer.yaml new file mode 100644 index 0000000..b210ac7 --- /dev/null +++ b/src/assets/openapi/components/schemas/DirectDebitMandateAuthorizationCustomer.yaml @@ -0,0 +1,23 @@ +type: object +properties: + id: + type: integer + example: 28958104 + customer_code: + type: string + example: CUS_5kye9bc41uw15pb + email: + type: string + example: customer@email.com + first_name: + type: string + example: Booker + last_name: + type: string + example: Jones +required: + - id + - customer_code + - email + - first_name + - last_name diff --git a/src/assets/openapi/components/schemas/DirectDebitMandateAuthorizationData.yaml b/src/assets/openapi/components/schemas/DirectDebitMandateAuthorizationData.yaml new file mode 100644 index 0000000..1280ba1 --- /dev/null +++ b/src/assets/openapi/components/schemas/DirectDebitMandateAuthorizationData.yaml @@ -0,0 +1,47 @@ +type: object +properties: + id: + type: integer + example: 112244 + status: + type: string + example: active + mandate_id: + type: integer + example: 1560169 + authorization_id: + type: integer + example: 1069309917 + authorization_code: + type: string + example: AUTH_lEt8QgrSfW + integration_id: + type: integer + example: 463433 + account_number: + type: string + example: '0123456789' + bank_code: + type: string + example: '058' + bank_name: + type: string + example: Guaranty Trust Bank + customer: + $ref: ./DirectDebitMandateAuthorizationCustomer.yaml + authorized_at: + type: string + format: date-time + example: '2025-06-23T12:47:10.632Z' +required: + - id + - status + - mandate_id + - authorization_id + - authorization_code + - integration_id + - account_number + - bank_code + - bank_name + - customer + - authorized_at diff --git a/src/assets/openapi/components/schemas/DirectDebitMandateAuthorizationListResponse.yaml b/src/assets/openapi/components/schemas/DirectDebitMandateAuthorizationListResponse.yaml new file mode 100644 index 0000000..1248934 --- /dev/null +++ b/src/assets/openapi/components/schemas/DirectDebitMandateAuthorizationListResponse.yaml @@ -0,0 +1,19 @@ +type: object +properties: + status: + type: boolean + example: true + message: + type: string + example: Mandate authorizations retrieved successfully + data: + type: array + items: + $ref: ./DirectDebitMandateAuthorizationData.yaml + meta: + $ref: ./DirectDebitMandateAuthorizationMeta.yaml +required: + - status + - message + - data + - meta diff --git a/src/assets/openapi/components/schemas/DirectDebitMandateAuthorizationMeta.yaml b/src/assets/openapi/components/schemas/DirectDebitMandateAuthorizationMeta.yaml new file mode 100644 index 0000000..6e9b3cd --- /dev/null +++ b/src/assets/openapi/components/schemas/DirectDebitMandateAuthorizationMeta.yaml @@ -0,0 +1,18 @@ +type: object +properties: + per_page: + type: integer + example: 10 + next: + type: string + example: MTI1OTc= + count: + type: integer + example: 10 + total: + type: integer + example: 40 +required: + - per_page + - count + - total diff --git a/src/assets/openapi/components/schemas/DisputeAddEvidenceResponse.yaml b/src/assets/openapi/components/schemas/DisputeAddEvidenceResponse.yaml new file mode 100644 index 0000000..42c53e2 --- /dev/null +++ b/src/assets/openapi/components/schemas/DisputeAddEvidenceResponse.yaml @@ -0,0 +1,44 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + customer_email: + type: string + customer_name: + type: string + customer_phone: + type: string + service_details: + type: string + delivery_address: + type: string + delivery_date: + type: string + dispute: + type: integer + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - customer_email + - customer_name + - customer_phone + - service_details + - delivery_address + - delivery_date + - dispute + - id + - createdAt + - updatedAt +required: + - status + - message + - data diff --git a/main/schemas/dispute/Evidence.yaml b/src/assets/openapi/components/schemas/DisputeEvidence.yaml similarity index 81% rename from main/schemas/dispute/Evidence.yaml rename to src/assets/openapi/components/schemas/DisputeEvidence.yaml index 6cc9381..01e9b4f 100644 --- a/main/schemas/dispute/Evidence.yaml +++ b/src/assets/openapi/components/schemas/DisputeEvidence.yaml @@ -7,20 +7,20 @@ required: properties: customer_email: description: Customer email - type: string + type: string customer_name: description: Customer name - type: string + type: string customer_phone: description: Customer mobile number - type: string + type: string service_details: description: Details of service offered - type: string + type: string delivery_address: description: Delivery address - type: string + type: string delivery_date: description: ISO 8601 representation of delivery date (YYYY-MM-DD) type: string - format: date-time \ No newline at end of file + format: date-time diff --git a/src/assets/openapi/components/schemas/DisputeExportResponse.yaml b/src/assets/openapi/components/schemas/DisputeExportResponse.yaml new file mode 100644 index 0000000..839e1c8 --- /dev/null +++ b/src/assets/openapi/components/schemas/DisputeExportResponse.yaml @@ -0,0 +1,20 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + path: + type: string + expiresAt: + type: string + required: + - path + - expiresAt +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/DisputeFetchResponse.yaml b/src/assets/openapi/components/schemas/DisputeFetchResponse.yaml new file mode 100644 index 0000000..87b084a --- /dev/null +++ b/src/assets/openapi/components/schemas/DisputeFetchResponse.yaml @@ -0,0 +1,264 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + refund_amount: + type: integer + currency: + type: string + status: + type: string + resolution: + nullable: true + domain: + type: string + transaction: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + receipt_number: + type: integer + nullable: true + amount: + type: integer + message: + nullable: true + gateway_response: + type: string + paid_at: + type: string + created_at: + type: string + channel: + type: string + currency: + type: string + ip_address: + type: string + metadata: + type: object + properties: + custom_fields: + type: array + items: + $ref: ./MetadataCustomFieldsArray.yaml + required: + - custom_fields + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + fees_split: + type: integer + nullable: true + authorization: + type: object + properties: + receiver_bank_account_number: + nullable: true + receiver_bank: + nullable: true + required: + - receiver_bank_account_number + - receiver_bank + customer: + type: object + properties: + international_format_phone: + nullable: true + required: + - international_format_phone + plan: + type: object + subaccount: + type: object + split: + type: object + order_id: + nullable: true + paidAt: + type: string + createdAt: + type: string + requested_amount: + type: integer + pos_transaction_data: + nullable: true + source: + nullable: true + fees_breakdown: + nullable: true + connect: + nullable: true + required: + - id + - domain + - status + - reference + - amount + - message + - gateway_response + - paid_at + - created_at + - channel + - currency + - ip_address + - metadata + - log + - fees + - fees_split + - authorization + - customer + - plan + - subaccount + - split + - order_id + - paidAt + - createdAt + - requested_amount + - pos_transaction_data + - source + - fees_breakdown + - connect + transaction_reference: + nullable: true + category: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + bin: + type: string + last4: + type: string + dueAt: + nullable: true + resolvedAt: + nullable: true + evidence: + nullable: true + attachments: + nullable: true + note: + nullable: true + history: + type: array + items: + $ref: ./DisputeHistoryArray.yaml + messages: + type: array + items: + $ref: ./DisputeMessagesArray.yaml + createdAt: + type: string + updatedAt: + type: string + required: + - id + - refund_amount + - currency + - status + - resolution + - domain + - transaction + - transaction_reference + - category + - customer + - bin + - last4 + - dueAt + - resolvedAt + - evidence + - attachments + - note + - history + - messages + - createdAt + - updatedAt +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/DisputeHistoryArray.yaml b/src/assets/openapi/components/schemas/DisputeHistoryArray.yaml new file mode 100644 index 0000000..3bfd7df --- /dev/null +++ b/src/assets/openapi/components/schemas/DisputeHistoryArray.yaml @@ -0,0 +1,12 @@ +type: object +properties: + status: + type: string + by: + type: string + createdAt: + type: string +required: + - status + - by + - createdAt diff --git a/src/assets/openapi/components/schemas/DisputeListResponse.yaml b/src/assets/openapi/components/schemas/DisputeListResponse.yaml new file mode 100644 index 0000000..4390cf0 --- /dev/null +++ b/src/assets/openapi/components/schemas/DisputeListResponse.yaml @@ -0,0 +1,35 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./DisputeListResponseArray.yaml + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false +required: + - status + - message + - data + - meta diff --git a/src/assets/openapi/components/schemas/DisputeListResponseArray.yaml b/src/assets/openapi/components/schemas/DisputeListResponseArray.yaml new file mode 100644 index 0000000..8e933b7 --- /dev/null +++ b/src/assets/openapi/components/schemas/DisputeListResponseArray.yaml @@ -0,0 +1,235 @@ +type: object +properties: + id: + type: integer + refund_amount: + type: integer + currency: + type: string + status: + type: string + resolution: + nullable: true + domain: + type: string + transaction: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + amount: + type: integer + message: + nullable: true + gateway_response: + type: string + paid_at: + type: string + created_at: + type: string + channel: + type: string + currency: + type: string + ip_address: + type: string + metadata: + type: object + properties: + custom_fields: + type: array + items: + $ref: ./MetadataCustomFieldsArray.yaml + required: + - custom_fields + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + fees_split: + type: integer + nullable: true + authorization: + type: object + customer: + nullable: true + plan: + type: object + subaccount: + type: object + split: + type: object + order_id: + nullable: true + paidAt: + type: string + createdAt: + type: string + pos_transaction_data: + nullable: true + source: + nullable: true + fees_breakdown: + nullable: true + connect: + nullable: true + required: + - id + - domain + - status + - reference + - amount + - message + - gateway_response + - paid_at + - created_at + - channel + - currency + - ip_address + - metadata + - log + - fees + - fees_split + - authorization + - customer + - plan + - subaccount + - split + - order_id + - paidAt + - createdAt + - pos_transaction_data + - source + - fees_breakdown + - connect + transaction_reference: + nullable: true + category: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + metadata: + type: string + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + bin: + type: string + last4: + type: string + dueAt: + nullable: true + resolvedAt: + nullable: true + evidence: + nullable: true + attachments: + nullable: true + note: + nullable: true + history: + type: array + items: + $ref: ./DisputeHistoryArray.yaml + messages: + type: array + items: + $ref: ./DisputeMessagesArray.yaml + createdAt: + type: string + updatedAt: + type: string +required: + - id + - refund_amount + - currency + - status + - resolution + - domain + - transaction + - transaction_reference + - category + - customer + - bin + - last4 + - dueAt + - resolvedAt + - evidence + - attachments + - note + - history + - messages + - createdAt + - updatedAt diff --git a/src/assets/openapi/components/schemas/DisputeListTransactionResponse.yaml b/src/assets/openapi/components/schemas/DisputeListTransactionResponse.yaml new file mode 100644 index 0000000..14018f6 --- /dev/null +++ b/src/assets/openapi/components/schemas/DisputeListTransactionResponse.yaml @@ -0,0 +1,242 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + history: + type: array + items: + $ref: ./DisputeHistoryArray.yaml + messages: + type: array + items: + $ref: ./DisputeMessagesArray.yaml + currency: + type: string + last4: + type: string + bin: + type: string + transaction_reference: + nullable: true + merchant_transaction_reference: + type: string + refund_amount: + type: integer + status: + type: string + domain: + type: string + resolution: + nullable: true + category: + type: string + note: + nullable: true + attachments: + nullable: true + id: + type: integer + integration: + type: integer + transaction: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + receipt_number: + type: integer + nullable: true + amount: + type: integer + message: + nullable: true + gateway_response: + type: string + paid_at: + type: string + created_at: + type: string + channel: + type: string + currency: + type: string + ip_address: + type: string + metadata: + type: object + properties: + custom_fields: + type: array + items: + $ref: ./MetadataCustomFieldsArray.yaml + required: + - custom_fields + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + fees_split: + type: integer + nullable: true + authorization: + type: object + properties: + receiver_bank_account_number: + nullable: true + receiver_bank: + nullable: true + required: + - receiver_bank_account_number + - receiver_bank + customer: + type: object + properties: + international_format_phone: + nullable: true + required: + - international_format_phone + plan: + type: object + subaccount: + type: object + split: + type: object + order_id: + nullable: true + paidAt: + type: string + createdAt: + type: string + requested_amount: + type: integer + pos_transaction_data: + nullable: true + source: + nullable: true + fees_breakdown: + nullable: true + connect: + type: object + nullable: true + required: + - id + - domain + - status + - reference + - amount + - message + - gateway_response + - paid_at + - created_at + - channel + - currency + - ip_address + - metadata + - log + - fees + - fees_split + - authorization + - customer + - plan + - subaccount + - split + - order_id + - paidAt + - createdAt + - requested_amount + - pos_transaction_data + - source + - fees_breakdown + - connect + created_by: + type: integer + evidence: + nullable: true + resolvedAt: + nullable: true + createdAt: + type: string + updatedAt: + type: string + dueAt: + nullable: true + required: + - history + - messages + - currency + - last4 + - bin + - transaction_reference + - merchant_transaction_reference + - refund_amount + - status + - domain + - resolution + - category + - note + - attachments + - id + - integration + - transaction + - created_by + - evidence + - resolvedAt + - createdAt + - updatedAt + - dueAt +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/DisputeMessagesArray.yaml b/src/assets/openapi/components/schemas/DisputeMessagesArray.yaml new file mode 100644 index 0000000..41b1cdf --- /dev/null +++ b/src/assets/openapi/components/schemas/DisputeMessagesArray.yaml @@ -0,0 +1,12 @@ +type: object +properties: + sender: + type: string + body: + type: string + createdAt: + type: string +required: + - sender + - body + - createdAt diff --git a/src/assets/openapi/components/schemas/DisputeResolve.yaml b/src/assets/openapi/components/schemas/DisputeResolve.yaml new file mode 100644 index 0000000..e18d4a5 --- /dev/null +++ b/src/assets/openapi/components/schemas/DisputeResolve.yaml @@ -0,0 +1,24 @@ +type: object +required: + - resolution + - message + - refund_amount + - uploaded_filename +properties: + resolution: + description: Dispute resolution. Accepted values, merchant-accepted, declined + type: string + message: + description: Reason for resolving + type: string + refund_amount: + description: >- + The amount to refund, in kobo if currency is NGN, pesewas, if currency is + GHS, and cents, if currency is ZAR + type: string + uploaded_filename: + description: Filename of attachment returned via response from the Dispute upload URL + type: string + evidence: + description: Evidence Id for fraud claims + type: integer diff --git a/src/assets/openapi/components/schemas/DisputeResolveResponse.yaml b/src/assets/openapi/components/schemas/DisputeResolveResponse.yaml new file mode 100644 index 0000000..1d7057d --- /dev/null +++ b/src/assets/openapi/components/schemas/DisputeResolveResponse.yaml @@ -0,0 +1,100 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + currency: + type: string + last4: + type: string + bin: + type: string + transaction_reference: + nullable: true + merchant_transaction_reference: + type: string + refund_amount: + type: integer + status: + type: string + domain: + type: string + resolution: + type: string + category: + type: string + note: + nullable: true + attachments: + type: string + id: + type: integer + integration: + type: integer + transaction: + type: integer + created_by: + type: integer + evidence: + type: integer + resolvedAt: + type: string + createdAt: + type: string + updatedAt: + type: string + dueAt: + nullable: true + message: + type: object + properties: + dispute: + type: integer + sender: + type: string + body: + type: string + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - dispute + - sender + - body + - id + - createdAt + - updatedAt + required: + - currency + - last4 + - bin + - transaction_reference + - merchant_transaction_reference + - refund_amount + - status + - domain + - resolution + - category + - note + - attachments + - id + - integration + - transaction + - created_by + - evidence + - resolvedAt + - createdAt + - updatedAt + - dueAt + - message +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/DisputeUpdate.yaml b/src/assets/openapi/components/schemas/DisputeUpdate.yaml new file mode 100644 index 0000000..451816a --- /dev/null +++ b/src/assets/openapi/components/schemas/DisputeUpdate.yaml @@ -0,0 +1,12 @@ +type: object +required: + - refund_amount +properties: + refund_amount: + description: >- + The amount to refund, in kobo if currency is NGN, pesewas, if currency is + GHS, and cents, if currency is ZAR + type: string + uploaded_filename: + description: Filename of attachment returned via response from the Dispute upload URL + type: string diff --git a/src/assets/openapi/components/schemas/DisputeUpdateResponse.yaml b/src/assets/openapi/components/schemas/DisputeUpdateResponse.yaml new file mode 100644 index 0000000..87b084a --- /dev/null +++ b/src/assets/openapi/components/schemas/DisputeUpdateResponse.yaml @@ -0,0 +1,264 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + refund_amount: + type: integer + currency: + type: string + status: + type: string + resolution: + nullable: true + domain: + type: string + transaction: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + receipt_number: + type: integer + nullable: true + amount: + type: integer + message: + nullable: true + gateway_response: + type: string + paid_at: + type: string + created_at: + type: string + channel: + type: string + currency: + type: string + ip_address: + type: string + metadata: + type: object + properties: + custom_fields: + type: array + items: + $ref: ./MetadataCustomFieldsArray.yaml + required: + - custom_fields + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + fees_split: + type: integer + nullable: true + authorization: + type: object + properties: + receiver_bank_account_number: + nullable: true + receiver_bank: + nullable: true + required: + - receiver_bank_account_number + - receiver_bank + customer: + type: object + properties: + international_format_phone: + nullable: true + required: + - international_format_phone + plan: + type: object + subaccount: + type: object + split: + type: object + order_id: + nullable: true + paidAt: + type: string + createdAt: + type: string + requested_amount: + type: integer + pos_transaction_data: + nullable: true + source: + nullable: true + fees_breakdown: + nullable: true + connect: + nullable: true + required: + - id + - domain + - status + - reference + - amount + - message + - gateway_response + - paid_at + - created_at + - channel + - currency + - ip_address + - metadata + - log + - fees + - fees_split + - authorization + - customer + - plan + - subaccount + - split + - order_id + - paidAt + - createdAt + - requested_amount + - pos_transaction_data + - source + - fees_breakdown + - connect + transaction_reference: + nullable: true + category: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + bin: + type: string + last4: + type: string + dueAt: + nullable: true + resolvedAt: + nullable: true + evidence: + nullable: true + attachments: + nullable: true + note: + nullable: true + history: + type: array + items: + $ref: ./DisputeHistoryArray.yaml + messages: + type: array + items: + $ref: ./DisputeMessagesArray.yaml + createdAt: + type: string + updatedAt: + type: string + required: + - id + - refund_amount + - currency + - status + - resolution + - domain + - transaction + - transaction_reference + - category + - customer + - bin + - last4 + - dueAt + - resolvedAt + - evidence + - attachments + - note + - history + - messages + - createdAt + - updatedAt +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/DisputeUploadURLResponse.yaml b/src/assets/openapi/components/schemas/DisputeUploadURLResponse.yaml new file mode 100644 index 0000000..9b6eccd --- /dev/null +++ b/src/assets/openapi/components/schemas/DisputeUploadURLResponse.yaml @@ -0,0 +1,20 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + signedUrl: + type: string + fileName: + type: string + required: + - signedUrl + - fileName +required: + - status + - message + - data diff --git a/main/schemas/channel/EFT.yaml b/src/assets/openapi/components/schemas/EFT.yaml similarity index 68% rename from main/schemas/channel/EFT.yaml rename to src/assets/openapi/components/schemas/EFT.yaml index 520644e..d14244c 100644 --- a/main/schemas/channel/EFT.yaml +++ b/src/assets/openapi/components/schemas/EFT.yaml @@ -1,7 +1,6 @@ type: object +description: Details of the EFT provider properties: provider: description: The EFT provider type: string - enum: - - ozow \ No newline at end of file diff --git a/src/assets/openapi/components/schemas/EftDebitOrderCreateMandateResponse.yaml b/src/assets/openapi/components/schemas/EftDebitOrderCreateMandateResponse.yaml new file mode 100644 index 0000000..3967609 --- /dev/null +++ b/src/assets/openapi/components/schemas/EftDebitOrderCreateMandateResponse.yaml @@ -0,0 +1,80 @@ +type: object +properties: + status: + type: boolean + type: + type: string + code: + type: string + message: + type: string + data: + type: object + properties: + id: + type: integer + mandate_code: + type: string + domain: + type: string + customer_id: + type: integer + customer_email: + type: string + account_bank_name: + type: string + account_bank_code: + type: string + account_holder_name: + type: string + account_number: + type: string + account_type: + type: string + currency: + type: string + amount: + type: integer + entry_class: + type: string + frequency: + type: string + collection_day: + type: integer + contract_type: + type: string + contract_reference: + type: string + status: + type: string + created_at: + type: string + updated_at: + type: string + required: + - id + - mandate_code + - domain + - customer_id + - customer_email + - account_bank_name + - account_bank_code + - account_holder_name + - account_number + - account_type + - currency + - amount + - entry_class + - frequency + - collection_day + - contract_type + - contract_reference + - status + - created_at + - updated_at +required: + - status + - type + - code + - message + - data diff --git a/src/assets/openapi/components/schemas/EftDebitOrderFetchMandateResponse.yaml b/src/assets/openapi/components/schemas/EftDebitOrderFetchMandateResponse.yaml new file mode 100644 index 0000000..3967609 --- /dev/null +++ b/src/assets/openapi/components/schemas/EftDebitOrderFetchMandateResponse.yaml @@ -0,0 +1,80 @@ +type: object +properties: + status: + type: boolean + type: + type: string + code: + type: string + message: + type: string + data: + type: object + properties: + id: + type: integer + mandate_code: + type: string + domain: + type: string + customer_id: + type: integer + customer_email: + type: string + account_bank_name: + type: string + account_bank_code: + type: string + account_holder_name: + type: string + account_number: + type: string + account_type: + type: string + currency: + type: string + amount: + type: integer + entry_class: + type: string + frequency: + type: string + collection_day: + type: integer + contract_type: + type: string + contract_reference: + type: string + status: + type: string + created_at: + type: string + updated_at: + type: string + required: + - id + - mandate_code + - domain + - customer_id + - customer_email + - account_bank_name + - account_bank_code + - account_holder_name + - account_number + - account_type + - currency + - amount + - entry_class + - frequency + - collection_day + - contract_type + - contract_reference + - status + - created_at + - updated_at +required: + - status + - type + - code + - message + - data diff --git a/src/assets/openapi/components/schemas/EftDebitOrderListMandateResponse.yaml b/src/assets/openapi/components/schemas/EftDebitOrderListMandateResponse.yaml new file mode 100644 index 0000000..34456d8 --- /dev/null +++ b/src/assets/openapi/components/schemas/EftDebitOrderListMandateResponse.yaml @@ -0,0 +1,41 @@ +type: object +properties: + status: + type: boolean + type: + type: string + code: + type: string + message: + type: string + data: + type: array + items: + $ref: ./EftDebitOrderListMandateResponseArray.yaml + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false +required: + - status + - type + - code + - message + - data + - meta diff --git a/src/assets/openapi/components/schemas/EftDebitOrderListMandateResponseArray.yaml b/src/assets/openapi/components/schemas/EftDebitOrderListMandateResponseArray.yaml new file mode 100644 index 0000000..696bde6 --- /dev/null +++ b/src/assets/openapi/components/schemas/EftDebitOrderListMandateResponseArray.yaml @@ -0,0 +1,63 @@ +type: object +properties: + id: + type: integer + mandate_code: + type: string + domain: + type: string + customer_id: + type: integer + customer_email: + type: string + account_bank_name: + type: string + account_bank_code: + type: string + account_holder_name: + type: string + account_number: + type: string + account_type: + type: string + currency: + type: string + amount: + type: integer + entry_class: + type: string + frequency: + type: string + collection_day: + type: integer + contract_type: + type: string + contract_reference: + type: string + status: + type: string + created_at: + type: string + updated_at: + type: string +required: + - id + - mandate_code + - domain + - customer_id + - customer_email + - account_bank_name + - account_bank_code + - account_holder_name + - account_number + - account_type + - currency + - amount + - entry_class + - frequency + - collection_day + - contract_type + - contract_reference + - status + - created_at + - updated_at diff --git a/src/assets/openapi/components/schemas/EftDebitOrderLogMandateResponse.yaml b/src/assets/openapi/components/schemas/EftDebitOrderLogMandateResponse.yaml new file mode 100644 index 0000000..eb5f318 --- /dev/null +++ b/src/assets/openapi/components/schemas/EftDebitOrderLogMandateResponse.yaml @@ -0,0 +1,41 @@ +type: object +properties: + status: + type: boolean + type: + type: string + code: + type: string + message: + type: string + data: + type: array + items: + $ref: ./EftDebitOrderLogMandateResponseArray.yaml + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false +required: + - status + - type + - code + - message + - data + - meta diff --git a/src/assets/openapi/components/schemas/EftDebitOrderLogMandateResponseArray.yaml b/src/assets/openapi/components/schemas/EftDebitOrderLogMandateResponseArray.yaml new file mode 100644 index 0000000..fdd044c --- /dev/null +++ b/src/assets/openapi/components/schemas/EftDebitOrderLogMandateResponseArray.yaml @@ -0,0 +1,95 @@ +type: object +properties: + id: + type: integer + action: + type: string + performed_by: + nullable: true + ip_address: + type: string + domain: + type: string + integration: + type: integer + object: + type: object + properties: + id: + type: integer + mandate_code: + type: string + domain: + type: string + customer_id: + type: integer + customer_email: + type: string + account_bank_name: + type: string + account_bank_code: + type: string + account_holder_name: + type: string + account_number: + type: string + account_type: + type: string + currency: + type: string + amount: + type: integer + entry_class: + type: string + frequency: + type: string + collection_day: + type: integer + contract_type: + type: string + contract_reference: + type: string + status: + type: string + created_at: + type: string + updated_at: + type: string + required: + - id + - mandate_code + - domain + - customer_id + - customer_email + - account_bank_name + - account_bank_code + - account_holder_name + - account_number + - account_type + - currency + - amount + - entry_class + - frequency + - collection_day + - contract_type + - contract_reference + - status + - created_at + - updated_at + delta: + nullable: true + created_at: + type: string + updated_at: + type: string +required: + - id + - action + - performed_by + - ip_address + - domain + - integration + - object + - delta + - created_at + - updated_at diff --git a/src/assets/openapi/components/schemas/EftDebitOrderUpdateMandateResponse.yaml b/src/assets/openapi/components/schemas/EftDebitOrderUpdateMandateResponse.yaml new file mode 100644 index 0000000..3967609 --- /dev/null +++ b/src/assets/openapi/components/schemas/EftDebitOrderUpdateMandateResponse.yaml @@ -0,0 +1,80 @@ +type: object +properties: + status: + type: boolean + type: + type: string + code: + type: string + message: + type: string + data: + type: object + properties: + id: + type: integer + mandate_code: + type: string + domain: + type: string + customer_id: + type: integer + customer_email: + type: string + account_bank_name: + type: string + account_bank_code: + type: string + account_holder_name: + type: string + account_number: + type: string + account_type: + type: string + currency: + type: string + amount: + type: integer + entry_class: + type: string + frequency: + type: string + collection_day: + type: integer + contract_type: + type: string + contract_reference: + type: string + status: + type: string + created_at: + type: string + updated_at: + type: string + required: + - id + - mandate_code + - domain + - customer_id + - customer_email + - account_bank_name + - account_bank_code + - account_holder_name + - account_number + - account_type + - currency + - amount + - entry_class + - frequency + - collection_day + - contract_type + - contract_reference + - status + - created_at + - updated_at +required: + - status + - type + - code + - message + - data diff --git a/src/assets/openapi/components/schemas/Error.yaml b/src/assets/openapi/components/schemas/Error.yaml new file mode 100644 index 0000000..67a738d --- /dev/null +++ b/src/assets/openapi/components/schemas/Error.yaml @@ -0,0 +1,23 @@ +type: object +properties: + status: + type: boolean + description: An indicator for the state of the request + message: + type: string + description: A short description of the error + meta: + $ref: ./ErrorMeta.yaml + type: + type: string + description: A tag to indicate the type of the error + code: + type: string + description: The error code + enum: + - validation_error + - processor_error + - api_error + errorCodeMappingNotFound: + type: boolean + description: An indicator for error mapping for the request diff --git a/src/assets/openapi/components/schemas/ErrorMeta.yaml b/src/assets/openapi/components/schemas/ErrorMeta.yaml new file mode 100644 index 0000000..07a0d72 --- /dev/null +++ b/src/assets/openapi/components/schemas/ErrorMeta.yaml @@ -0,0 +1,6 @@ +type: object +description: Extra details to help with a resolution of the error +properties: + nextStep: + type: string + description: A summarised solution for the error diff --git a/src/assets/openapi/components/schemas/ErrorRecordsArray.yaml b/src/assets/openapi/components/schemas/ErrorRecordsArray.yaml new file mode 100644 index 0000000..2382774 --- /dev/null +++ b/src/assets/openapi/components/schemas/ErrorRecordsArray.yaml @@ -0,0 +1,24 @@ +type: object +properties: + type: + type: string + name: + type: string + description: + type: string + account_number: + type: string + bank_code: + type: string + currency: + type: string + email: + type: string +required: + - type + - name + - description + - account_number + - bank_code + - currency + - email diff --git a/src/assets/openapi/components/schemas/FormulaSubaccountsArray.yaml b/src/assets/openapi/components/schemas/FormulaSubaccountsArray.yaml new file mode 100644 index 0000000..f98ee74 --- /dev/null +++ b/src/assets/openapi/components/schemas/FormulaSubaccountsArray.yaml @@ -0,0 +1,24 @@ +type: object +properties: + original_share: + type: number + fees: + type: integer + share: + type: integer + subaccount_code: + type: string + id: + type: integer + name: + type: string + integration: + type: string +required: + - original_share + - fees + - share + - subaccount_code + - id + - name + - integration diff --git a/src/assets/openapi/components/schemas/InitializeAuthorizationCardResponse.yaml b/src/assets/openapi/components/schemas/InitializeAuthorizationCardResponse.yaml new file mode 100644 index 0000000..71c279e --- /dev/null +++ b/src/assets/openapi/components/schemas/InitializeAuthorizationCardResponse.yaml @@ -0,0 +1,23 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + authorizationAccessCode: + type: string + action: + type: string + value: + type: string + required: + - authorizationAccessCode + - action + - value +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/InitializeAuthorizationDirectdebitResponse.yaml b/src/assets/openapi/components/schemas/InitializeAuthorizationDirectdebitResponse.yaml new file mode 100644 index 0000000..89078ad --- /dev/null +++ b/src/assets/openapi/components/schemas/InitializeAuthorizationDirectdebitResponse.yaml @@ -0,0 +1,23 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + redirect_url: + type: string + access_code: + type: string + reference: + type: string + required: + - redirect_url + - access_code + - reference +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/MetadataCustomFieldsArray.yaml b/src/assets/openapi/components/schemas/MetadataCustomFieldsArray.yaml new file mode 100644 index 0000000..54c920d --- /dev/null +++ b/src/assets/openapi/components/schemas/MetadataCustomFieldsArray.yaml @@ -0,0 +1,12 @@ +type: object +properties: + value: + type: string + display_name: + type: string + variable_name: + type: string +required: + - value + - display_name + - variable_name diff --git a/src/assets/openapi/components/schemas/MiscellaneousListBanksResponse.yaml b/src/assets/openapi/components/schemas/MiscellaneousListBanksResponse.yaml new file mode 100644 index 0000000..c5831d4 --- /dev/null +++ b/src/assets/openapi/components/schemas/MiscellaneousListBanksResponse.yaml @@ -0,0 +1,14 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./MiscellaneousListBanksResponseArray.yaml +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/MiscellaneousListBanksResponseArray.yaml b/src/assets/openapi/components/schemas/MiscellaneousListBanksResponseArray.yaml new file mode 100644 index 0000000..b46c052 --- /dev/null +++ b/src/assets/openapi/components/schemas/MiscellaneousListBanksResponseArray.yaml @@ -0,0 +1,53 @@ +type: object +properties: + name: + type: string + slug: + type: string + code: + type: string + longcode: + type: string + gateway: + type: string + nullable: true + pay_with_bank: + type: boolean + supports_transfer: + type: boolean + available_for_direct_debit: + type: boolean + active: + type: boolean + is_deleted: + type: boolean + nullable: true + country: + type: string + currency: + type: string + type: + type: string + id: + type: integer + createdAt: + type: string + updatedAt: + type: string +required: + - name + - slug + - code + - longcode + - gateway + - pay_with_bank + - supports_transfer + - available_for_direct_debit + - active + - is_deleted + - country + - currency + - type + - id + - createdAt + - updatedAt diff --git a/src/assets/openapi/components/schemas/MiscellaneousListCountriesResponse.yaml b/src/assets/openapi/components/schemas/MiscellaneousListCountriesResponse.yaml new file mode 100644 index 0000000..e18942e --- /dev/null +++ b/src/assets/openapi/components/schemas/MiscellaneousListCountriesResponse.yaml @@ -0,0 +1,14 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./MiscellaneousListCountriesResponseArray.yaml +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/MiscellaneousListCountriesResponseArray.yaml b/src/assets/openapi/components/schemas/MiscellaneousListCountriesResponseArray.yaml new file mode 100644 index 0000000..61be36f --- /dev/null +++ b/src/assets/openapi/components/schemas/MiscellaneousListCountriesResponseArray.yaml @@ -0,0 +1,187 @@ +type: object +properties: + id: + type: integer + active_for_dashboard_onboarding: + type: boolean + name: + type: string + iso_code: + type: string + default_currency_code: + type: string + integration_defaults: + type: object + calling_code: + type: string + pilot_mode: + type: boolean + relationships: + type: object + properties: + currency: + type: object + properties: + type: + type: string + data: + type: array + items: + type: string + supported_currencies: + type: object + properties: + NGN: + type: object + properties: + bank: + type: object + properties: + bank_type: + type: string + branch_code: + type: boolean + branch_code_type: + type: string + account_name: + type: boolean + account_verification_required: + type: boolean + account_number_label: + type: string + account_number_pattern: + type: object + properties: + exact_match: + type: boolean + pattern: + type: string + required: + - exact_match + - pattern + documents: + type: array + items: {} + show_account_number_tooltip: + type: boolean + required: + - bank_type + - branch_code + - branch_code_type + - account_name + - account_verification_required + - account_number_label + - account_number_pattern + - documents + - show_account_number_tooltip + required: + - bank + USD: + type: object + properties: + bank: + type: object + properties: + bank_type: + type: string + required_fields: + type: array + items: + type: string + branch_code: + type: boolean + branch_code_type: + type: string + account_name: + type: boolean + account_verification_required: + type: boolean + account_number_label: + type: string + account_number_pattern: + type: object + properties: + exact_match: + type: boolean + pattern: + type: string + required: + - exact_match + - pattern + documents: + type: array + items: {} + notices: + type: array + items: + type: string + required: + - bank_type + - required_fields + - branch_code + - branch_code_type + - account_name + - account_verification_required + - account_number_label + - account_number_pattern + - documents + - notices + required: + - bank + required: + - NGN + - USD + required: + - type + - data + - supported_currencies + integration_feature: + type: object + properties: + type: + type: string + data: + type: array + items: {} + required: + - type + - data + integration_type: + type: object + properties: + type: + type: string + data: + type: array + items: + type: string + required: + - type + - data + payment_method: + type: object + properties: + type: + type: string + data: + type: array + items: + type: string + required: + - type + - data + required: + - currency + - integration_feature + - integration_type + - payment_method +required: + - id + - active_for_dashboard_onboarding + - name + - iso_code + - default_currency_code + - integration_defaults + - calling_code + - pilot_mode + - relationships diff --git a/src/assets/openapi/components/schemas/MiscellaneousListProvidersResponse.yaml b/src/assets/openapi/components/schemas/MiscellaneousListProvidersResponse.yaml new file mode 100644 index 0000000..40e9f9f --- /dev/null +++ b/src/assets/openapi/components/schemas/MiscellaneousListProvidersResponse.yaml @@ -0,0 +1,14 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./MiscellaneousListProvidersResponseArray.yaml +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/MiscellaneousListProvidersResponseArray.yaml b/src/assets/openapi/components/schemas/MiscellaneousListProvidersResponseArray.yaml new file mode 100644 index 0000000..5fe5323 --- /dev/null +++ b/src/assets/openapi/components/schemas/MiscellaneousListProvidersResponseArray.yaml @@ -0,0 +1,51 @@ +type: object +properties: + id: + type: integer + name: + type: string + slug: + type: string + code: + type: string + longcode: + type: string + gateway: + nullable: true + pay_with_bank: + type: boolean + supports_transfer: + type: boolean + available_for_direct_debit: + type: boolean + active: + type: boolean + country: + type: string + currency: + type: string + type: + type: string + is_deleted: + type: boolean + createdAt: + type: string + updatedAt: + type: string +required: + - id + - name + - slug + - code + - longcode + - gateway + - pay_with_bank + - supports_transfer + - available_for_direct_debit + - active + - country + - currency + - type + - is_deleted + - createdAt + - updatedAt diff --git a/src/assets/openapi/components/schemas/MiscellaneousListStatesResponse.yaml b/src/assets/openapi/components/schemas/MiscellaneousListStatesResponse.yaml new file mode 100644 index 0000000..303ba52 --- /dev/null +++ b/src/assets/openapi/components/schemas/MiscellaneousListStatesResponse.yaml @@ -0,0 +1,14 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./MiscellaneousListStatesResponseArray.yaml +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/MiscellaneousListStatesResponseArray.yaml b/src/assets/openapi/components/schemas/MiscellaneousListStatesResponseArray.yaml new file mode 100644 index 0000000..b8e9aeb --- /dev/null +++ b/src/assets/openapi/components/schemas/MiscellaneousListStatesResponseArray.yaml @@ -0,0 +1,12 @@ +type: object +properties: + name: + type: string + slug: + type: string + abbreviation: + type: string +required: + - name + - slug + - abbreviation diff --git a/src/assets/openapi/components/schemas/MobileMoney.yaml b/src/assets/openapi/components/schemas/MobileMoney.yaml new file mode 100644 index 0000000..9731c5b --- /dev/null +++ b/src/assets/openapi/components/schemas/MobileMoney.yaml @@ -0,0 +1,11 @@ +type: object +description: Details of the mobile service provider +properties: + phone: + description: Customer's phone number + type: string + provider: + description: >- + The telco provider of customer's phone number. This can be fetched from + the List Bank endpoint + type: string diff --git a/src/assets/openapi/components/schemas/OrderCancelResponse.yaml b/src/assets/openapi/components/schemas/OrderCancelResponse.yaml new file mode 100644 index 0000000..87b039a --- /dev/null +++ b/src/assets/openapi/components/schemas/OrderCancelResponse.yaml @@ -0,0 +1,9 @@ +type: object +properties: + status: + type: boolean + message: + type: string +required: + - status + - message diff --git a/src/assets/openapi/components/schemas/OrderCreate.yaml b/src/assets/openapi/components/schemas/OrderCreate.yaml new file mode 100644 index 0000000..b062789 --- /dev/null +++ b/src/assets/openapi/components/schemas/OrderCreate.yaml @@ -0,0 +1,39 @@ +type: object +required: + - email + - first_name + - last_name + - phone + - currency + - items + - shipping +properties: + email: + description: The email of the customer placing the order + type: string + first_name: + description: The customer's first name + type: string + last_name: + description: The customer's last name + type: string + phone: + description: The customer's mobile number + type: string + currency: + description: Currency in which amount is set. Allowed values are NGN, GHS, ZAR or USD + type: string + items: + type: array + items: + $ref: ./OrderItems.yaml + shipping: + $ref: ./OrderShipping.yaml + is_gift: + description: | + A flag to indicate if the order is for someone else + type: boolean + pay_for_me: + description: | + A flag to indicate if the someone else should pay for the order + type: boolean diff --git a/src/assets/openapi/components/schemas/OrderCreateResponse.yaml b/src/assets/openapi/components/schemas/OrderCreateResponse.yaml new file mode 100644 index 0000000..894e948 --- /dev/null +++ b/src/assets/openapi/components/schemas/OrderCreateResponse.yaml @@ -0,0 +1,143 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + discounts: + type: array + items: {} + currency: + type: string + shipping_address: + nullable: true + integration: + type: integer + domain: + type: string + email: + type: string + customer: + type: integer + amount: + type: integer + pay_for_me: + type: boolean + shipping: + type: object + properties: + customer: + type: integer + integration: + type: integer + domain: + type: string + fees: + type: integer + delivery_note: + nullable: true + street_line: + type: string + city: + type: string + state: + type: string + country: + type: string + is_shipped: + type: boolean + delivery_tracking_link: + nullable: true + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - customer + - integration + - domain + - fees + - delivery_note + - street_line + - city + - state + - country + - is_shipped + - delivery_tracking_link + - id + - createdAt + - updatedAt + nullable: true + shipping_fees: + type: integer + shipping_method: + type: object + properties: + region: + type: string + fee: + type: integer + currency: + type: string + required: + - region + - fee + - currency + metadata: + type: object + order_code: + type: string + status: + type: string + refunded: + type: boolean + is_viewed: + type: boolean + expiration_date: + nullable: true + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + items: + type: array + items: {} + pay_for_me_code: + type: string + discount_amount: + type: integer + required: + - discounts + - currency + - shipping_address + - integration + - domain + - email + - customer + - amount + - pay_for_me + - shipping + - shipping_fees + - metadata + - order_code + - status + - refunded + - is_viewed + - expiration_date + - id + - createdAt + - updatedAt + - items + - pay_for_me_code + - discount_amount +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/OrderDeliverResponse.yaml b/src/assets/openapi/components/schemas/OrderDeliverResponse.yaml new file mode 100644 index 0000000..87b039a --- /dev/null +++ b/src/assets/openapi/components/schemas/OrderDeliverResponse.yaml @@ -0,0 +1,9 @@ +type: object +properties: + status: + type: boolean + message: + type: string +required: + - status + - message diff --git a/src/assets/openapi/components/schemas/OrderFetchProductResponse.yaml b/src/assets/openapi/components/schemas/OrderFetchProductResponse.yaml new file mode 100644 index 0000000..c20a2b3 --- /dev/null +++ b/src/assets/openapi/components/schemas/OrderFetchProductResponse.yaml @@ -0,0 +1,38 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./OrderFetchProductResponseArray.yaml + meta: + type: object + properties: + quantity_sold: + type: integer + revenue: + type: integer + total: + type: integer + skipped: + type: integer + perPage: + type: integer + pageCount: + type: integer + required: + - quantity_sold + - revenue + - total + - skipped + - perPage + - pageCount + additionalProperties: false +required: + - status + - message + - data + - meta diff --git a/src/assets/openapi/components/schemas/OrderFetchProductResponseArray.yaml b/src/assets/openapi/components/schemas/OrderFetchProductResponseArray.yaml new file mode 100644 index 0000000..c17af9c --- /dev/null +++ b/src/assets/openapi/components/schemas/OrderFetchProductResponseArray.yaml @@ -0,0 +1,102 @@ +type: object +properties: + order_id: + type: integer + transaction: + type: integer + order_code: + type: string + customer: + type: integer + first_name: + type: string + last_name: + type: string + customer_name: + type: string + phone: + type: string + email: + type: string + product_code: + type: string + product_id: + type: integer + product_name: + type: string + price: + type: integer + quantity_sold: + type: integer + currency: + type: string + quantity: + type: integer + variant_id: + nullable: true + variant_price: + nullable: true + variant_code: + nullable: true + amount: + type: integer + shipping_method: + nullable: true + status: + type: string + shipping_address: + nullable: true + refunded: + type: boolean + shipping: + nullable: true + paid_at: + type: string + created_at: + type: string + is_shipped: + type: boolean + is_viewed: + type: integer + delivery_note: + nullable: true + shipping_fee: + nullable: true + amount_paid: + type: integer + storefront_slug: + type: string +required: + - order_id + - transaction + - order_code + - customer + - first_name + - last_name + - customer_name + - phone + - email + - product_code + - product_id + - product_name + - price + - quantity_sold + - currency + - quantity + - variant_id + - variant_price + - variant_code + - amount + - shipping_method + - status + - shipping_address + - refunded + - shipping + - paid_at + - created_at + - is_shipped + - is_viewed + - delivery_note + - shipping_fee + - amount_paid + - storefront_slug diff --git a/src/assets/openapi/components/schemas/OrderFetchResponse.yaml b/src/assets/openapi/components/schemas/OrderFetchResponse.yaml new file mode 100644 index 0000000..dde2897 --- /dev/null +++ b/src/assets/openapi/components/schemas/OrderFetchResponse.yaml @@ -0,0 +1,165 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + discounts: + type: array + items: {} + order_code: + type: string + domain: + type: string + currency: + type: string + amount: + type: integer + email: + type: string + status: + type: string + refunded: + type: boolean + paid_at: + type: string + shipping_address: + nullable: true + metadata: + type: object + shipping_fees: + type: integer + shipping_method: + nullable: true + is_viewed: + type: boolean + expiration_date: + type: string + pay_for_me: + type: boolean + id: + type: integer + integration: + type: integer + page: + nullable: true + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + shipping: + nullable: true + createdAt: + type: string + updatedAt: + type: string + transaction: + type: integer + is_gift: + type: boolean + payer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + fully_refunded: + type: boolean + refunded_amount: + type: integer + items: + type: array + items: + $ref: ./OrderItemsArray.yaml + discount_amount: + nullable: true + required: + - discounts + - order_code + - domain + - currency + - amount + - email + - status + - refunded + - paid_at + - shipping_address + - metadata + - shipping_fees + - shipping_method + - is_viewed + - expiration_date + - pay_for_me + - id + - integration + - page + - customer + - shipping + - createdAt + - updatedAt + - transaction + - is_gift + - payer + - fully_refunded + - refunded_amount + - items + - discount_amount +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/OrderItems.yaml b/src/assets/openapi/components/schemas/OrderItems.yaml new file mode 100644 index 0000000..e165ebe --- /dev/null +++ b/src/assets/openapi/components/schemas/OrderItems.yaml @@ -0,0 +1,20 @@ +type: object +description: The collection of items that make up the order +required: + - item + - type + - quantity + - amount +properties: + item: + description: The product ID of the item + type: string + type: + description: The type of the item. `product` is currently the acceptable value + type: string + quantity: + description: The number of items to get + type: integer + amount: + description: The cost of the item + type: integer diff --git a/src/assets/openapi/components/schemas/OrderItemsArray.yaml b/src/assets/openapi/components/schemas/OrderItemsArray.yaml new file mode 100644 index 0000000..bf4a719 --- /dev/null +++ b/src/assets/openapi/components/schemas/OrderItemsArray.yaml @@ -0,0 +1,66 @@ +type: object +properties: + order_item_id: + type: integer + orderId: + type: integer + type: + type: string + item: + type: integer + current_total_items_price: + type: integer + files: + type: string + order: + type: integer + amount: + type: integer + quantity: + type: integer + createdAt: + type: string + name: + type: string + product_level_type: + type: string + product_id: + type: integer + product_success_message: + nullable: true + product_redirect_url: + nullable: true + IFNULL(p1.expires_in, p2.expires_in): + nullable: true + product_quantity_sold: + type: integer + product_notification_emails: + nullable: true + IFNULL(p1.metadata, p2.metadata): + type: string + storefront_redirect_url: + nullable: true + storefront_success_message: + nullable: true +required: + - order_item_id + - orderId + - type + - item + - current_total_items_price + - files + - order + - amount + - quantity + - createdAt + - name + - product_level_type + - product_id + - product_success_message + - product_redirect_url + - IFNULL(p1.expires_in, p2.expires_in) + - product_quantity_sold + - product_notification_emails + - IFNULL(p1.metadata, p2.metadata) + - storefront_redirect_url + - storefront_success_message diff --git a/src/assets/openapi/components/schemas/OrderListResponse.yaml b/src/assets/openapi/components/schemas/OrderListResponse.yaml new file mode 100644 index 0000000..a536bd1 --- /dev/null +++ b/src/assets/openapi/components/schemas/OrderListResponse.yaml @@ -0,0 +1,38 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./OrderListResponseArray.yaml + meta: + type: object + properties: + total: + type: integer + revenue: + type: object + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - revenue + - skipped + - perPage + - page + - pageCount + additionalProperties: false +required: + - status + - message + - data + - meta diff --git a/src/assets/openapi/components/schemas/OrderListResponseArray.yaml b/src/assets/openapi/components/schemas/OrderListResponseArray.yaml new file mode 100644 index 0000000..1f80bb1 --- /dev/null +++ b/src/assets/openapi/components/schemas/OrderListResponseArray.yaml @@ -0,0 +1,83 @@ +type: object +properties: + id: + type: integer + order_code: + type: string + integration: + type: integer + domain: + type: string + currency: + type: string + amount: + type: integer + transaction: + type: integer + page: + nullable: true + customer: + type: integer + customer_name: + type: string + status: + type: string + shipping_address: + nullable: true + metadata: + type: string + created_at: + type: string + updated_at: + type: string + email: + type: string + paid_at: + type: string + shipping: + nullable: true + shipping_fees: + type: integer + refunded: + type: boolean + is_viewed: + type: boolean + refunded_amount: + nullable: true + discount_amount: + nullable: true + discounts: + nullable: true + items: + type: array + items: + $ref: ./OrderItemsArray.yaml + fully_refunded: + type: boolean +required: + - id + - order_code + - integration + - domain + - currency + - amount + - transaction + - page + - customer + - customer_name + - status + - shipping_address + - metadata + - created_at + - updated_at + - email + - paid_at + - shipping + - shipping_fees + - refunded + - is_viewed + - refunded_amount + - discount_amount + - discounts + - items + - fully_refunded diff --git a/src/assets/openapi/components/schemas/OrderRefundResponse.yaml b/src/assets/openapi/components/schemas/OrderRefundResponse.yaml new file mode 100644 index 0000000..87b039a --- /dev/null +++ b/src/assets/openapi/components/schemas/OrderRefundResponse.yaml @@ -0,0 +1,9 @@ +type: object +properties: + status: + type: boolean + message: + type: string +required: + - status + - message diff --git a/src/assets/openapi/components/schemas/OrderShipping.yaml b/src/assets/openapi/components/schemas/OrderShipping.yaml new file mode 100644 index 0000000..a438862 --- /dev/null +++ b/src/assets/openapi/components/schemas/OrderShipping.yaml @@ -0,0 +1,27 @@ +type: object +description: The shipping details of the order +required: + - street_line + - city + - state + - country + - shipping_fee +properties: + street_line: + description: The address of for the delivery + type: string + city: + description: The city of the delivery address + type: string + state: + description: The state of the delivery address + type: string + country: + description: The country of the delivery address + type: string + shipping_fee: + description: The cost of delivery + type: integer + delivery_note: + description: Extra details to be aware of for the delivery + type: string diff --git a/src/assets/openapi/components/schemas/OrderValidateResponse.yaml b/src/assets/openapi/components/schemas/OrderValidateResponse.yaml new file mode 100644 index 0000000..69f550f --- /dev/null +++ b/src/assets/openapi/components/schemas/OrderValidateResponse.yaml @@ -0,0 +1,130 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + order_code: + type: string + domain: + type: string + currency: + type: string + amount: + type: integer + email: + type: string + status: + type: string + refunded: + type: boolean + paid_at: + nullable: true + shipping_address: + nullable: true + metadata: + nullable: true + shipping_fees: + type: integer + shipping_method: + nullable: true + is_viewed: + type: boolean + expiration_date: + type: string + pay_for_me: + type: boolean + id: + type: integer + integration: + type: object + properties: + key: + type: string + name: + type: string + logo: + type: string + allowed_currencies: + type: array + items: {} + required: + - key + - name + - logo + - allowed_currencies + transaction: + nullable: true + page: + nullable: true + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + shipping: + nullable: true + createdAt: + type: string + updatedAt: + type: string + payer: + nullable: true + required: + - order_code + - domain + - currency + - amount + - email + - status + - refunded + - paid_at + - shipping_address + - metadata + - shipping_fees + - shipping_method + - is_viewed + - expiration_date + - pay_for_me + - id + - integration + - transaction + - page + - customer + - shipping + - createdAt + - updatedAt + - payer +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/PageAddProductsResponse.yaml b/src/assets/openapi/components/schemas/PageAddProductsResponse.yaml new file mode 100644 index 0000000..91b1858 --- /dev/null +++ b/src/assets/openapi/components/schemas/PageAddProductsResponse.yaml @@ -0,0 +1,85 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + integration: + type: integer + plan: + nullable: true + domain: + type: string + name: + type: string + description: + nullable: true + amount: + nullable: true + currency: + type: string + slug: + type: string + custom_fields: + nullable: true + type: + type: string + redirect_url: + nullable: true + success_message: + nullable: true + collect_phone: + type: boolean + active: + type: boolean + published: + type: boolean + migrate: + type: boolean + notification_email: + nullable: true + metadata: + nullable: true + split_code: + nullable: true + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + products: + type: array + items: + $ref: ./PageProductsArray.yaml + required: + - integration + - plan + - domain + - name + - description + - amount + - currency + - slug + - custom_fields + - type + - redirect_url + - success_message + - collect_phone + - active + - published + - migrate + - notification_email + - metadata + - split_code + - id + - createdAt + - updatedAt + - products +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/PageCheckSlugAvailabilityResponse.yaml b/src/assets/openapi/components/schemas/PageCheckSlugAvailabilityResponse.yaml new file mode 100644 index 0000000..87b039a --- /dev/null +++ b/src/assets/openapi/components/schemas/PageCheckSlugAvailabilityResponse.yaml @@ -0,0 +1,9 @@ +type: object +properties: + status: + type: boolean + message: + type: string +required: + - status + - message diff --git a/src/assets/openapi/components/schemas/PageCreate.yaml b/src/assets/openapi/components/schemas/PageCreate.yaml new file mode 100644 index 0000000..b21cbb6 --- /dev/null +++ b/src/assets/openapi/components/schemas/PageCreate.yaml @@ -0,0 +1,79 @@ +type: object +required: + - name +properties: + name: + description: Name of page + type: string + description: + description: The description of the page + type: string + amount: + description: >- + Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, + and cents, if currency is ZAR + type: integer + currency: + description: The transaction currency. Defaults to your integration currency. + type: string + enum: + - NGN + - GHS + - ZAR + - KES + - USD + slug: + description: >- + URL slug you would like to be associated with this page. Page will be + accessible at `https://paystack.com/pay/[slug]` + type: string + type: + description: > + The type of payment page to create. Defaults to `payment` if no type is + specified. + type: string + enum: + - payment + - subscription + - product + - plan + plan: + description: >- + The ID of the plan to subscribe customers on this payment page to when + `type` is set to `subscription`. + type: string + fixed_amount: + description: >- + Specifies whether to collect a fixed amount on the payment page. If true, + `amount` must be passed. + type: boolean + split_code: + description: The split code of the transaction split. e.g. `SPL_98WF13Eb3w` + type: string + metadata: + description: JSON object of custom data + type: object + redirect_url: + description: > + If you would like Paystack to redirect to a URL upon successful payment, + specify the URL here. + type: string + success_message: + description: > + A success message to display to the customer after a successful + transaction + type: string + notification_email: + description: > + An email address that will receive transaction notifications for this + payment page + type: string + collect_phone: + description: | + Specify whether to collect phone numbers on the payment page + type: boolean + custom_fields: + description: If you would like to accept custom fields, specify them here. + type: array + items: + type: object diff --git a/src/assets/openapi/components/schemas/PageCreateResponse.yaml b/src/assets/openapi/components/schemas/PageCreateResponse.yaml new file mode 100644 index 0000000..cfbaeaf --- /dev/null +++ b/src/assets/openapi/components/schemas/PageCreateResponse.yaml @@ -0,0 +1,53 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + name: + type: string + integration: + type: integer + domain: + type: string + slug: + type: string + currency: + type: string + type: + type: string + collect_phone: + type: boolean + active: + type: boolean + published: + type: boolean + migrate: + type: boolean + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - name + - integration + - domain + - slug + - currency + - type + - collect_phone + - active + - published + - migrate + - id + - createdAt + - updatedAt +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/PageFetchResponse.yaml b/src/assets/openapi/components/schemas/PageFetchResponse.yaml new file mode 100644 index 0000000..fdaacf1 --- /dev/null +++ b/src/assets/openapi/components/schemas/PageFetchResponse.yaml @@ -0,0 +1,78 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + integration: + type: integer + domain: + type: string + name: + type: string + description: + nullable: true + amount: + type: integer + nullable: true + currency: + type: string + slug: + type: string + custom_fields: + nullable: true + type: + type: string + redirect_url: + nullable: true + success_message: + nullable: true + collect_phone: + type: boolean + active: + type: boolean + published: + type: boolean + migrate: + type: boolean + notification_email: + nullable: true + metadata: + nullable: true + split_code: + nullable: true + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - integration + - domain + - name + - description + - amount + - currency + - slug + - custom_fields + - type + - redirect_url + - success_message + - collect_phone + - active + - published + - migrate + - notification_email + - metadata + - split_code + - id + - createdAt + - updatedAt +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/PageListResponse.yaml b/src/assets/openapi/components/schemas/PageListResponse.yaml new file mode 100644 index 0000000..85b4477 --- /dev/null +++ b/src/assets/openapi/components/schemas/PageListResponse.yaml @@ -0,0 +1,35 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./PageListResponseArray.yaml + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false +required: + - status + - message + - data + - meta diff --git a/src/assets/openapi/components/schemas/PageListResponseArray.yaml b/src/assets/openapi/components/schemas/PageListResponseArray.yaml new file mode 100644 index 0000000..7a0f11b --- /dev/null +++ b/src/assets/openapi/components/schemas/PageListResponseArray.yaml @@ -0,0 +1,76 @@ +type: object +properties: + integration: + type: integer + plan: + nullable: true + domain: + type: string + name: + type: string + description: + type: string + nullable: true + amount: + type: integer + nullable: true + currency: + type: string + slug: + type: string + custom_fields: + type: array + nullable: true + items: {} + type: + type: string + redirect_url: + type: string + nullable: true + success_message: + type: string + nullable: true + collect_phone: + type: boolean + active: + type: boolean + published: + type: boolean + migrate: + type: boolean + notification_email: + nullable: true + metadata: + type: object + nullable: true + split_code: + nullable: true + id: + type: integer + createdAt: + type: string + updatedAt: + type: string +required: + - integration + - plan + - domain + - name + - description + - amount + - currency + - slug + - custom_fields + - type + - redirect_url + - success_message + - collect_phone + - active + - published + - migrate + - notification_email + - metadata + - split_code + - id + - createdAt + - updatedAt diff --git a/main/schemas/page/Product.yaml b/src/assets/openapi/components/schemas/PageProduct.yaml similarity index 77% rename from main/schemas/page/Product.yaml rename to src/assets/openapi/components/schemas/PageProduct.yaml index 492124f..89160a2 100644 --- a/main/schemas/page/Product.yaml +++ b/src/assets/openapi/components/schemas/PageProduct.yaml @@ -4,6 +4,6 @@ required: properties: product: description: IDs of all products to add to a page - type: array + type: array items: - type: string \ No newline at end of file + type: string diff --git a/src/assets/openapi/components/schemas/PageProductsArray.yaml b/src/assets/openapi/components/schemas/PageProductsArray.yaml new file mode 100644 index 0000000..4cfd694 --- /dev/null +++ b/src/assets/openapi/components/schemas/PageProductsArray.yaml @@ -0,0 +1,48 @@ +type: object +properties: + product_id: + type: integer + name: + type: string + description: + type: string + product_code: + type: string + page: + type: integer + price: + type: integer + currency: + type: string + quantity: + type: integer + type: + type: string + features: + nullable: true + is_shippable: + type: integer + domain: + type: string + integration: + type: integer + active: + type: integer + in_stock: + type: integer +required: + - product_id + - name + - description + - product_code + - page + - price + - currency + - quantity + - type + - features + - is_shippable + - domain + - integration + - active + - in_stock diff --git a/main/schemas/page/Update.yaml b/src/assets/openapi/components/schemas/PageUpdate.yaml similarity index 59% rename from main/schemas/page/Update.yaml rename to src/assets/openapi/components/schemas/PageUpdate.yaml index d007535..7818df9 100644 --- a/main/schemas/page/Update.yaml +++ b/src/assets/openapi/components/schemas/PageUpdate.yaml @@ -2,15 +2,15 @@ type: object properties: name: description: Name of page - type: string + type: string description: description: The description of the page type: string amount: - description: |- - Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR + description: >- + Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, + and cents, if currency is ZAR type: integer active: - description: |- - Set to false to deactivate page url - type: boolean \ No newline at end of file + description: Set to false to deactivate page url + type: boolean diff --git a/src/assets/openapi/components/schemas/PageUpdateResponse.yaml b/src/assets/openapi/components/schemas/PageUpdateResponse.yaml new file mode 100644 index 0000000..1141138 --- /dev/null +++ b/src/assets/openapi/components/schemas/PageUpdateResponse.yaml @@ -0,0 +1,80 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + domain: + type: string + name: + type: string + description: + nullable: true + amount: + nullable: true + currency: + type: string + slug: + type: string + custom_fields: + nullable: true + type: + type: string + redirect_url: + nullable: true + success_message: + nullable: true + collect_phone: + type: boolean + active: + type: boolean + published: + type: boolean + migrate: + type: boolean + notification_email: + nullable: true + metadata: + nullable: true + split_code: + nullable: true + id: + type: integer + integration: + type: integer + plan: + nullable: true + createdAt: + type: string + updatedAt: + type: string + required: + - domain + - name + - description + - amount + - currency + - slug + - custom_fields + - type + - redirect_url + - success_message + - collect_phone + - active + - published + - migrate + - notification_email + - metadata + - split_code + - id + - integration + - plan + - createdAt + - updatedAt +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/PaymentChannelCreateBankChargeResponse.yaml b/src/assets/openapi/components/schemas/PaymentChannelCreateBankChargeResponse.yaml new file mode 100644 index 0000000..36b20e6 --- /dev/null +++ b/src/assets/openapi/components/schemas/PaymentChannelCreateBankChargeResponse.yaml @@ -0,0 +1,23 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + reference: + type: string + status: + type: string + display_text: + type: string + required: + - reference + - status + - display_text +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/PaymentChannelCreateDirectDebitChargeResponse.yaml b/src/assets/openapi/components/schemas/PaymentChannelCreateDirectDebitChargeResponse.yaml new file mode 100644 index 0000000..921ff9a --- /dev/null +++ b/src/assets/openapi/components/schemas/PaymentChannelCreateDirectDebitChargeResponse.yaml @@ -0,0 +1,241 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + receipt_number: + type: string + amount: + type: integer + message: + type: string + gateway_response: + type: string + paid_at: + type: string + created_at: + type: string + channel: + type: string + currency: + type: string + ip_address: + type: string + metadata: + type: object + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + nullable: true + fees_split: + type: integer + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + bin: + nullable: true + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + nullable: true + receiver_bank_account_number: + type: string + nullable: true + receiver_bank: + type: string + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + - receiver_bank_account_number + - receiver_bank + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + metadata: + type: object + nullable: true + risk_action: + type: string + international_format_phone: + type: string + nullable: true + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + type: string + nullable: true + split: + type: object + order_id: + type: string + nullable: true + paidAt: + type: string + createdAt: + type: string + requested_amount: + type: integer + pos_transaction_data: + nullable: true + source: + type: string + nullable: true + fees_breakdown: + type: string + nullable: true + connect: + type: string + nullable: true + transaction_date: + type: string + plan_object: + type: object + subaccount: + type: object + required: + - id + - domain + - status + - reference + - receipt_number + - amount + - message + - gateway_response + - paid_at + - created_at + - channel + - currency + - ip_address + - metadata + - log + - fees + - fees_split + - authorization + - customer + - plan + - split + - order_id + - paidAt + - createdAt + - requested_amount + - pos_transaction_data + - source + - fees_breakdown + - connect + - transaction_date + - plan_object + - subaccount +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/PaymentChannelCreateEFTChargeResponse.yaml b/src/assets/openapi/components/schemas/PaymentChannelCreateEFTChargeResponse.yaml new file mode 100644 index 0000000..87eb810 --- /dev/null +++ b/src/assets/openapi/components/schemas/PaymentChannelCreateEFTChargeResponse.yaml @@ -0,0 +1,23 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + reference: + type: string + status: + type: string + url: + type: string + required: + - reference + - status + - url +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/PaymentChannelCreateMobileMoneyChargeResponse.yaml b/src/assets/openapi/components/schemas/PaymentChannelCreateMobileMoneyChargeResponse.yaml new file mode 100644 index 0000000..fc4ee7a --- /dev/null +++ b/src/assets/openapi/components/schemas/PaymentChannelCreateMobileMoneyChargeResponse.yaml @@ -0,0 +1,239 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + receipt_number: + type: string + amount: + type: integer + message: + nullable: true + gateway_response: + type: string + paid_at: + type: string + created_at: + type: string + channel: + type: string + currency: + type: string + ip_address: + type: string + metadata: + type: object + properties: + custom_fields: + type: array + items: + $ref: ./MetadataCustomFieldsArray.yaml + required: + - custom_fields + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + fees_split: + type: integer + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + nullable: true + account_name: + nullable: true + mobile_money_number: + type: string + receiver_bank_account_number: + nullable: true + receiver_bank: + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + - mobile_money_number + - receiver_bank_account_number + - receiver_bank + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + nullable: true + split: + type: object + order_id: + nullable: true + paidAt: + type: string + createdAt: + type: string + requested_amount: + type: integer + pos_transaction_data: + nullable: true + source: + nullable: true + fees_breakdown: + nullable: true + connect: + type: object + nullable: true + transaction_date: + type: string + plan_object: + type: object + subaccount: + type: object + required: + - id + - domain + - status + - reference + - receipt_number + - amount + - message + - gateway_response + - paid_at + - created_at + - channel + - currency + - ip_address + - metadata + - log + - fees + - fees_split + - authorization + - customer + - plan + - split + - order_id + - paidAt + - createdAt + - requested_amount + - pos_transaction_data + - source + - fees_breakdown + - connect + - transaction_date + - plan_object + - subaccount +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/PaymentChannelCreatePayWithTransferChargeResponse.yaml b/src/assets/openapi/components/schemas/PaymentChannelCreatePayWithTransferChargeResponse.yaml new file mode 100644 index 0000000..75f6daa --- /dev/null +++ b/src/assets/openapi/components/schemas/PaymentChannelCreatePayWithTransferChargeResponse.yaml @@ -0,0 +1,46 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + status: + type: string + display_text: + type: string + reference: + type: string + account_name: + type: string + account_number: + type: string + bank: + type: object + properties: + slug: + type: string + name: + type: string + id: + type: integer + required: + - slug + - name + - id + account_expires_at: + type: string + required: + - status + - display_text + - reference + - account_name + - account_number + - bank + - account_expires_at +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/PaymentChannelCreateQRChargeResponse.yaml b/src/assets/openapi/components/schemas/PaymentChannelCreateQRChargeResponse.yaml new file mode 100644 index 0000000..5a9d3bd --- /dev/null +++ b/src/assets/openapi/components/schemas/PaymentChannelCreateQRChargeResponse.yaml @@ -0,0 +1,26 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + reference: + type: string + status: + type: string + qr_code: + type: string + url: + type: string + message: + type: string + required: + - reference + - status +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/PaymentChannelCreateUSSDChargeResponse.yaml b/src/assets/openapi/components/schemas/PaymentChannelCreateUSSDChargeResponse.yaml new file mode 100644 index 0000000..04d8716 --- /dev/null +++ b/src/assets/openapi/components/schemas/PaymentChannelCreateUSSDChargeResponse.yaml @@ -0,0 +1,26 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + reference: + type: string + status: + type: string + display_text: + type: string + ussd_code: + type: string + required: + - reference + - status + - display_text + - ussd_code +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/PaymentRequestArchiveResponse.yaml b/src/assets/openapi/components/schemas/PaymentRequestArchiveResponse.yaml new file mode 100644 index 0000000..87b039a --- /dev/null +++ b/src/assets/openapi/components/schemas/PaymentRequestArchiveResponse.yaml @@ -0,0 +1,9 @@ +type: object +properties: + status: + type: boolean + message: + type: string +required: + - status + - message diff --git a/main/schemas/payment-request/Create.yaml b/src/assets/openapi/components/schemas/PaymentRequestCreate.yaml similarity index 65% rename from main/schemas/payment-request/Create.yaml rename to src/assets/openapi/components/schemas/PaymentRequestCreate.yaml index 62296e7..13fbcc0 100644 --- a/main/schemas/payment-request/Create.yaml +++ b/src/assets/openapi/components/schemas/PaymentRequestCreate.yaml @@ -4,61 +4,67 @@ required: properties: customer: description: Customer id or code - type: string + type: string amount: - description: |- - Payment request amount. Only useful if line items and tax values are ignored. + description: >- + Payment request amount. Only useful if line items and tax values are + ignored. + The endpoint will throw a friendly warning if neither is available. type: integer currency: - description: |- - Specify the currency of the invoice. Allowed values are NGN, GHS, ZAR and USD. Defaults to NGN + description: >- + Specify the currency of the invoice. Allowed values are NGN, GHS, ZAR and + USD. Defaults to NGN type: string due_date: - description: |- - ISO 8601 representation of request due date + description: ISO 8601 representation of request due date type: string format: date-time description: description: A short description of the payment request type: string line_items: - description: |- - Array of line items + description: Array of line items type: array items: type: object tax: - description: |- - Array of taxes + description: Array of taxes type: array items: type: object send_notification: - description: |- - Indicates whether Paystack sends an email notification to customer. Defaults to true + description: >- + Indicates whether Paystack sends an email notification to customer. + Defaults to true type: boolean items: type: object draft: - description: |- - Indicate if request should be saved as draft. Defaults to false and overrides send_notification + description: >- + Indicate if request should be saved as draft. Defaults to false and + overrides send_notification type: boolean items: type: object has_invoice: - description: |- - Set to true to create a draft invoice (adds an auto incrementing invoice number if none is provided) + description: >- + Set to true to create a draft invoice (adds an auto incrementing invoice + number if none is provided) + even if there are no line_items or tax passed type: boolean items: type: object invoice_number: - description: |- - Numeric value of invoice. Invoice will start from 1 and auto increment from there. This field is to help - override whatever value Paystack decides. Auto increment for subsequent invoices continue from this point. + description: >- + Numeric value of invoice. Invoice will start from 1 and auto increment + from there. This field is to help + + override whatever value Paystack decides. Auto increment for subsequent + invoices continue from this point. type: integer split_code: - description: |- - The split code of the transaction split. - type: string \ No newline at end of file + description: The split code of the transaction split. + type: string diff --git a/src/assets/openapi/components/schemas/PaymentRequestCreateResponse.yaml b/src/assets/openapi/components/schemas/PaymentRequestCreateResponse.yaml new file mode 100644 index 0000000..2015cc5 --- /dev/null +++ b/src/assets/openapi/components/schemas/PaymentRequestCreateResponse.yaml @@ -0,0 +1,85 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + integration: + type: integer + domain: + type: string + amount: + type: integer + currency: + type: string + due_date: + type: string + nullable: true + has_invoice: + type: boolean + invoice_number: + type: integer + nullable: true + description: + type: string + nullable: true + line_items: + type: array + items: {} + tax: + type: array + items: {} + request_code: + type: string + status: + type: string + paid: + type: boolean + metadata: + type: object + nullable: true + notifications: + type: array + items: {} + offline_reference: + type: string + customer: + type: integer + created_at: + type: string + discount: + nullable: true + split_code: + type: string + nullable: true + required: + - id + - integration + - domain + - amount + - currency + - due_date + - has_invoice + - invoice_number + - description + - line_items + - tax + - request_code + - status + - paid + - metadata + - notifications + - offline_reference + - customer + - created_at + - discount + - split_code +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/PaymentRequestFinalizeResponse.yaml b/src/assets/openapi/components/schemas/PaymentRequestFinalizeResponse.yaml new file mode 100644 index 0000000..ea78801 --- /dev/null +++ b/src/assets/openapi/components/schemas/PaymentRequestFinalizeResponse.yaml @@ -0,0 +1,135 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + integration: + type: integer + domain: + type: string + amount: + type: integer + currency: + type: string + due_date: + type: string + nullable: true + has_invoice: + type: boolean + invoice_number: + type: integer + nullable: true + description: + type: string + nullable: true + pdf_url: + nullable: true + line_items: + type: array + items: + $ref: ./PaymentRequestLineItemsArray.yaml + tax: + type: array + items: + $ref: ./PaymentRequestTaxArray.yaml + request_code: + type: string + status: + type: string + paid: + type: boolean + paid_at: + nullable: true + metadata: + nullable: true + notifications: + type: array + items: {} + offline_reference: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + properties: + calling_code: + type: string + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + created_at: + type: string + discount: + type: object + properties: + type: + type: string + amount: + type: integer + required: + - type + - amount + nullable: true + split_code: + nullable: true + pending_amount: + type: integer + required: + - id + - integration + - domain + - amount + - currency + - due_date + - has_invoice + - invoice_number + - description + - pdf_url + - line_items + - tax + - request_code + - status + - paid + - paid_at + - metadata + - notifications + - offline_reference + - customer + - created_at + - discount + - split_code + - pending_amount +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/PaymentRequestLineItemsArray.yaml b/src/assets/openapi/components/schemas/PaymentRequestLineItemsArray.yaml new file mode 100644 index 0000000..e6e8ebe --- /dev/null +++ b/src/assets/openapi/components/schemas/PaymentRequestLineItemsArray.yaml @@ -0,0 +1,12 @@ +type: object +properties: + name: + type: string + amount: + type: integer + quantity: + type: integer +required: + - name + - amount + - quantity diff --git a/src/assets/openapi/components/schemas/PaymentRequestListResponse.yaml b/src/assets/openapi/components/schemas/PaymentRequestListResponse.yaml new file mode 100644 index 0000000..0e7b723 --- /dev/null +++ b/src/assets/openapi/components/schemas/PaymentRequestListResponse.yaml @@ -0,0 +1,37 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./PaymentRequestListResponseArray.yaml + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + anyOf: + - type: integer + - type: string + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false +required: + - status + - message + - data + - meta diff --git a/src/assets/openapi/components/schemas/PaymentRequestListResponseArray.yaml b/src/assets/openapi/components/schemas/PaymentRequestListResponseArray.yaml new file mode 100644 index 0000000..4595044 --- /dev/null +++ b/src/assets/openapi/components/schemas/PaymentRequestListResponseArray.yaml @@ -0,0 +1,111 @@ +type: object +properties: + id: + type: integer + integration: + type: integer + domain: + type: string + amount: + type: integer + currency: + type: string + due_date: + type: string + nullable: true + has_invoice: + type: boolean + invoice_number: + type: integer + nullable: true + description: + type: string + nullable: true + pdf_url: + type: string + nullable: true + line_items: + type: array + items: + $ref: ./PaymentRequestLineItemsArray.yaml + tax: + type: array + items: + $ref: ./PaymentRequestTaxArray.yaml + request_code: + type: string + status: + type: string + paid: + type: boolean + paid_at: + nullable: true + metadata: + nullable: true + notifications: + type: array + items: {} + offline_reference: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + created_at: + type: string + discount: + nullable: true + split_code: + type: string + nullable: true +required: + - id + - integration + - domain + - amount + - currency + - due_date + - has_invoice + - invoice_number + - description + - pdf_url + - line_items + - tax + - request_code + - status + - paid + - paid_at + - metadata + - notifications + - offline_reference + - customer + - created_at + - discount + - split_code diff --git a/src/assets/openapi/components/schemas/PaymentRequestNotificationsArray.yaml b/src/assets/openapi/components/schemas/PaymentRequestNotificationsArray.yaml new file mode 100644 index 0000000..540c1ab --- /dev/null +++ b/src/assets/openapi/components/schemas/PaymentRequestNotificationsArray.yaml @@ -0,0 +1,9 @@ +type: object +properties: + sent_at: + type: string + channel: + type: string +required: + - sent_at + - channel diff --git a/src/assets/openapi/components/schemas/PaymentRequestPendingArray.yaml b/src/assets/openapi/components/schemas/PaymentRequestPendingArray.yaml new file mode 100644 index 0000000..abd9c5d --- /dev/null +++ b/src/assets/openapi/components/schemas/PaymentRequestPendingArray.yaml @@ -0,0 +1,9 @@ +type: object +properties: + currency: + type: string + amount: + type: integer +required: + - currency + - amount diff --git a/src/assets/openapi/components/schemas/PaymentRequestSendNotificationResponse.yaml b/src/assets/openapi/components/schemas/PaymentRequestSendNotificationResponse.yaml new file mode 100644 index 0000000..87b039a --- /dev/null +++ b/src/assets/openapi/components/schemas/PaymentRequestSendNotificationResponse.yaml @@ -0,0 +1,9 @@ +type: object +properties: + status: + type: boolean + message: + type: string +required: + - status + - message diff --git a/src/assets/openapi/components/schemas/PaymentRequestSuccessfulArray.yaml b/src/assets/openapi/components/schemas/PaymentRequestSuccessfulArray.yaml new file mode 100644 index 0000000..abd9c5d --- /dev/null +++ b/src/assets/openapi/components/schemas/PaymentRequestSuccessfulArray.yaml @@ -0,0 +1,9 @@ +type: object +properties: + currency: + type: string + amount: + type: integer +required: + - currency + - amount diff --git a/src/assets/openapi/components/schemas/PaymentRequestTaxArray.yaml b/src/assets/openapi/components/schemas/PaymentRequestTaxArray.yaml new file mode 100644 index 0000000..ce26f32 --- /dev/null +++ b/src/assets/openapi/components/schemas/PaymentRequestTaxArray.yaml @@ -0,0 +1,9 @@ +type: object +properties: + name: + type: string + amount: + type: integer +required: + - name + - amount diff --git a/src/assets/openapi/components/schemas/PaymentRequestTotalArray.yaml b/src/assets/openapi/components/schemas/PaymentRequestTotalArray.yaml new file mode 100644 index 0000000..abd9c5d --- /dev/null +++ b/src/assets/openapi/components/schemas/PaymentRequestTotalArray.yaml @@ -0,0 +1,9 @@ +type: object +properties: + currency: + type: string + amount: + type: integer +required: + - currency + - amount diff --git a/src/assets/openapi/components/schemas/PaymentRequestTotalResponse.yaml b/src/assets/openapi/components/schemas/PaymentRequestTotalResponse.yaml new file mode 100644 index 0000000..c7387dc --- /dev/null +++ b/src/assets/openapi/components/schemas/PaymentRequestTotalResponse.yaml @@ -0,0 +1,29 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + pending: + type: array + items: + $ref: ./PaymentRequestPendingArray.yaml + successful: + type: array + items: + $ref: ./PaymentRequestSuccessfulArray.yaml + total: + type: array + items: + $ref: ./PaymentRequestTotalArray.yaml + required: + - pending + - successful + - total +required: + - status + - message + - data diff --git a/main/schemas/payment-request/Update.yaml b/src/assets/openapi/components/schemas/PaymentRequestUpdate.yaml similarity index 64% rename from main/schemas/payment-request/Update.yaml rename to src/assets/openapi/components/schemas/PaymentRequestUpdate.yaml index efb8977..86aa0c7 100644 --- a/main/schemas/payment-request/Update.yaml +++ b/src/assets/openapi/components/schemas/PaymentRequestUpdate.yaml @@ -2,61 +2,67 @@ type: object properties: customer: description: Customer id or code - type: string + type: string amount: - description: |- - Payment request amount. Only useful if line items and tax values are ignored. + description: >- + Payment request amount. Only useful if line items and tax values are + ignored. + The endpoint will throw a friendly warning if neither is available. type: integer currency: - description: |- - Specify the currency of the invoice. Allowed values are NGN, GHS, ZAR and USD. Defaults to NGN + description: >- + Specify the currency of the invoice. Allowed values are NGN, GHS, ZAR and + USD. Defaults to NGN type: string due_date: - description: |- - ISO 8601 representation of request due date + description: ISO 8601 representation of request due date type: string format: date-time description: description: A short description of the payment request type: string line_items: - description: |- - Array of line items + description: Array of line items type: array items: type: object tax: - description: |- - Array of taxes + description: Array of taxes type: array items: type: object send_notification: - description: |- - Indicates whether Paystack sends an email notification to customer. Defaults to true + description: >- + Indicates whether Paystack sends an email notification to customer. + Defaults to true type: boolean items: type: object draft: - description: |- - Indicate if request should be saved as draft. Defaults to false and overrides send_notification + description: >- + Indicate if request should be saved as draft. Defaults to false and + overrides send_notification type: boolean items: type: object has_invoice: - description: |- - Set to true to create a draft invoice (adds an auto incrementing invoice number if none is provided) + description: >- + Set to true to create a draft invoice (adds an auto incrementing invoice + number if none is provided) + even if there are no line_items or tax passed type: boolean items: type: object invoice_number: - description: |- - Numeric value of invoice. Invoice will start from 1 and auto increment from there. This field is to help - override whatever value Paystack decides. Auto increment for subsequent invoices continue from this point. + description: >- + Numeric value of invoice. Invoice will start from 1 and auto increment + from there. This field is to help + + override whatever value Paystack decides. Auto increment for subsequent + invoices continue from this point. type: integer split_code: - description: |- - The split code of the transaction split. - type: string \ No newline at end of file + description: The split code of the transaction split. + type: string diff --git a/src/assets/openapi/components/schemas/PaymentRequestUpdateResponse.yaml b/src/assets/openapi/components/schemas/PaymentRequestUpdateResponse.yaml new file mode 100644 index 0000000..a1eefb7 --- /dev/null +++ b/src/assets/openapi/components/schemas/PaymentRequestUpdateResponse.yaml @@ -0,0 +1,122 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + integration: + type: integer + domain: + type: string + amount: + type: integer + currency: + type: string + due_date: + type: string + nullable: true + has_invoice: + type: boolean + invoice_number: + type: integer + nullable: true + description: + nullable: true + pdf_url: + type: string + nullable: true + line_items: + type: array + items: {} + tax: + type: array + items: {} + request_code: + type: string + status: + type: string + paid: + type: boolean + paid_at: + nullable: true + metadata: + nullable: true + notifications: + type: array + items: + $ref: ./PaymentRequestNotificationsArray.yaml + offline_reference: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + properties: + calling_code: + type: string + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + created_at: + type: string + discount: + nullable: true + split_code: + nullable: true + required: + - id + - integration + - domain + - amount + - currency + - due_date + - has_invoice + - invoice_number + - description + - pdf_url + - line_items + - tax + - request_code + - status + - paid + - paid_at + - metadata + - notifications + - offline_reference + - customer + - created_at + - discount + - split_code +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/PaymentRequestVerifyResponse.yaml b/src/assets/openapi/components/schemas/PaymentRequestVerifyResponse.yaml new file mode 100644 index 0000000..549be83 --- /dev/null +++ b/src/assets/openapi/components/schemas/PaymentRequestVerifyResponse.yaml @@ -0,0 +1,141 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + integration: + type: object + properties: + key: + type: string + name: + type: string + logo: + type: string + allowed_currencies: + type: array + items: + type: string + required: + - key + - name + - logo + - allowed_currencies + domain: + type: string + amount: + type: integer + currency: + type: string + due_date: + type: string + nullable: true + has_invoice: + type: boolean + invoice_number: + type: integer + nullable: true + description: + nullable: true + pdf_url: + type: string + nullable: true + line_items: + type: array + items: {} + tax: + type: array + items: {} + request_code: + type: string + status: + type: string + paid: + type: boolean + paid_at: + nullable: true + metadata: + nullable: true + notifications: + type: array + items: + $ref: ./PaymentRequestNotificationsArray.yaml + offline_reference: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + properties: + calling_code: + type: string + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + created_at: + type: string + discount: + nullable: true + split_code: + nullable: true + pending_amount: + type: integer + required: + - id + - integration + - domain + - amount + - currency + - due_date + - has_invoice + - invoice_number + - description + - pdf_url + - line_items + - tax + - request_code + - status + - paid + - paid_at + - metadata + - notifications + - offline_reference + - customer + - created_at + - discount + - split_code + - pending_amount +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/PaymentRequestViewResponse.yaml b/src/assets/openapi/components/schemas/PaymentRequestViewResponse.yaml new file mode 100644 index 0000000..826b394 --- /dev/null +++ b/src/assets/openapi/components/schemas/PaymentRequestViewResponse.yaml @@ -0,0 +1,168 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + transactions: + type: array + items: {} + domain: + type: string + request_code: + type: string + description: + nullable: true + line_items: + type: array + items: {} + tax: + type: array + items: {} + amount: + type: integer + discount: + nullable: true + currency: + type: string + due_date: + type: string + nullable: true + status: + type: string + paid: + type: boolean + paid_at: + nullable: true + metadata: + nullable: true + has_invoice: + type: boolean + invoice_number: + type: integer + nullable: true + offline_reference: + type: string + pdf_url: + type: string + nullable: true + notifications: + type: array + items: + $ref: ./PaymentRequestNotificationsArray.yaml + archived: + type: boolean + source: + type: string + payment_method: + nullable: true + note: + nullable: true + amount_paid: + nullable: true + split_code: + nullable: true + id: + type: integer + integration: + type: integer + customer: + type: object + properties: + transactions: + type: array + items: {} + subscriptions: + type: array + items: {} + authorizations: + type: array + items: {} + first_name: + type: string + last_name: + type: string + email: + type: string + phone: + type: string + metadata: + type: object + properties: + calling_code: + type: string + domain: + type: string + customer_code: + type: string + risk_action: + type: string + id: + type: integer + integration: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - transactions + - subscriptions + - authorizations + - first_name + - last_name + - email + - phone + - metadata + - domain + - customer_code + - risk_action + - id + - integration + - createdAt + - updatedAt + createdAt: + type: string + updatedAt: + type: string + pending_amount: + type: integer + required: + - transactions + - domain + - request_code + - description + - line_items + - tax + - amount + - discount + - currency + - due_date + - status + - paid + - paid_at + - metadata + - has_invoice + - invoice_number + - offline_reference + - pdf_url + - notifications + - archived + - source + - payment_method + - note + - amount_paid + - split_code + - id + - integration + - customer + - createdAt + - updatedAt + - pending_amount +required: + - status + - message + - data diff --git a/main/schemas/integration/PaymentSession.yaml b/src/assets/openapi/components/schemas/PaymentSession.yaml similarity index 78% rename from main/schemas/integration/PaymentSession.yaml rename to src/assets/openapi/components/schemas/PaymentSession.yaml index 81c2b46..ae57d41 100644 --- a/main/schemas/integration/PaymentSession.yaml +++ b/src/assets/openapi/components/schemas/PaymentSession.yaml @@ -4,4 +4,5 @@ required: properties: timeout: description: Time in seconds before a transaction becomes invalid - type: string \ No newline at end of file + type: string + example: '30' diff --git a/main/schemas/plan/Create.yaml b/src/assets/openapi/components/schemas/PlanCreate.yaml similarity index 67% rename from main/schemas/plan/Create.yaml rename to src/assets/openapi/components/schemas/PlanCreate.yaml index cdafa4a..7462a80 100644 --- a/main/schemas/plan/Create.yaml +++ b/src/assets/openapi/components/schemas/PlanCreate.yaml @@ -6,20 +6,24 @@ required: properties: name: description: Name of plan - type: string - example: My monthly membership + type: string amount: - description: Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR + description: >- + Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, + and cents, if currency is ZAR type: integer - example: 20000 interval: - description: Interval in words. Valid intervals are daily, weekly, monthly,biannually, annually + description: Payment interval type: string - example: monthly + enum: + - daily + - weekly + - monthly + - biannually + - annually description: description: A description for this plan type: string - example: Monthly membership payment plan send_invoices: description: Set to false if you don't want invoices to be sent to your customers type: boolean @@ -29,10 +33,12 @@ properties: currency: description: Currency in which amount is set. Allowed values are NGN, GHS, ZAR or USD type: string - example: NGN invoice_limit: description: |- Number of invoices to raise during subscription to this plan. Can be overridden by specifying an invoice_limit while subscribing. type: integer - example: 0 \ No newline at end of file +example: + name: Basic + amount: 150000 + interval: monthly \ No newline at end of file diff --git a/src/assets/openapi/components/schemas/PlanCreateResponse.yaml b/src/assets/openapi/components/schemas/PlanCreateResponse.yaml new file mode 100644 index 0000000..9a81de8 --- /dev/null +++ b/src/assets/openapi/components/schemas/PlanCreateResponse.yaml @@ -0,0 +1,62 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + currency: + type: string + name: + type: string + amount: + type: integer + interval: + type: string + integration: + type: integer + domain: + type: string + plan_code: + type: string + invoice_limit: + type: integer + send_invoices: + type: boolean + send_sms: + type: boolean + hosted_page: + type: boolean + migrate: + type: boolean + is_archived: + type: boolean + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - currency + - name + - amount + - interval + - integration + - domain + - plan_code + - invoice_limit + - send_invoices + - send_sms + - hosted_page + - migrate + - is_archived + - id + - createdAt + - updatedAt +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/PlanFetchResponse.yaml b/src/assets/openapi/components/schemas/PlanFetchResponse.yaml new file mode 100644 index 0000000..404e6de --- /dev/null +++ b/src/assets/openapi/components/schemas/PlanFetchResponse.yaml @@ -0,0 +1,102 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + subscriptions: + type: array + items: {} + pages: + type: array + items: {} + domain: + type: string + name: + type: string + plan_code: + type: string + description: + nullable: true + amount: + type: integer + interval: + type: string + invoice_limit: + type: integer + send_invoices: + type: boolean + send_sms: + type: boolean + hosted_page: + type: boolean + hosted_page_url: + nullable: true + hosted_page_summary: + nullable: true + currency: + type: string + migrate: + type: boolean + is_deleted: + type: boolean + is_archived: + type: boolean + id: + type: integer + integration: + type: integer + createdAt: + type: string + updatedAt: + type: string + pages_count: + type: integer + subscribers_count: + type: integer + subscriptions_count: + type: integer + active_subscriptions_count: + type: integer + nullable: true + total_revenue: + type: integer + subscribers: + type: array + items: {} + required: + - subscriptions + - pages + - domain + - name + - plan_code + - description + - amount + - interval + - invoice_limit + - send_invoices + - send_sms + - hosted_page + - hosted_page_url + - hosted_page_summary + - currency + - migrate + - is_deleted + - is_archived + - id + - integration + - createdAt + - updatedAt + - pages_count + - subscribers_count + - subscriptions_count + - active_subscriptions_count + - total_revenue + - subscribers +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/PlanListResponse.yaml b/src/assets/openapi/components/schemas/PlanListResponse.yaml new file mode 100644 index 0000000..fda3450 --- /dev/null +++ b/src/assets/openapi/components/schemas/PlanListResponse.yaml @@ -0,0 +1,35 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./PlanListResponseArray.yaml + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false +required: + - status + - message + - data + - meta diff --git a/src/assets/openapi/components/schemas/PlanListResponseArray.yaml b/src/assets/openapi/components/schemas/PlanListResponseArray.yaml new file mode 100644 index 0000000..a1a6bbd --- /dev/null +++ b/src/assets/openapi/components/schemas/PlanListResponseArray.yaml @@ -0,0 +1,80 @@ +type: object +properties: + subscriptions: + type: array + items: {} + pages: + type: array + items: {} + domain: + type: string + name: + type: string + plan_code: + type: string + description: + nullable: true + amount: + type: integer + interval: + type: string + invoice_limit: + type: integer + send_invoices: + type: boolean + send_sms: + type: boolean + hosted_page: + type: boolean + hosted_page_url: + nullable: true + hosted_page_summary: + nullable: true + currency: + type: string + migrate: + type: boolean + is_deleted: + type: boolean + is_archived: + type: boolean + id: + type: integer + integration: + type: integer + createdAt: + type: string + updatedAt: + type: string + total_subscriptions: + type: integer + active_subscriptions: + type: integer + total_subscriptions_revenue: + type: integer +required: + - subscriptions + - pages + - domain + - name + - plan_code + - description + - amount + - interval + - invoice_limit + - send_invoices + - send_sms + - hosted_page + - hosted_page_url + - hosted_page_summary + - currency + - migrate + - is_deleted + - is_archived + - id + - integration + - createdAt + - updatedAt + - total_subscriptions + - active_subscriptions + - total_subscriptions_revenue diff --git a/main/schemas/plan/Update.yaml b/src/assets/openapi/components/schemas/PlanUpdate.yaml similarity index 69% rename from main/schemas/plan/Update.yaml rename to src/assets/openapi/components/schemas/PlanUpdate.yaml index 2d008fe..e9ef084 100644 --- a/main/schemas/plan/Update.yaml +++ b/src/assets/openapi/components/schemas/PlanUpdate.yaml @@ -2,16 +2,24 @@ type: object properties: name: description: Name of plan - type: string + type: string amount: - description: Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR + description: >- + Amount should be in kobo if currency is NGN, pesewas, if currency is GHS, + and cents, if currency is ZAR type: integer interval: - description: Interval in words. Valid intervals are daily, weekly, monthly,biannually, annually + description: Payment interval type: string + enum: + - daily + - weekly + - monthly + - biannually + - annually description: description: A description for this plan - type: string + type: boolean send_invoices: description: Set to false if you don't want invoices to be sent to your customers type: boolean @@ -25,4 +33,6 @@ properties: description: |- Number of invoices to raise during subscription to this plan. Can be overridden by specifying an invoice_limit while subscribing. - type: integer \ No newline at end of file + type: integer +example: + name: "Starter" \ No newline at end of file diff --git a/src/assets/openapi/components/schemas/PlanUpdateResponse.yaml b/src/assets/openapi/components/schemas/PlanUpdateResponse.yaml new file mode 100644 index 0000000..87b039a --- /dev/null +++ b/src/assets/openapi/components/schemas/PlanUpdateResponse.yaml @@ -0,0 +1,9 @@ +type: object +properties: + status: + type: boolean + message: + type: string +required: + - status + - message diff --git a/src/assets/openapi/components/schemas/PreAuthorizationCaptureResponse.yaml b/src/assets/openapi/components/schemas/PreAuthorizationCaptureResponse.yaml new file mode 100644 index 0000000..b782aa8 --- /dev/null +++ b/src/assets/openapi/components/schemas/PreAuthorizationCaptureResponse.yaml @@ -0,0 +1,219 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + amount: + type: integer + status: + type: string + gateway_response: + type: string + transaction: + type: object + properties: + currency: + type: string + transaction_date: + type: string + status: + type: string + reference: + type: string + domain: + type: string + metadata: + type: integer + gateway_response: + type: string + message: + type: string + nullable: true + channel: + type: string + fees: + type: integer + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + type: string + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + id: + type: integer + split: + type: object + properties: + id: + type: integer + name: + type: string + split_code: + type: string + formula: + type: object + properties: + type: + type: string + bearer_type: + type: string + bearer_subaccount: + type: integer + subaccounts: + type: array + items: + $ref: ./FormulaSubaccountsArray.yaml + integration: + type: integer + required: + - type + - bearer_type + - bearer_subaccount + - subaccounts + - integration + shares: + type: object + properties: + paystack: + type: integer + subaccounts: + type: array + items: + $ref: ./ShareSubaccountsArray.yaml + integration: + type: number + original_share: + type: integer + fees: + type: number + required: + - paystack + - subaccounts + - integration + - original_share + - fees + required: + - id + - name + - split_code + - formula + - shares + required: + - currency + - transaction_date + - status + - reference + - domain + - metadata + - gateway_response + - message + - channel + - fees + - authorization + - customer + - id + amount_released: + type: integer + split_code: + type: string + nullable: true + split: + type: object + properties: + type: + type: string + bearer_type: + type: string + subaccounts: + type: array + items: + $ref: ./SplitSubaccountsArray.yaml + required: + - type + - bearer_type + - subaccounts + nullable: true + required: + - amount + - status + - gateway_response + - transaction + - split_code + - split +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/PreAuthorizationInitializeResponse.yaml b/src/assets/openapi/components/schemas/PreAuthorizationInitializeResponse.yaml new file mode 100644 index 0000000..3be8761 --- /dev/null +++ b/src/assets/openapi/components/schemas/PreAuthorizationInitializeResponse.yaml @@ -0,0 +1,23 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + authorization_url: + type: string + access_code: + type: string + reference: + type: string + required: + - authorization_url + - access_code + - reference +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/PreAuthorizationListResponse.yaml b/src/assets/openapi/components/schemas/PreAuthorizationListResponse.yaml new file mode 100644 index 0000000..055d8da --- /dev/null +++ b/src/assets/openapi/components/schemas/PreAuthorizationListResponse.yaml @@ -0,0 +1,35 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./PreAuthorizationListResponseArray.yaml + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false +required: + - status + - message + - data + - meta diff --git a/src/assets/openapi/components/schemas/PreAuthorizationListResponseArray.yaml b/src/assets/openapi/components/schemas/PreAuthorizationListResponseArray.yaml new file mode 100644 index 0000000..b68fee1 --- /dev/null +++ b/src/assets/openapi/components/schemas/PreAuthorizationListResponseArray.yaml @@ -0,0 +1,70 @@ +type: object +properties: + domain: + type: string + status: + type: string + reference: + type: string + amount: + type: integer + created_at: + type: string + transaction_id: + type: string + nullable: true + captured_at: + type: string + nullable: true + released_at: + type: string + nullable: true + currency: + type: string + fees: + type: integer + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + id: + type: integer +required: + - domain + - status + - reference + - amount + - created_at + - transaction_id + - captured_at + - released_at + - currency + - fees + - id diff --git a/src/assets/openapi/components/schemas/PreAuthorizationReleaseResponse.yaml b/src/assets/openapi/components/schemas/PreAuthorizationReleaseResponse.yaml new file mode 100644 index 0000000..de81de6 --- /dev/null +++ b/src/assets/openapi/components/schemas/PreAuthorizationReleaseResponse.yaml @@ -0,0 +1,20 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + status: + type: string + reference: + type: string + required: + - status + - reference +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/PreAuthorizationReserveWithAuthCodeResponse.yaml b/src/assets/openapi/components/schemas/PreAuthorizationReserveWithAuthCodeResponse.yaml new file mode 100644 index 0000000..92f4217 --- /dev/null +++ b/src/assets/openapi/components/schemas/PreAuthorizationReserveWithAuthCodeResponse.yaml @@ -0,0 +1,151 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + amount: + type: integer + message: + type: string + created_at: + type: string + released_at: + type: string + nullable: true + authorized_at: + type: string + nullable: true + expiry_date: + type: string + nullable: true + currency: + type: string + metadata: + type: object + nullable: true + fees: + type: integer + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + type: string + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + merchant_id: + type: integer + merchant_name: + type: string + expire_action: + type: string + split_code: + type: string + nullable: true + split: + type: object + nullable: true + required: + - id + - domain + - status + - reference + - amount + - message + - created_at + - released_at + - authorized_at + - expiry_date + - currency + - metadata + - fees + - authorization + - customer + - merchant_id + - merchant_name + - expire_action + - split + - split_code +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/PreAuthorizationReserveWithSelfCheckoutResponse.yaml b/src/assets/openapi/components/schemas/PreAuthorizationReserveWithSelfCheckoutResponse.yaml new file mode 100644 index 0000000..ef4c36f --- /dev/null +++ b/src/assets/openapi/components/schemas/PreAuthorizationReserveWithSelfCheckoutResponse.yaml @@ -0,0 +1,23 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + reference: + type: string + status: + type: string + message: + type: string + required: + - reference + - status + - message +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/PreAuthorizationVerifyResponse.yaml b/src/assets/openapi/components/schemas/PreAuthorizationVerifyResponse.yaml new file mode 100644 index 0000000..1ca4a89 --- /dev/null +++ b/src/assets/openapi/components/schemas/PreAuthorizationVerifyResponse.yaml @@ -0,0 +1,37 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + amount: + type: integer + message: + type: string + currency: + type: string + redirecturl: + type: string + required: + - id + - domain + - status + - reference + - amount + - message + - currency +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/PreAuthorizationViewResponse.yaml b/src/assets/openapi/components/schemas/PreAuthorizationViewResponse.yaml new file mode 100644 index 0000000..267f87e --- /dev/null +++ b/src/assets/openapi/components/schemas/PreAuthorizationViewResponse.yaml @@ -0,0 +1,110 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + amount: + type: integer + message: + type: string + created_at: + type: string + released_at: + type: string + nullable: true + authorized_at: + type: string + nullable: true + expiry_date: + type: string + nullable: true + currency: + type: string + nullable: true + metadata: + type: string + nullable: true + fees: + type: integer + authorization: + type: object + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + merchant_id: + type: integer + merchant_name: + type: string + expire_action: + type: string + split_code: + type: string + nullable: true + split: + type: object + nullable: true + required: + - id + - domain + - status + - reference + - amount + - message + - created_at + - released_at + - authorized_at + - expiry_date + - currency + - metadata + - fees + - authorization + - customer + - merchant_id + - merchant_name + - expire_action + - split + - split_code +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/ProductCreate.yaml b/src/assets/openapi/components/schemas/ProductCreate.yaml new file mode 100644 index 0000000..e4d3343 --- /dev/null +++ b/src/assets/openapi/components/schemas/ProductCreate.yaml @@ -0,0 +1,36 @@ +type: object +required: + - name + - description + - price + - currency +properties: + name: + description: Name of product + type: string + description: + description: The description of the product + type: string + price: + description: | + Price should be in kobo if currency is NGN, pesewas, if currency is GHS, + and cents, if currency is ZAR + type: integer + currency: + description: | + Currency in which price is set. Allowed values are: NGN, GHS, ZAR or USD + type: string + unlimited: + description: | + Set to true if the product has unlimited stock. Leave as false if the + product has limited stock + type: boolean + quantity: + description: Number of products in stock. Use if limited is true + type: integer + split_code: + description: The split code if sharing the transaction with partners + type: string + metadata: + description: Stringified JSON object of custom data + type: string diff --git a/src/assets/openapi/components/schemas/ProductCreateResponse.yaml b/src/assets/openapi/components/schemas/ProductCreateResponse.yaml new file mode 100644 index 0000000..6456871 --- /dev/null +++ b/src/assets/openapi/components/schemas/ProductCreateResponse.yaml @@ -0,0 +1,119 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + variants_options: + type: array + items: {} + variants: + type: array + items: {} + name: + type: string + description: + type: string + currency: + type: string + price: + type: integer + quantity: + type: integer + type: + type: string + is_shippable: + type: boolean + unlimited: + type: boolean + files: + type: array + items: {} + shipping_fields: + type: object + properties: + delivery_note: + type: string + shipping_address: + type: string + shipping_fees: + type: array + items: {} + required: + - delivery_note + - shipping_address + - shipping_fees + integration: + type: integer + domain: + type: string + metadata: + type: object + properties: + background_color: + type: string + required: + - background_color + slug: + type: string + product_code: + type: string + quantity_sold: + type: integer + active: + type: boolean + deleted_at: + nullable: true + in_stock: + type: boolean + minimum_orderable: + type: integer + maximum_orderable: + type: integer + nullable: true + redirect_url: + type: string + nullable: true + low_stock_alert: + type: boolean + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - variants_options + - variants + - name + - description + - currency + - price + - quantity + - type + - is_shippable + - unlimited + - files + - shipping_fields + - integration + - domain + - metadata + - slug + - product_code + - quantity_sold + - active + - deleted_at + - in_stock + - minimum_orderable + - maximum_orderable + - low_stock_alert + - id + - createdAt + - updatedAt +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/ProductDeleteResponse.yaml b/src/assets/openapi/components/schemas/ProductDeleteResponse.yaml new file mode 100644 index 0000000..87b039a --- /dev/null +++ b/src/assets/openapi/components/schemas/ProductDeleteResponse.yaml @@ -0,0 +1,9 @@ +type: object +properties: + status: + type: boolean + message: + type: string +required: + - status + - message diff --git a/src/assets/openapi/components/schemas/ProductFetchResponse.yaml b/src/assets/openapi/components/schemas/ProductFetchResponse.yaml new file mode 100644 index 0000000..0e9fbbf --- /dev/null +++ b/src/assets/openapi/components/schemas/ProductFetchResponse.yaml @@ -0,0 +1,132 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + digital_assets: + type: array + items: {} + integration: + type: integer + name: + type: string + description: + type: string + product_code: + type: string + price: + type: integer + currency: + type: string + quantity: + type: integer + quantity_sold: + nullable: true + type: + type: string + files: + type: array + items: {} + file_path: + nullable: true + is_shippable: + type: boolean + shipping_fields: + type: object + properties: + delivery_note: + type: string + shipping_address: + type: string + shipping_fees: + type: array + items: {} + required: + - delivery_note + - shipping_address + - shipping_fees + unlimited: + type: boolean + domain: + type: string + active: + type: boolean + features: + nullable: true + in_stock: + type: boolean + metadata: + type: object + properties: + background_color: + type: string + required: + - background_color + slug: + type: string + success_message: + nullable: true + redirect_url: + nullable: true + split_code: + nullable: true + notification_emails: + nullable: true + minimum_orderable: + type: integer + maximum_orderable: + nullable: true + low_stock_alert: + type: boolean + stock_threshold: + nullable: true + expires_in: + nullable: true + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - digital_assets + - integration + - name + - description + - product_code + - price + - currency + - quantity + - quantity_sold + - type + - files + - file_path + - is_shippable + - shipping_fields + - unlimited + - domain + - active + - features + - in_stock + - metadata + - slug + - success_message + - redirect_url + - split_code + - notification_emails + - minimum_orderable + - maximum_orderable + - low_stock_alert + - stock_threshold + - expires_in + - id + - createdAt + - updatedAt +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/ProductListsResponse.yaml b/src/assets/openapi/components/schemas/ProductListsResponse.yaml new file mode 100644 index 0000000..bffca36 --- /dev/null +++ b/src/assets/openapi/components/schemas/ProductListsResponse.yaml @@ -0,0 +1,35 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./ProductListsResponseArray.yaml + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: string + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false +required: + - status + - message + - data + - meta diff --git a/src/assets/openapi/components/schemas/ProductListsResponseArray.yaml b/src/assets/openapi/components/schemas/ProductListsResponseArray.yaml new file mode 100644 index 0000000..f2eb00a --- /dev/null +++ b/src/assets/openapi/components/schemas/ProductListsResponseArray.yaml @@ -0,0 +1,113 @@ +type: object +properties: + id: + type: integer + name: + type: string + description: + type: string + product_code: + type: string + slug: + type: string + currency: + type: string + price: + type: integer + quantity: + type: integer + quantity_sold: + type: integer + active: + type: boolean + domain: + type: string + type: + type: string + in_stock: + type: boolean + unlimited: + type: boolean + metadata: + type: object + properties: + background_color: + type: string + required: + - background_color + files: + type: array + items: {} + success_message: + nullable: true + redirect_url: + nullable: true + split_code: + nullable: true + notification_emails: + nullable: true + minimum_orderable: + type: integer + maximum_orderable: + nullable: true + createdAt: + type: string + updatedAt: + type: string + digital_assets: + type: array + items: {} + variant_options: + type: array + items: {} + is_shippable: + type: boolean + shipping_fields: + type: object + properties: + delivery_note: + type: string + shipping_address: + type: string + shipping_fees: + type: array + items: {} + required: + - delivery_note + - shipping_address + - shipping_fees + integration: + type: integer + low_stock_alert: + type: integer +required: + - id + - name + - description + - product_code + - slug + - currency + - price + - quantity + - quantity_sold + - active + - domain + - type + - in_stock + - unlimited + - metadata + - files + - success_message + - redirect_url + - split_code + - notification_emails + - minimum_orderable + - maximum_orderable + - createdAt + - updatedAt + - digital_assets + - variant_options + - is_shippable + - shipping_fields + - integration + - low_stock_alert diff --git a/src/assets/openapi/components/schemas/ProductUpdate.yaml b/src/assets/openapi/components/schemas/ProductUpdate.yaml new file mode 100644 index 0000000..627bd63 --- /dev/null +++ b/src/assets/openapi/components/schemas/ProductUpdate.yaml @@ -0,0 +1,31 @@ +type: object +properties: + name: + description: Name of product + type: string + description: + description: The description of the product + type: string + price: + description: | + Price should be in kobo if currency is NGN, pesewas, if currency is GHS, + and cents, if currency is ZAR + type: integer + currency: + description: | + Currency in which price is set. Allowed values are: NGN, GHS, ZAR or USD + type: string + unlimited: + description: | + Set to true if the product has unlimited stock. Leave as false if the + product has limited stock + type: boolean + quantity: + description: Number of products in stock. Use if limited is true + type: integer + split_code: + description: The split code if sharing the transaction with partners + type: string + metadata: + description: JSON object of custom data + type: object diff --git a/src/assets/openapi/components/schemas/ProductUpdateResponse.yaml b/src/assets/openapi/components/schemas/ProductUpdateResponse.yaml new file mode 100644 index 0000000..d815631 --- /dev/null +++ b/src/assets/openapi/components/schemas/ProductUpdateResponse.yaml @@ -0,0 +1,128 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + name: + type: string + description: + type: string + product_code: + type: string + price: + type: integer + currency: + type: string + quantity: + type: integer + quantity_sold: + type: integer + type: + type: string + files: + type: array + items: {} + file_path: + nullable: true + is_shippable: + type: boolean + shipping_fields: + type: object + properties: + delivery_note: + type: string + shipping_address: + type: string + shipping_fees: + type: array + items: {} + required: + - delivery_note + - shipping_address + - shipping_fees + unlimited: + type: boolean + domain: + type: string + active: + type: boolean + features: + nullable: true + in_stock: + type: boolean + metadata: + type: object + properties: + background_color: + type: string + required: + - background_color + slug: + type: string + success_message: + nullable: true + redirect_url: + nullable: true + split_code: + nullable: true + notification_emails: + nullable: true + minimum_orderable: + type: integer + maximum_orderable: + nullable: true + low_stock_alert: + type: boolean + stock_threshold: + nullable: true + expires_in: + nullable: true + id: + type: integer + integration: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - name + - description + - product_code + - price + - currency + - quantity + - quantity_sold + - type + - files + - file_path + - is_shippable + - shipping_fields + - unlimited + - domain + - active + - features + - in_stock + - metadata + - slug + - success_message + - redirect_url + - split_code + - notification_emails + - minimum_orderable + - maximum_orderable + - low_stock_alert + - stock_threshold + - expires_in + - id + - integration + - createdAt + - updatedAt +required: + - status + - message + - data diff --git a/main/schemas/refund/Create.yaml b/src/assets/openapi/components/schemas/RefundCreate.yaml similarity index 53% rename from main/schemas/refund/Create.yaml rename to src/assets/openapi/components/schemas/RefundCreate.yaml index f325e24..e20a753 100644 --- a/main/schemas/refund/Create.yaml +++ b/src/assets/openapi/components/schemas/RefundCreate.yaml @@ -4,27 +4,20 @@ required: properties: transaction: description: Transaction reference or id - type: string - example: T685312322670591 + type: string amount: - description: |- - Amount ( in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR ) to be refunded to the customer. + description: >- + Amount ( in kobo if currency is NGN, pesewas, if currency is GHS, and + cents, if currency is ZAR ) to be refunded to the customer. + Amount cannot be more than the original transaction amount type: integer - example: 10000 currency: - description: Three-letter ISO currency + description: Three-letter ISO currency. Allowed values are NGN, GHS, ZAR or USD type: string - enum: - - NGN - - GHS - - ZAR - - USD customer_note: description: Customer reason type: string - example: Refund for transaction T685312322670591 merchant_note: description: Merchant reason type: string - example: Refund for transaction T685312322670591 by test@me.com \ No newline at end of file diff --git a/src/assets/openapi/components/schemas/RefundCreateResponse.yaml b/src/assets/openapi/components/schemas/RefundCreateResponse.yaml new file mode 100644 index 0000000..f7f77be --- /dev/null +++ b/src/assets/openapi/components/schemas/RefundCreateResponse.yaml @@ -0,0 +1,137 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + transaction: + type: object + properties: + id: + type: integer + domain: + type: string + reference: + type: string + amount: + type: integer + paid_at: + type: string + channel: + type: string + currency: + type: string + authorization: + type: object + properties: + exp_month: + nullable: true + exp_year: + nullable: true + account_name: + nullable: true + required: + - exp_month + - exp_year + - account_name + customer: + type: object + properties: + international_format_phone: + type: string + nullable: true + required: + - international_format_phone + plan: + type: object + subaccount: + type: object + properties: + currency: + nullable: true + required: + - currency + split: + type: object + order_id: + nullable: true + paidAt: + type: string + pos_transaction_data: + nullable: true + source: + nullable: true + fees_breakdown: + nullable: true + required: + - id + - domain + - reference + - amount + - paid_at + - channel + - currency + - authorization + - customer + - plan + - subaccount + - split + - order_id + - paidAt + - pos_transaction_data + - source + - fees_breakdown + integration: + type: integer + deducted_amount: + type: integer + channel: + nullable: true + merchant_note: + type: string + customer_note: + type: string + status: + type: string + refunded_by: + type: string + expected_at: + type: string + currency: + type: string + domain: + type: string + amount: + type: integer + fully_deducted: + type: boolean + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - transaction + - integration + - deducted_amount + - channel + - merchant_note + - customer_note + - status + - refunded_by + - expected_at + - currency + - domain + - amount + - fully_deducted + - id + - createdAt + - updatedAt +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/RefundFetchResponse.yaml b/src/assets/openapi/components/schemas/RefundFetchResponse.yaml new file mode 100644 index 0000000..6cfb8b2 --- /dev/null +++ b/src/assets/openapi/components/schemas/RefundFetchResponse.yaml @@ -0,0 +1,121 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + integration: + type: integer + transaction: + type: integer + dispute: + nullable: true + settlement: + nullable: true + id: + type: integer + domain: + type: string + currency: + type: string + amount: + type: integer + status: + type: string + refunded_at: + nullable: true + refunded_by: + type: string + customer_note: + type: string + merchant_note: + type: string + deducted_amount: + type: integer + fully_deducted: + type: integer + createdAt: + type: string + bank_reference: + nullable: true + transaction_reference: + type: string + reason: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: string + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + refund_type: + type: string + transaction_amount: + type: integer + initiated_by: + type: string + refund_channel: + type: string + session_id: + nullable: true + collect_account_number: + type: boolean + required: + - integration + - transaction + - dispute + - settlement + - id + - domain + - currency + - amount + - status + - refunded_at + - refunded_by + - customer_note + - merchant_note + - deducted_amount + - fully_deducted + - createdAt + - bank_reference + - transaction_reference + - reason + - customer + - refund_type + - transaction_amount + - initiated_by + - refund_channel + - session_id + - collect_account_number +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/RefundListResponse.yaml b/src/assets/openapi/components/schemas/RefundListResponse.yaml new file mode 100644 index 0000000..7902c4e --- /dev/null +++ b/src/assets/openapi/components/schemas/RefundListResponse.yaml @@ -0,0 +1,38 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./RefundListResponseArray.yaml + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: string + page: + type: integer + pageCount: + type: integer + failedRefundCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + - failedRefundCount + additionalProperties: false +required: + - status + - message + - data + - meta diff --git a/src/assets/openapi/components/schemas/RefundListResponseArray.yaml b/src/assets/openapi/components/schemas/RefundListResponseArray.yaml new file mode 100644 index 0000000..f84c080 --- /dev/null +++ b/src/assets/openapi/components/schemas/RefundListResponseArray.yaml @@ -0,0 +1,111 @@ +type: object +properties: + integration: + type: integer + transaction: + type: integer + dispute: + nullable: true + settlement: + nullable: true + id: + type: integer + domain: + type: string + currency: + type: string + amount: + type: integer + status: + type: string + refunded_at: + nullable: true + refunded_by: + type: string + customer_note: + type: string + merchant_note: + type: string + deducted_amount: + type: integer + fully_deducted: + type: integer + createdAt: + type: string + bank_reference: + nullable: true + transaction_reference: + type: string + reason: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + metadata: + type: string + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + refund_type: + type: string + transaction_amount: + type: integer + initiated_by: + type: string + refund_channel: + type: string + session_id: + nullable: true + collect_account_number: + type: boolean +required: + - integration + - transaction + - dispute + - settlement + - id + - domain + - currency + - amount + - status + - refunded_at + - refunded_by + - customer_note + - merchant_note + - deducted_amount + - fully_deducted + - createdAt + - bank_reference + - transaction_reference + - reason + - customer + - refund_type + - transaction_amount + - initiated_by + - refund_channel + - session_id + - collect_account_number diff --git a/main/responses/response.yaml b/src/assets/openapi/components/schemas/Response.yaml similarity index 66% rename from main/responses/response.yaml rename to src/assets/openapi/components/schemas/Response.yaml index 3ce2ba5..50a78b8 100644 --- a/main/responses/response.yaml +++ b/src/assets/openapi/components/schemas/Response.yaml @@ -1,8 +1,8 @@ type: object properties: status: - type: boolean + type: boolean message: type: string data: - type: object \ No newline at end of file + type: object diff --git a/src/assets/openapi/components/schemas/ShareSubaccountsArray.yaml b/src/assets/openapi/components/schemas/ShareSubaccountsArray.yaml new file mode 100644 index 0000000..2dfb5ee --- /dev/null +++ b/src/assets/openapi/components/schemas/ShareSubaccountsArray.yaml @@ -0,0 +1,21 @@ +type: object +properties: + amount: + type: integer + original_share: + type: number + fees: + type: integer + subaccount_code: + type: string + id: + type: integer + integration: + type: string +required: + - amount + - original_share + - fees + - subaccount_code + - id + - integration diff --git a/src/assets/openapi/components/schemas/SplitAddUpdateSubaccountResponse.yaml b/src/assets/openapi/components/schemas/SplitAddUpdateSubaccountResponse.yaml new file mode 100644 index 0000000..ed92c76 --- /dev/null +++ b/src/assets/openapi/components/schemas/SplitAddUpdateSubaccountResponse.yaml @@ -0,0 +1,61 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + name: + type: string + type: + type: string + currency: + type: string + integration: + type: integer + domain: + type: string + split_code: + type: string + active: + type: boolean + bearer_type: + type: string + bearer_subaccount: + type: integer + createdAt: + type: string + updatedAt: + type: string + is_dynamic: + type: boolean + subaccounts: + type: array + items: + $ref: ./SplitSubaccountsArray.yaml + total_subaccounts: + type: integer + required: + - id + - name + - type + - currency + - integration + - domain + - split_code + - active + - bearer_type + - bearer_subaccount + - createdAt + - updatedAt + - is_dynamic + - subaccounts + - total_subaccounts +required: + - status + - message + - data diff --git a/main/schemas/split/Create.yaml b/src/assets/openapi/components/schemas/SplitCreate.yaml similarity index 54% rename from main/schemas/split/Create.yaml rename to src/assets/openapi/components/schemas/SplitCreate.yaml index bc63efe..4f97a96 100644 --- a/main/schemas/split/Create.yaml +++ b/src/assets/openapi/components/schemas/SplitCreate.yaml @@ -1,4 +1,6 @@ type: object +description: | + Split configuration for transactions required: - name - type @@ -7,37 +9,43 @@ required: properties: name: description: Name of the transaction split - type: string - example: Testing Accounts + type: string type: description: The type of transaction split you want to create. type: string - enum: - - percentage - - flat + enum: + - percentage + - flat subaccounts: description: A list of object containing subaccount code and number of shares type: array - items: - $ref: './Subaccount.yaml' + items: + $ref: ./SplitSubaccounts.yaml currency: description: The transaction currency type: string enum: - - NGN - - GHS - - ZAR - - USD + - NGN + - GHS + - ZAR + - USD bearer_type: description: This allows you specify how the transaction charge should be processed type: string - enum: - - subaccount - - account - - all-proportional - - all + enum: + - subaccount + - account + - all-proportional + - all bearer_subaccount: - description: |- - This is the subaccount code of the customer or partner that would bear the transaction charge if you specified subaccount as the bearer type + description: >- + This is the subaccount code of the customer or partner that would bear the + transaction charge if you specified subaccount as the bearer type type: string - example: ACCT_03tb3u7jgwb4 \ No newline at end of file +example: + name: Halfsies + type: percentage + currency: NGN + subaccounts: + - subaccount: ACCT_6uujpqtzmnufzkw + share: 50 \ No newline at end of file diff --git a/src/assets/openapi/components/schemas/SplitCreateResponse.yaml b/src/assets/openapi/components/schemas/SplitCreateResponse.yaml new file mode 100644 index 0000000..bf85c8a --- /dev/null +++ b/src/assets/openapi/components/schemas/SplitCreateResponse.yaml @@ -0,0 +1,60 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + name: + type: string + type: + type: string + currency: + type: string + integration: + type: integer + domain: + type: string + split_code: + type: string + active: + type: boolean + bearer_type: + type: string + bearer_subaccount: + type: integer + createdAt: + type: string + updatedAt: + type: string + is_dynamic: + type: boolean + subaccounts: + type: array + items: + $ref: ./SplitSubaccountsArray.yaml + total_subaccounts: + type: integer + required: + - id + - name + - type + - currency + - integration + - domain + - split_code + - active + - bearer_type + - createdAt + - updatedAt + - is_dynamic + - subaccounts + - total_subaccounts +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/SplitFetchResponse.yaml b/src/assets/openapi/components/schemas/SplitFetchResponse.yaml new file mode 100644 index 0000000..ed92c76 --- /dev/null +++ b/src/assets/openapi/components/schemas/SplitFetchResponse.yaml @@ -0,0 +1,61 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + name: + type: string + type: + type: string + currency: + type: string + integration: + type: integer + domain: + type: string + split_code: + type: string + active: + type: boolean + bearer_type: + type: string + bearer_subaccount: + type: integer + createdAt: + type: string + updatedAt: + type: string + is_dynamic: + type: boolean + subaccounts: + type: array + items: + $ref: ./SplitSubaccountsArray.yaml + total_subaccounts: + type: integer + required: + - id + - name + - type + - currency + - integration + - domain + - split_code + - active + - bearer_type + - bearer_subaccount + - createdAt + - updatedAt + - is_dynamic + - subaccounts + - total_subaccounts +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/SplitListResponse.yaml b/src/assets/openapi/components/schemas/SplitListResponse.yaml new file mode 100644 index 0000000..7482f72 --- /dev/null +++ b/src/assets/openapi/components/schemas/SplitListResponse.yaml @@ -0,0 +1,35 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./SplitListResponseArray.yaml + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false +required: + - status + - message + - data + - meta diff --git a/src/assets/openapi/components/schemas/SplitListResponseArray.yaml b/src/assets/openapi/components/schemas/SplitListResponseArray.yaml new file mode 100644 index 0000000..3ea9ee7 --- /dev/null +++ b/src/assets/openapi/components/schemas/SplitListResponseArray.yaml @@ -0,0 +1,51 @@ +type: object +properties: + id: + type: integer + name: + type: string + type: + type: string + currency: + type: string + integration: + type: integer + domain: + type: string + split_code: + type: string + active: + type: boolean + bearer_type: + type: string + bearer_subaccount: + type: integer + nullable: true + createdAt: + type: string + updatedAt: + type: string + is_dynamic: + type: boolean + subaccounts: + type: array + items: + $ref: ./SplitSubaccountsArray.yaml + total_subaccounts: + type: integer +required: + - id + - name + - type + - currency + - integration + - domain + - split_code + - active + - bearer_type + - bearer_subaccount + - createdAt + - updatedAt + - is_dynamic + - subaccounts + - total_subaccounts diff --git a/src/assets/openapi/components/schemas/SplitRemoveSubaccountResponse.yaml b/src/assets/openapi/components/schemas/SplitRemoveSubaccountResponse.yaml new file mode 100644 index 0000000..87b039a --- /dev/null +++ b/src/assets/openapi/components/schemas/SplitRemoveSubaccountResponse.yaml @@ -0,0 +1,9 @@ +type: object +properties: + status: + type: boolean + message: + type: string +required: + - status + - message diff --git a/main/schemas/split/Subaccount.yaml b/src/assets/openapi/components/schemas/SplitSubaccounts.yaml similarity index 73% rename from main/schemas/split/Subaccount.yaml rename to src/assets/openapi/components/schemas/SplitSubaccounts.yaml index 0ed9a31..a8f5f75 100644 --- a/main/schemas/split/Subaccount.yaml +++ b/src/assets/openapi/components/schemas/SplitSubaccounts.yaml @@ -3,8 +3,9 @@ properties: subaccount: description: Subaccount code of the customer or partner type: string - example: ACCT_03tb3u7jgwb4v share: description: The percentage or flat quota of the customer or partner - type: string - example: '102' \ No newline at end of file + type: integer +example: + subaccount: ACCT_6uujpqtzmnufzkw + share: 50 \ No newline at end of file diff --git a/src/assets/openapi/components/schemas/SplitSubaccountsArray.yaml b/src/assets/openapi/components/schemas/SplitSubaccountsArray.yaml new file mode 100644 index 0000000..60f8831 --- /dev/null +++ b/src/assets/openapi/components/schemas/SplitSubaccountsArray.yaml @@ -0,0 +1,44 @@ +type: object +properties: + subaccount: + type: object + properties: + id: + type: integer + subaccount_code: + type: string + business_name: + type: string + description: + type: string + primary_contact_name: + type: string + primary_contact_email: + type: string + primary_contact_phone: + type: string + metadata: + type: string + settlement_bank: + type: string + currency: + type: string + account_number: + type: string + required: + - id + - subaccount_code + - business_name + - description + - primary_contact_name + - primary_contact_email + - primary_contact_phone + - metadata + - settlement_bank + - currency + - account_number + share: + type: integer +required: + - subaccount + - share diff --git a/main/schemas/split/Update.yaml b/src/assets/openapi/components/schemas/SplitUpdate.yaml similarity index 64% rename from main/schemas/split/Update.yaml rename to src/assets/openapi/components/schemas/SplitUpdate.yaml index 4223da4..9e35389 100644 --- a/main/schemas/split/Update.yaml +++ b/src/assets/openapi/components/schemas/SplitUpdate.yaml @@ -2,19 +2,20 @@ type: object properties: name: description: Name of the transaction split - type: string + type: string active: description: Toggle status of split. When true, the split is active, else it's inactive type: boolean bearer_type: description: This allows you specify how the transaction charge should be processed type: string - enum: - - subaccount - - account - - all-proportional - - all + enum: + - subaccount + - account + - all-proportional + - all bearer_subaccount: - description: |- - This is the subaccount code of the customer or partner that would bear the transaction charge if you specified subaccount as the bearer type - type: string \ No newline at end of file + description: >- + This is the subaccount code of the customer or partner that would bear the + transaction charge if you specified subaccount as the bearer type + type: string diff --git a/src/assets/openapi/components/schemas/SplitUpdateResponse.yaml b/src/assets/openapi/components/schemas/SplitUpdateResponse.yaml new file mode 100644 index 0000000..ed92c76 --- /dev/null +++ b/src/assets/openapi/components/schemas/SplitUpdateResponse.yaml @@ -0,0 +1,61 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + name: + type: string + type: + type: string + currency: + type: string + integration: + type: integer + domain: + type: string + split_code: + type: string + active: + type: boolean + bearer_type: + type: string + bearer_subaccount: + type: integer + createdAt: + type: string + updatedAt: + type: string + is_dynamic: + type: boolean + subaccounts: + type: array + items: + $ref: ./SplitSubaccountsArray.yaml + total_subaccounts: + type: integer + required: + - id + - name + - type + - currency + - integration + - domain + - split_code + - active + - bearer_type + - bearer_subaccount + - createdAt + - updatedAt + - is_dynamic + - subaccounts + - total_subaccounts +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/StorefrontAddProducts.yaml b/src/assets/openapi/components/schemas/StorefrontAddProducts.yaml new file mode 100644 index 0000000..5a3a944 --- /dev/null +++ b/src/assets/openapi/components/schemas/StorefrontAddProducts.yaml @@ -0,0 +1,9 @@ +type: object +required: + - products +properties: + products: + description: An array of product IDs + type: array + items: + type: integer diff --git a/src/assets/openapi/components/schemas/StorefrontContactsArray.yaml b/src/assets/openapi/components/schemas/StorefrontContactsArray.yaml new file mode 100644 index 0000000..de176fc --- /dev/null +++ b/src/assets/openapi/components/schemas/StorefrontContactsArray.yaml @@ -0,0 +1,15 @@ +type: object +properties: + value: + type: string + id: + type: integer + type_name: + nullable: true + type: + type: integer +required: + - value + - id + - type_name + - type diff --git a/src/assets/openapi/components/schemas/StorefrontCreate.yaml b/src/assets/openapi/components/schemas/StorefrontCreate.yaml new file mode 100644 index 0000000..64c4f53 --- /dev/null +++ b/src/assets/openapi/components/schemas/StorefrontCreate.yaml @@ -0,0 +1,24 @@ +type: object +required: + - name + - slug + - currency +properties: + name: + description: Name of the storefront + type: string + slug: + description: > + A unique identifier to access your store. Once the storefront is created, + it can be accessed from + + https://paystack.shop/your-slug + type: string + currency: + description: > + Currency for prices of products in your storefront. Allowed values are: + `NGN`, `GHS`, `KES`, `ZAR` or `USD` + type: string + description: + description: The description of the storefront + type: string diff --git a/src/assets/openapi/components/schemas/StorefrontCreateResponse.yaml b/src/assets/openapi/components/schemas/StorefrontCreateResponse.yaml new file mode 100644 index 0000000..5d957b6 --- /dev/null +++ b/src/assets/openapi/components/schemas/StorefrontCreateResponse.yaml @@ -0,0 +1,85 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + social_media: + type: array + items: {} + contacts: + type: array + items: + $ref: ./StorefrontContactsArray.yaml + name: + type: string + slug: + type: string + currency: + type: string + welcome_message: + nullable: true + success_message: + nullable: true + redirect_url: + nullable: true + description: + nullable: true + delivery_note: + type: string + background_color: + type: string + status: + type: string + shippable: + type: boolean + integration: + type: integer + domain: + type: string + digital_product_expiry: + nullable: true + metadata: + type: object + nullable: true + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + products: + type: array + items: {} + shipping_fees: + type: array + items: {} + required: + - social_media + - contacts + - name + - slug + - currency + - welcome_message + - success_message + - redirect_url + - description + - delivery_note + - background_color + - status + - shippable + - integration + - domain + - digital_product_expiry + - id + - createdAt + - updatedAt + - products + - shipping_fees +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/StorefrontDeleteResponse.yaml b/src/assets/openapi/components/schemas/StorefrontDeleteResponse.yaml new file mode 100644 index 0000000..87b039a --- /dev/null +++ b/src/assets/openapi/components/schemas/StorefrontDeleteResponse.yaml @@ -0,0 +1,9 @@ +type: object +properties: + status: + type: boolean + message: + type: string +required: + - status + - message diff --git a/src/assets/openapi/components/schemas/StorefrontDuplicateResponse.yaml b/src/assets/openapi/components/schemas/StorefrontDuplicateResponse.yaml new file mode 100644 index 0000000..5d957b6 --- /dev/null +++ b/src/assets/openapi/components/schemas/StorefrontDuplicateResponse.yaml @@ -0,0 +1,85 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + social_media: + type: array + items: {} + contacts: + type: array + items: + $ref: ./StorefrontContactsArray.yaml + name: + type: string + slug: + type: string + currency: + type: string + welcome_message: + nullable: true + success_message: + nullable: true + redirect_url: + nullable: true + description: + nullable: true + delivery_note: + type: string + background_color: + type: string + status: + type: string + shippable: + type: boolean + integration: + type: integer + domain: + type: string + digital_product_expiry: + nullable: true + metadata: + type: object + nullable: true + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + products: + type: array + items: {} + shipping_fees: + type: array + items: {} + required: + - social_media + - contacts + - name + - slug + - currency + - welcome_message + - success_message + - redirect_url + - description + - delivery_note + - background_color + - status + - shippable + - integration + - domain + - digital_product_expiry + - id + - createdAt + - updatedAt + - products + - shipping_fees +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/StorefrontFetchResponse.yaml b/src/assets/openapi/components/schemas/StorefrontFetchResponse.yaml new file mode 100644 index 0000000..44ec192 --- /dev/null +++ b/src/assets/openapi/components/schemas/StorefrontFetchResponse.yaml @@ -0,0 +1,109 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + social_media: + type: array + items: {} + contacts: + type: array + items: + $ref: ./StorefrontContactsArray.yaml + name: + type: string + slug: + type: string + currency: + type: string + welcome_message: + nullable: true + success_message: + nullable: true + redirect_url: + nullable: true + description: + nullable: true + delivery_note: + type: string + background_color: + type: string + status: + type: string + shippable: + type: boolean + integration: + type: integer + domain: + type: string + digital_product_expiry: + nullable: true + metadata: + type: object + nullable: true + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + products: + type: array + items: {} + shipping_fees: + type: array + items: {} + required: + - social_media + - contacts + - name + - slug + - currency + - welcome_message + - success_message + - redirect_url + - description + - delivery_note + - background_color + - status + - shippable + - integration + - domain + - digital_product_expiry + - id + - createdAt + - updatedAt + - products + - shipping_fees + meta: + type: object + properties: + product_count: + type: integer + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - product_count + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false +required: + - status + - message + - data + - meta diff --git a/src/assets/openapi/components/schemas/StorefrontListResponse.yaml b/src/assets/openapi/components/schemas/StorefrontListResponse.yaml new file mode 100644 index 0000000..232e560 --- /dev/null +++ b/src/assets/openapi/components/schemas/StorefrontListResponse.yaml @@ -0,0 +1,35 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./StorefrontListResponseArray.yaml + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false +required: + - status + - message + - data + - meta diff --git a/src/assets/openapi/components/schemas/StorefrontListResponseArray.yaml b/src/assets/openapi/components/schemas/StorefrontListResponseArray.yaml new file mode 100644 index 0000000..3105e48 --- /dev/null +++ b/src/assets/openapi/components/schemas/StorefrontListResponseArray.yaml @@ -0,0 +1,40 @@ +type: object +properties: + id: + type: integer + name: + type: string + slug: + type: string + orders_count: + type: integer + status: + type: string + revenue: + nullable: true + currency: + type: string + products: + type: array + items: {} + contacts: + type: array + items: {} + social_media: + type: array + items: {} + shipping_fees: + type: array + items: {} +required: + - id + - name + - slug + - orders_count + - status + - revenue + - currency + - products + - contacts + - social_media + - shipping_fees diff --git a/src/assets/openapi/components/schemas/StorefrontProductResponse.yaml b/src/assets/openapi/components/schemas/StorefrontProductResponse.yaml new file mode 100644 index 0000000..afd70b8 --- /dev/null +++ b/src/assets/openapi/components/schemas/StorefrontProductResponse.yaml @@ -0,0 +1,104 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + name: + type: string + description: + type: string + currency: + type: string + price: + type: integer + quantity: + type: integer + is_shippable: + type: boolean + unlimited: + type: boolean + files: + type: array + items: {} + shipping_fields: + type: object + properties: + delivery_note: + type: string + shipping_address: + type: string + shipping_fees: + type: array + items: {} + required: + - delivery_note + - shipping_address + - shipping_fees + integration: + type: integer + domain: + type: string + metadata: + type: object + properties: + background_color: + type: string + required: + - background_color + slug: + type: string + product_code: + type: string + quantity_sold: + type: integer + type: + type: string + active: + type: boolean + in_stock: + type: boolean + minimum_orderable: + type: integer + maximum_orderable: + nullable: true + low_stock_alert: + type: boolean + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - name + - description + - currency + - price + - quantity + - is_shippable + - unlimited + - files + - shipping_fields + - integration + - domain + - metadata + - slug + - product_code + - quantity_sold + - type + - active + - in_stock + - minimum_orderable + - maximum_orderable + - low_stock_alert + - id + - createdAt + - updatedAt +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/StorefrontShippingResponse.yaml b/src/assets/openapi/components/schemas/StorefrontShippingResponse.yaml new file mode 100644 index 0000000..b2f81cb --- /dev/null +++ b/src/assets/openapi/components/schemas/StorefrontShippingResponse.yaml @@ -0,0 +1,38 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + fee: + type: integer + name: + type: string + currency: + type: string + id: + type: integer + isDeleted: + type: boolean + createdAt: + type: string + updatedAt: + type: string + storefront: + type: integer + required: + - fee + - name + - currency + - id + - isDeleted + - createdAt + - updatedAt + - storefront +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/StorefrontUpdate.yaml b/src/assets/openapi/components/schemas/StorefrontUpdate.yaml new file mode 100644 index 0000000..ee96df1 --- /dev/null +++ b/src/assets/openapi/components/schemas/StorefrontUpdate.yaml @@ -0,0 +1,15 @@ +type: object +properties: + name: + description: Name of the storefront + type: string + slug: + description: > + A unique identifier to access your store. Once the storefront is created, + it can be accessed from + + https://paystack.shop/your-slug + type: string + description: + description: The description of the storefront + type: string diff --git a/src/assets/openapi/components/schemas/StorefrontUpdateResponse.yaml b/src/assets/openapi/components/schemas/StorefrontUpdateResponse.yaml new file mode 100644 index 0000000..87b039a --- /dev/null +++ b/src/assets/openapi/components/schemas/StorefrontUpdateResponse.yaml @@ -0,0 +1,9 @@ +type: object +properties: + status: + type: boolean + message: + type: string +required: + - status + - message diff --git a/main/schemas/subaccount/Create.yaml b/src/assets/openapi/components/schemas/SubaccountCreate.yaml similarity index 64% rename from main/schemas/subaccount/Create.yaml rename to src/assets/openapi/components/schemas/SubaccountCreate.yaml index 8a62d5e..eee5281 100644 --- a/main/schemas/subaccount/Create.yaml +++ b/src/assets/openapi/components/schemas/SubaccountCreate.yaml @@ -7,38 +7,36 @@ required: properties: business_name: description: Name of business for subaccount - type: string - example: Some Subaccount + type: string settlement_bank: - description: Bank code for the bank. You can get the list of Bank Codes by calling the List Banks endpoint. + description: >- + Bank code for the bank. You can get the list of Bank Codes by calling the + List Banks endpoint. type: string - example: "011" account_number: description: Bank account number type: string - example: "0000000000" percentage_charge: - description: Transaction percentage that the subaccount gets + description: Customer's phone number type: number format: float - example: 0.3 description: description: A description for this subaccount type: string - example: A service provider primary_contact_email: description: A contact email for the subaccount type: string - example: sub@example.com primary_contact_name: description: The name of the contact person for this subaccount type: string - example: person@example.com primary_contact_phone: description: A phone number to call for this subaccount type: string metadata: description: Stringified JSON object of custom data - type: object - example: - category: General supplies \ No newline at end of file + type: string +example: + business_name: "Oasis" + account_number: "0123456047" + settlement_bank: "058" + percentage_charge: 30 diff --git a/src/assets/openapi/components/schemas/SubaccountCreateResponse.yaml b/src/assets/openapi/components/schemas/SubaccountCreateResponse.yaml new file mode 100644 index 0000000..e630c14 --- /dev/null +++ b/src/assets/openapi/components/schemas/SubaccountCreateResponse.yaml @@ -0,0 +1,86 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + business_name: + type: string + account_name: + type: string + nullable: true + description: + type: string + primary_contact_name: + type: string + primary_contact_email: + type: string + primary_contact_phone: + type: string + metadata: + type: string + account_number: + type: string + percentage_charge: + type: number + settlement_bank: + type: string + currency: + type: string + bank: + type: integer + integration: + type: integer + domain: + type: string + product: + type: string + managed_by_integration: + type: integer + subaccount_code: + type: string + is_verified: + type: boolean + settlement_schedule: + type: string + active: + type: boolean + migrate: + type: boolean + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - business_name + - description + - primary_contact_name + - primary_contact_email + - primary_contact_phone + - metadata + - account_number + - percentage_charge + - settlement_bank + - currency + - bank + - integration + - domain + - managed_by_integration + - product + - subaccount_code + - is_verified + - settlement_schedule + - active + - migrate + - id + - createdAt + - updatedAt +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/SubaccountFetchResponse.yaml b/src/assets/openapi/components/schemas/SubaccountFetchResponse.yaml new file mode 100644 index 0000000..b2a9da3 --- /dev/null +++ b/src/assets/openapi/components/schemas/SubaccountFetchResponse.yaml @@ -0,0 +1,86 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + integration: + type: integer + account_name: + type: string + nullable: true + bank: + type: integer + managed_by_integration: + type: integer + domain: + type: string + subaccount_code: + type: string + business_name: + type: string + description: + type: string + primary_contact_name: + type: string + primary_contact_email: + type: string + primary_contact_phone: + type: string + metadata: + type: string + percentage_charge: + type: number + is_verified: + type: boolean + settlement_bank: + type: string + account_number: + type: string + settlement_schedule: + type: string + active: + type: boolean + migrate: + type: boolean + currency: + type: string + product: + type: string + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - integration + - bank + - managed_by_integration + - domain + - subaccount_code + - business_name + - description + - primary_contact_name + - primary_contact_email + - primary_contact_phone + - metadata + - percentage_charge + - is_verified + - settlement_bank + - account_number + - settlement_schedule + - active + - migrate + - currency + - product + - id + - createdAt + - updatedAt +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/SubaccountListResponse.yaml b/src/assets/openapi/components/schemas/SubaccountListResponse.yaml new file mode 100644 index 0000000..8ee9fe9 --- /dev/null +++ b/src/assets/openapi/components/schemas/SubaccountListResponse.yaml @@ -0,0 +1,35 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./SubaccountListResponseArray.yaml + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false +required: + - status + - message + - data + - meta diff --git a/src/assets/openapi/components/schemas/SubaccountListResponseArray.yaml b/src/assets/openapi/components/schemas/SubaccountListResponseArray.yaml new file mode 100644 index 0000000..c418799 --- /dev/null +++ b/src/assets/openapi/components/schemas/SubaccountListResponseArray.yaml @@ -0,0 +1,48 @@ +type: object +properties: + id: + type: integer + subaccount_code: + type: string + business_name: + type: string + description: + type: string + primary_contact_name: + type: string + primary_contact_email: + type: string + primary_contact_phone: + type: string + metadata: + type: string + percentage_charge: + type: number + settlement_bank: + type: string + bank_id: + type: integer + account_number: + type: string + currency: + type: string + active: + type: integer + is_verified: + type: boolean +required: + - id + - subaccount_code + - business_name + - description + - primary_contact_name + - primary_contact_email + - primary_contact_phone + - metadata + - percentage_charge + - settlement_bank + - bank_id + - account_number + - currency + - active + - is_verified diff --git a/main/schemas/subaccount/Update.yaml b/src/assets/openapi/components/schemas/SubaccountUpdate.yaml similarity index 80% rename from main/schemas/subaccount/Update.yaml rename to src/assets/openapi/components/schemas/SubaccountUpdate.yaml index ffcfb0a..073b308 100644 --- a/main/schemas/subaccount/Update.yaml +++ b/src/assets/openapi/components/schemas/SubaccountUpdate.yaml @@ -2,9 +2,11 @@ type: object properties: business_name: description: Name of business for subaccount - type: string + type: string settlement_bank: - description: Bank code for the bank. You can get the list of Bank Codes by calling the List Banks endpoint. + description: >- + Bank code for the bank. You can get the list of Bank Codes by calling the + List Banks endpoint. type: string account_number: description: Bank account number @@ -30,4 +32,6 @@ properties: type: string metadata: description: Stringified JSON object of custom data - type: string \ No newline at end of file + type: string +example: + business_name: "Sandalwood" \ No newline at end of file diff --git a/src/assets/openapi/components/schemas/SubaccountUpdateResponse.yaml b/src/assets/openapi/components/schemas/SubaccountUpdateResponse.yaml new file mode 100644 index 0000000..1f964a3 --- /dev/null +++ b/src/assets/openapi/components/schemas/SubaccountUpdateResponse.yaml @@ -0,0 +1,86 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + domain: + type: string + subaccount_code: + type: string + account_name: + type: string + nullable: true + business_name: + type: string + description: + type: string + primary_contact_name: + type: string + primary_contact_email: + type: string + primary_contact_phone: + type: string + metadata: + type: string + percentage_charge: + type: number + is_verified: + type: boolean + settlement_bank: + type: string + account_number: + type: string + settlement_schedule: + type: string + active: + type: boolean + migrate: + type: boolean + currency: + type: string + product: + type: string + id: + type: integer + integration: + type: integer + bank: + type: integer + managed_by_integration: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - domain + - subaccount_code + - business_name + - description + - primary_contact_name + - primary_contact_email + - primary_contact_phone + - metadata + - percentage_charge + - is_verified + - settlement_bank + - account_number + - settlement_schedule + - active + - migrate + - currency + - product + - id + - integration + - bank + - managed_by_integration + - createdAt + - updatedAt +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/SubscriptionCreate.yaml b/src/assets/openapi/components/schemas/SubscriptionCreate.yaml new file mode 100644 index 0000000..bf3acfb --- /dev/null +++ b/src/assets/openapi/components/schemas/SubscriptionCreate.yaml @@ -0,0 +1,25 @@ +type: object +required: + - customer + - plan +properties: + customer: + description: Customer's email address or customer code + type: string + plan: + description: Plan code + type: string + authorization: + description: >- + If customer has multiple authorizations, you can set the desired + authorization you wish to use for this subscription here. + + If this is not supplied, the customer's most recent authorization would be + used + type: string + start_date: + description: >- + Set the date for the first debit. (ISO 8601 format) e.g. + 2017-05-16T00:30:13+01:00 + type: string + format: date-time diff --git a/src/assets/openapi/components/schemas/SubscriptionCreateResponse.yaml b/src/assets/openapi/components/schemas/SubscriptionCreateResponse.yaml new file mode 100644 index 0000000..cd616e0 --- /dev/null +++ b/src/assets/openapi/components/schemas/SubscriptionCreateResponse.yaml @@ -0,0 +1,83 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + customer: + type: integer + plan: + type: integer + integration: + type: integer + domain: + type: string + start: + type: integer + status: + type: string + quantity: + type: integer + amount: + type: integer + authorization: + type: integer + invoice_limit: + type: integer + split_code: + nullable: true + subscription_code: + type: string + email_token: + type: string + id: + type: integer + cancelledAt: + nullable: true + createdAt: + type: string + updatedAt: + type: string + cron_expression: + type: string + next_payment_date: + type: string + easy_cron_id: + type: string + nullable: true + open_invoice: + type: string + nullable: true + metadata: + type: object + nullable: true + required: + - customer + - plan + - integration + - domain + - start + - status + - quantity + - amount + - authorization + - invoice_limit + - split_code + - subscription_code + - email_token + - id + - cancelledAt + - createdAt + - updatedAt + - cron_expression + - next_payment_date + - easy_cron_id + - open_invoice + - metadata +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/SubscriptionDisableResponse.yaml b/src/assets/openapi/components/schemas/SubscriptionDisableResponse.yaml new file mode 100644 index 0000000..87b039a --- /dev/null +++ b/src/assets/openapi/components/schemas/SubscriptionDisableResponse.yaml @@ -0,0 +1,9 @@ +type: object +properties: + status: + type: boolean + message: + type: string +required: + - status + - message diff --git a/src/assets/openapi/components/schemas/SubscriptionFetchResponse.yaml b/src/assets/openapi/components/schemas/SubscriptionFetchResponse.yaml new file mode 100644 index 0000000..3def40c --- /dev/null +++ b/src/assets/openapi/components/schemas/SubscriptionFetchResponse.yaml @@ -0,0 +1,182 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + subscription_code: + type: string + email_token: + type: string + amount: + type: integer + cron_expression: + type: string + next_payment_date: + type: string + open_invoice: + nullable: true + createdAt: + type: string + cancelledAt: + nullable: true + integration: + type: integer + plan: + type: object + properties: + id: + type: integer + name: + type: string + plan_code: + type: string + description: + nullable: true + amount: + type: integer + interval: + type: string + send_invoices: + type: boolean + send_sms: + type: boolean + currency: + type: string + required: + - id + - name + - plan_code + - description + - amount + - interval + - send_invoices + - send_sms + - currency + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + invoices: + type: array + items: {} + invoices_history: + type: array + items: {} + invoice_limit: + type: integer + split_code: + nullable: true + most_recent_invoice: + nullable: true + payments_count: + type: integer + metadata: + type: object + nullable: true + required: + - id + - domain + - status + - subscription_code + - email_token + - amount + - cron_expression + - next_payment_date + - open_invoice + - createdAt + - cancelledAt + - integration + - plan + - authorization + - customer + - invoices + - invoices_history + - invoice_limit + - split_code + - most_recent_invoice + - payments_count + - metadata +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/SubscriptionListResponse.yaml b/src/assets/openapi/components/schemas/SubscriptionListResponse.yaml new file mode 100644 index 0000000..9037e20 --- /dev/null +++ b/src/assets/openapi/components/schemas/SubscriptionListResponse.yaml @@ -0,0 +1,35 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./SubscriptionListResponseArray.yaml + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false +required: + - status + - message + - data + - meta diff --git a/src/assets/openapi/components/schemas/SubscriptionListResponseArray.yaml b/src/assets/openapi/components/schemas/SubscriptionListResponseArray.yaml new file mode 100644 index 0000000..64904c0 --- /dev/null +++ b/src/assets/openapi/components/schemas/SubscriptionListResponseArray.yaml @@ -0,0 +1,184 @@ +type: object +properties: + id: + type: integer + domain: + type: string + status: + type: string + start: + type: integer + quantity: + type: integer + subscription_code: + type: string + email_token: + type: string + amount: + type: integer + cron_expression: + type: string + nullable: true + next_payment_date: + type: string + nullable: true + open_invoice: + nullable: true + createdAt: + type: string + integration: + type: integer + plan: + type: object + properties: + id: + type: integer + domain: + type: string + name: + type: string + plan_code: + type: string + description: + nullable: true + amount: + type: integer + interval: + type: string + send_invoices: + type: boolean + send_sms: + type: boolean + currency: + type: string + integration: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - id + - domain + - name + - plan_code + - description + - amount + - interval + - send_invoices + - send_sms + - currency + - integration + - createdAt + - updatedAt + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + nullable: true + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + nullable: true + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: integer + signature: + type: string + nullable: true + account_name: + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + metadata: + type: string + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + invoice_limit: + type: integer + split_code: + nullable: true + payments_count: + type: integer + most_recent_invoice: + nullable: true + metadata: + type: object + nullable: true +required: + - id + - domain + - status + - start + - quantity + - subscription_code + - email_token + - amount + - cron_expression + - next_payment_date + - open_invoice + - createdAt + - integration + - plan + - authorization + - customer + - invoice_limit + - split_code + - payments_count + - most_recent_invoice + - metadata diff --git a/main/schemas/subscription/Toggle.yaml b/src/assets/openapi/components/schemas/SubscriptionToggle.yaml similarity index 72% rename from main/schemas/subscription/Toggle.yaml rename to src/assets/openapi/components/schemas/SubscriptionToggle.yaml index 7cf58f0..07ddf7b 100644 --- a/main/schemas/subscription/Toggle.yaml +++ b/src/assets/openapi/components/schemas/SubscriptionToggle.yaml @@ -2,11 +2,10 @@ type: object required: - code - token - - authorization properties: code: description: Subscription code - type: string + type: string token: description: Email token - type: string \ No newline at end of file + type: string diff --git a/src/assets/openapi/components/schemas/TerminalActivationToggle.yaml b/src/assets/openapi/components/schemas/TerminalActivationToggle.yaml new file mode 100644 index 0000000..65d2d66 --- /dev/null +++ b/src/assets/openapi/components/schemas/TerminalActivationToggle.yaml @@ -0,0 +1,10 @@ +type: object +description: Model for activating and deactivating a debug Terminal +required: + - serial_number +properties: + serial_number: + description: Device Serial Number + type: string +example: + serial_number: '1111150412230003899' diff --git a/src/assets/openapi/components/schemas/TerminalCommissionDeviceResponse.yaml b/src/assets/openapi/components/schemas/TerminalCommissionDeviceResponse.yaml new file mode 100644 index 0000000..87b039a --- /dev/null +++ b/src/assets/openapi/components/schemas/TerminalCommissionDeviceResponse.yaml @@ -0,0 +1,9 @@ +type: object +properties: + status: + type: boolean + message: + type: string +required: + - status + - message diff --git a/src/assets/openapi/components/schemas/TerminalCountsResponse.yaml b/src/assets/openapi/components/schemas/TerminalCountsResponse.yaml new file mode 100644 index 0000000..362d364 --- /dev/null +++ b/src/assets/openapi/components/schemas/TerminalCountsResponse.yaml @@ -0,0 +1,20 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + count: + type: integer + status: + type: string + required: + - count + - status +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/TerminalDecommissionDeviceResponse.yaml b/src/assets/openapi/components/schemas/TerminalDecommissionDeviceResponse.yaml new file mode 100644 index 0000000..87b039a --- /dev/null +++ b/src/assets/openapi/components/schemas/TerminalDecommissionDeviceResponse.yaml @@ -0,0 +1,9 @@ +type: object +properties: + status: + type: boolean + message: + type: string +required: + - status + - message diff --git a/src/assets/openapi/components/schemas/TerminalGetResponse.yaml b/src/assets/openapi/components/schemas/TerminalGetResponse.yaml new file mode 100644 index 0000000..c2ca8e0 --- /dev/null +++ b/src/assets/openapi/components/schemas/TerminalGetResponse.yaml @@ -0,0 +1,48 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + serial_number: + type: string + device_make: + type: string + nullable: true + terminal_id: + type: string + integration: + type: integer + domain: + type: string + name: + type: string + nullable: true + address: + type: string + nullable: true + status: + type: string + split_code: + type: string + nullable: true + required: + - id + - serial_number + - device_make + - terminal_id + - integration + - domain + - name + - address + - status + - split_code +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/TerminalGetStatusResponse.yaml b/src/assets/openapi/components/schemas/TerminalGetStatusResponse.yaml new file mode 100644 index 0000000..b97eb88 --- /dev/null +++ b/src/assets/openapi/components/schemas/TerminalGetStatusResponse.yaml @@ -0,0 +1,20 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + online: + type: boolean + available: + type: boolean + required: + - online + - available +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/TerminalListsResponse.yaml b/src/assets/openapi/components/schemas/TerminalListsResponse.yaml new file mode 100644 index 0000000..b0b42ea --- /dev/null +++ b/src/assets/openapi/components/schemas/TerminalListsResponse.yaml @@ -0,0 +1,31 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./TerminalListsResponseArray.yaml + meta: + type: object + properties: + next: + type: string + nullable: true + previous: + type: string + nullable: true + perPage: + type: integer + required: + - next + - previous + - perPage + additionalProperties: false +required: + - status + - message + - data + - meta diff --git a/src/assets/openapi/components/schemas/TerminalListsResponseArray.yaml b/src/assets/openapi/components/schemas/TerminalListsResponseArray.yaml new file mode 100644 index 0000000..10d3037 --- /dev/null +++ b/src/assets/openapi/components/schemas/TerminalListsResponseArray.yaml @@ -0,0 +1,34 @@ +type: object +properties: + id: + type: integer + serial_number: + type: string + nullable: true + device_make: + type: string + nullable: true + terminal_id: + type: string + integration: + type: integer + domain: + type: string + name: + type: string + nullable: true + address: + type: string + nullable: true + status: + type: string +required: + - id + - serial_number + - device_make + - terminal_id + - integration + - domain + - name + - address + - status diff --git a/src/assets/openapi/components/schemas/TerminalSendEvent.yaml b/src/assets/openapi/components/schemas/TerminalSendEvent.yaml new file mode 100644 index 0000000..0aa0eca --- /dev/null +++ b/src/assets/openapi/components/schemas/TerminalSendEvent.yaml @@ -0,0 +1,27 @@ +type: object +properties: + type: + description: The type of event to push + type: string + enum: + - invoice + - transaction + action: + description: > + The action the Terminal needs to perform. For the invoice type, the action + can either be process or view. + + For the transaction type, the action can either be process or print. + type: string + enum: + - process + - view + - print + data: + $ref: ./TerminalSendEventData.yaml +example: + type: invoice + action: process + data: + id: 7895939 + reference: "4634337895939" \ No newline at end of file diff --git a/src/assets/openapi/components/schemas/TerminalSendEventData.yaml b/src/assets/openapi/components/schemas/TerminalSendEventData.yaml new file mode 100644 index 0000000..81c3898 --- /dev/null +++ b/src/assets/openapi/components/schemas/TerminalSendEventData.yaml @@ -0,0 +1,13 @@ +type: object +description: The parameters needed to perform the specified action +properties: + id: + description: The invoice or transaction ID you want to push to the Terminal + type: integer + format: int64 + reference: + description: The offline_reference from the Payment Request response + type: string +example: + id: 7895939 + reference: "4634337895939" diff --git a/src/assets/openapi/components/schemas/TerminalUpate.yaml b/src/assets/openapi/components/schemas/TerminalUpate.yaml new file mode 100644 index 0000000..ab86c6e --- /dev/null +++ b/src/assets/openapi/components/schemas/TerminalUpate.yaml @@ -0,0 +1,11 @@ +type: object +properties: + name: + description: The new name for the Terminal + type: string + address: + description: The new address for the Terminal + type: string +example: + name: Oreos + address: Somewhere on earth diff --git a/src/assets/openapi/components/schemas/TerminalUpdateResponse.yaml b/src/assets/openapi/components/schemas/TerminalUpdateResponse.yaml new file mode 100644 index 0000000..87b039a --- /dev/null +++ b/src/assets/openapi/components/schemas/TerminalUpdateResponse.yaml @@ -0,0 +1,9 @@ +type: object +properties: + status: + type: boolean + message: + type: string +required: + - status + - message diff --git a/src/assets/openapi/components/schemas/TransactionChargeAuthorization.yaml b/src/assets/openapi/components/schemas/TransactionChargeAuthorization.yaml new file mode 100644 index 0000000..2ee037d --- /dev/null +++ b/src/assets/openapi/components/schemas/TransactionChargeAuthorization.yaml @@ -0,0 +1,54 @@ +type: object +required: + - email + - amount + - authorization_code +properties: + email: + description: Customer's email address + type: string + amount: + description: Amount in the lower denomination of your currency + type: integer + authorization_code: + description: Valid authorization code to charge + type: string + reference: + description: >- + Unique transaction reference. Only -, ., = and alphanumeric characters + allowed. + type: string + currency: + $ref: ./Currency.yaml + split_code: + description: The split code of the transaction split + type: string + split: + $ref: ./SplitCreate.yaml + subaccount: + description: The code for the subaccount that owns the payment + type: string + transaction_charge: + description: |- + A flat fee to charge the subaccount for a transaction. + This overrides the split percentage set when the subaccount was created + type: string + bearer: + description: The bearer of the transaction charge + type: string + enum: + - account + - subaccount + metadata: + description: Stringified JSON object of custom data + type: string + queue: + description: >- + If you are making a scheduled charge call, it is a good idea to queue them + so the processing system does not get overloaded causing transaction + processing errors. + type: boolean +example: + email: jb@email.com + amount: 30000 + authorization_code: AUTH_df1l5ehnym diff --git a/src/assets/openapi/components/schemas/TransactionCheckAuthorizationResponse.yaml b/src/assets/openapi/components/schemas/TransactionCheckAuthorizationResponse.yaml new file mode 100644 index 0000000..fdb6b07 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransactionCheckAuthorizationResponse.yaml @@ -0,0 +1,20 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + amount: + type: integer + currency: + type: string + required: + - amount + - currency +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/TransactionExportResponse.yaml b/src/assets/openapi/components/schemas/TransactionExportResponse.yaml new file mode 100644 index 0000000..839e1c8 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransactionExportResponse.yaml @@ -0,0 +1,20 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + path: + type: string + expiresAt: + type: string + required: + - path + - expiresAt +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/TransactionFetchResponse.yaml b/src/assets/openapi/components/schemas/TransactionFetchResponse.yaml new file mode 100644 index 0000000..c8e0181 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransactionFetchResponse.yaml @@ -0,0 +1,243 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + receipt_number: + nullable: true + amount: + type: integer + message: + nullable: true + gateway_response: + type: string + helpdesk_link: + nullable: true + paid_at: + type: string + created_at: + type: string + channel: + type: string + currency: + type: string + ip_address: + type: string + metadata: + type: object + properties: + custom_fields: + type: array + items: + $ref: ./MetadataCustomFieldsArray.yaml + required: + - custom_fields + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + fees_split: + type: integer + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + nullable: true + receiver_bank_account_number: + nullable: true + receiver_bank: + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + - receiver_bank_account_number + - receiver_bank + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + last_name: + type: string + email: + type: string + customer_code: + type: string + phone: + type: string + metadata: + type: object + risk_action: + type: string + international_format_phone: + type: string + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + type: object + subaccount: + type: object + split: + type: object + order_id: + nullable: true + paidAt: + type: string + createdAt: + type: string + requested_amount: + type: integer + pos_transaction_data: + nullable: true + source: + type: object + properties: + type: + type: string + source: + type: string + identifier: + nullable: true + required: + - type + - source + - identifier + fees_breakdown: + nullable: true + connect: + nullable: true + required: + - id + - domain + - status + - reference + - receipt_number + - amount + - message + - gateway_response + - helpdesk_link + - paid_at + - created_at + - channel + - currency + - ip_address + - metadata + - log + - fees + - fees_split + - authorization + - customer + - plan + - subaccount + - split + - order_id + - paidAt + - createdAt + - requested_amount + - pos_transaction_data + - source + - fees_breakdown + - connect +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/TransactionInitialize.yaml b/src/assets/openapi/components/schemas/TransactionInitialize.yaml new file mode 100644 index 0000000..0ac53f6 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransactionInitialize.yaml @@ -0,0 +1,79 @@ +description: Initialize a transaction +type: object +required: + - email + - amount +properties: + email: + description: Customer's email address + type: string + amount: + description: > + Amount should be in smallest denomination of the currency. + type: integer + currency: + $ref: ./Currency.yaml + reference: + description: >- + Unique transaction reference. Only -, ., = and alphanumeric characters + allowed. + type: string + channels: + description: >- + An array of payment channels to control what channels you want to make + available to the user to make a payment with + type: array + items: + type: string + enum: + - card + - bank + - ussd + - qr + - eft + - mobile_money + - bank_transfer + callback_url: + description: > + Fully qualified url, e.g. https://example.com/ to redirect your customers + to after a successful payment. Use this to override the callback url + provided on the dashboard for this transaction + type: string + plan: + description: > + If transaction is to create a subscription to a predefined plan, provide + plan code here. + + This would invalidate the value provided in amount + type: string + invoice_limit: + description: Number of times to charge customer during subscription to plan + type: integer + split_code: + description: The split code of the transaction split + type: string + split: + $ref: ./SplitCreate.yaml + subaccount: + description: The code for the subaccount that owns the payment + type: string + transaction_charge: + description: | + A flat fee to charge the subaccount for a transaction. + This overrides the split percentage set when the subaccount was created + type: string + bearer: + description: The bearer of the transaction charge + type: string + enum: + - account + - subaccount + label: + description: Used to replace the email address shown on the Checkout + type: string + metadata: + description: JSON object of custom data + type: object +example: + email: test@demo.com + amount: 10000 diff --git a/src/assets/openapi/components/schemas/TransactionInitializeBadRequestModel.yaml b/src/assets/openapi/components/schemas/TransactionInitializeBadRequestModel.yaml new file mode 100644 index 0000000..d8db5d8 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransactionInitializeBadRequestModel.yaml @@ -0,0 +1,34 @@ +type: object +description: > + Error response returned when a transaction is initialized with incorrect + parameters +properties: + status: + type: boolean + description: An indicator for the state of the request + message: + type: string + description: A short description of the error + meta: + $ref: ./ErrorMeta.yaml + type: + type: string + description: A tag to indicate the type of the error + enum: + - validation_error + - processor_error + - api_error + code: + type: string + description: The error code + errorCodeMappingNotFound: + type: boolean + description: An indicator for error mapping for the request +example: + status: false + message: Duplicate Transaction Reference + meta: + nextStep: Try and create the Transaction or Charge with a new reference + type: validation_error + code: duplicate_reference + errorCodeMappingNotFound: false diff --git a/src/assets/openapi/components/schemas/TransactionInitializeResponse.yaml b/src/assets/openapi/components/schemas/TransactionInitializeResponse.yaml new file mode 100644 index 0000000..3be8761 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransactionInitializeResponse.yaml @@ -0,0 +1,23 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + authorization_url: + type: string + access_code: + type: string + reference: + type: string + required: + - authorization_url + - access_code + - reference +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/TransactionListResponse.yaml b/src/assets/openapi/components/schemas/TransactionListResponse.yaml new file mode 100644 index 0000000..4d0d747 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransactionListResponse.yaml @@ -0,0 +1,40 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./TransactionListResponseArray.yaml + meta: + type: object + properties: + total: + type: integer + total_volume: + type: number + skipped: + type: integer + perPage: + anyOf: + - type: string + - type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - total_volume + - skipped + - perPage + - page + - pageCount + additionalProperties: false +required: + - status + - message + - data + - meta diff --git a/src/assets/openapi/components/schemas/TransactionListResponseArray.yaml b/src/assets/openapi/components/schemas/TransactionListResponseArray.yaml new file mode 100644 index 0000000..22f4058 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransactionListResponseArray.yaml @@ -0,0 +1,232 @@ +type: object +properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + amount: + type: integer + message: + nullable: true + gateway_response: + type: string + paid_at: + type: string + nullable: true + created_at: + type: string + channel: + type: string + currency: + type: string + ip_address: + type: string + nullable: true + metadata: + type: object + nullable: true + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + nullable: true + fees_split: + type: integer + nullable: true + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + phone: + type: string + nullable: true + metadata: + type: object + nullable: true + customer_code: + type: string + risk_action: + type: string + required: + - id + - first_name + - last_name + - email + - phone + - metadata + - customer_code + - risk_action + authorization: + type: object + properties: + authorization_code: + type: string + nullable: true + bin: + type: string + nullable: true + last4: + type: string + nullable: true + exp_month: + type: string + nullable: true + exp_year: + type: string + nullable: true + channel: + type: string + nullable: true + card_type: + type: string + nullable: true + bank: + type: string + nullable: true + country_code: + type: string + nullable: true + brand: + type: string + nullable: true + reusable: + type: boolean + signature: + type: string + nullable: true + account_name: + type: string + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + plan: + type: object + split: + type: object + subaccount: + type: object + order_id: + nullable: true + paidAt: + type: string + createdAt: + type: string + requested_amount: + type: integer + source: + type: object + properties: + source: + type: string + type: + type: string + identifier: + nullable: true + entry_point: + type: string + required: + - source + - type + - identifier + - entry_point + nullable: true + connect: + type: object + nullable: true + pos_transaction_data: + nullable: true +required: + - id + - domain + - status + - reference + - amount + - message + - gateway_response + - paid_at + - created_at + - channel + - currency + - ip_address + - metadata + - log + - fees + - fees_split + - customer + - authorization + - plan + - split + - subaccount + - order_id + - paidAt + - createdAt + - requested_amount + - source + - connect + - pos_transaction_data diff --git a/src/assets/openapi/components/schemas/TransactionPartialDebit.yaml b/src/assets/openapi/components/schemas/TransactionPartialDebit.yaml new file mode 100644 index 0000000..a154f80 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransactionPartialDebit.yaml @@ -0,0 +1,32 @@ +type: object +required: + - email + - amount + - authorization_code + - currency +properties: + email: + description: Customer's email address + type: string + amount: + description: Specified in the lowest denomination of your currency + type: integer + format: int64 + authorization_code: + description: Valid authorization code to charge + type: string + currency: + $ref: ./Currency.yaml + at_least: + description: Minimum amount to charge + type: string + reference: + description: >- + Unique transaction reference. Only -, ., = and alphanumeric characters + allowed. + type: string +example: + email: tap@email.com + amount: 40510 + authorization_code: AUTH_df1l5ehnym + currency: ZAR diff --git a/src/assets/openapi/components/schemas/TransactionPartialDebitResponse.yaml b/src/assets/openapi/components/schemas/TransactionPartialDebitResponse.yaml new file mode 100644 index 0000000..6822f83 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransactionPartialDebitResponse.yaml @@ -0,0 +1,184 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + amount: + type: integer + currency: + type: string + transaction_date: + type: string + status: + type: string + reference: + type: string + domain: + type: string + metadata: + type: string + gateway_response: + type: string + message: + nullable: true + channel: + type: string + ip_address: + nullable: true + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + authorization: + type: object + properties: + authorization_code: + type: string + bin: + type: string + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + nullable: true + required: + - authorization_code + - bin + - last4 + - exp_month + - exp_year + - channel + - card_type + - bank + - country_code + - brand + - reusable + - signature + - account_name + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + metadata: + type: object + nullable: true + risk_action: + type: string + international_format_phone: + type: string + nullable: true + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + type: integer + requested_amount: + type: integer + id: + type: integer + required: + - amount + - currency + - transaction_date + - status + - reference + - domain + - gateway_response + - message + - channel + - ip_address + - log + - fees + - authorization + - customer + - metadata + - plan + - requested_amount + - id +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/TransactionPendingTransfersByCurrencyArray.yaml b/src/assets/openapi/components/schemas/TransactionPendingTransfersByCurrencyArray.yaml new file mode 100644 index 0000000..abd9c5d --- /dev/null +++ b/src/assets/openapi/components/schemas/TransactionPendingTransfersByCurrencyArray.yaml @@ -0,0 +1,9 @@ +type: object +properties: + currency: + type: string + amount: + type: integer +required: + - currency + - amount diff --git a/src/assets/openapi/components/schemas/TransactionTimelineResponse.yaml b/src/assets/openapi/components/schemas/TransactionTimelineResponse.yaml new file mode 100644 index 0000000..a62c524 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransactionTimelineResponse.yaml @@ -0,0 +1,12 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/TransactionTotalVolumeByCurrencyArray.yaml b/src/assets/openapi/components/schemas/TransactionTotalVolumeByCurrencyArray.yaml new file mode 100644 index 0000000..abd9c5d --- /dev/null +++ b/src/assets/openapi/components/schemas/TransactionTotalVolumeByCurrencyArray.yaml @@ -0,0 +1,9 @@ +type: object +properties: + currency: + type: string + amount: + type: integer +required: + - currency + - amount diff --git a/src/assets/openapi/components/schemas/TransactionTotalsResponse.yaml b/src/assets/openapi/components/schemas/TransactionTotalsResponse.yaml new file mode 100644 index 0000000..c2d8997 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransactionTotalsResponse.yaml @@ -0,0 +1,33 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + total_transactions: + type: integer + total_volume: + type: integer + total_volume_by_currency: + type: array + items: + $ref: ./TransactionTotalVolumeByCurrencyArray.yaml + pending_transfers: + type: integer + pending_transfers_by_currency: + type: array + items: + $ref: ./TransactionPendingTransfersByCurrencyArray.yaml + required: + - total_transactions + - total_volume + - total_volume_by_currency + - pending_transfers + - pending_transfers_by_currency +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/TransferApprovalGetSettingsResponse.yaml b/src/assets/openapi/components/schemas/TransferApprovalGetSettingsResponse.yaml new file mode 100644 index 0000000..c011f7c --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferApprovalGetSettingsResponse.yaml @@ -0,0 +1,41 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + on_for_test_mode: + type: boolean + on_for_live_mode: + type: boolean + on_when_otp_is_on: + type: boolean + on_for_dashboard_initiated_transfers: + type: boolean + automatically_blacklist_rejected_recipients: + type: boolean + test_approval_url: + type: string + live_approval_url: + type: string + test_contact_email: + type: string + live_contact_email: + type: string + required: + - on_for_test_mode + - on_for_live_mode + - on_when_otp_is_on + - on_for_dashboard_initiated_transfers + - automatically_blacklist_rejected_recipients + - test_approval_url + - live_approval_url + - test_contact_email + - live_contact_email +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/TransferApprovalUpdateSettingsResponse.yaml b/src/assets/openapi/components/schemas/TransferApprovalUpdateSettingsResponse.yaml new file mode 100644 index 0000000..c011f7c --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferApprovalUpdateSettingsResponse.yaml @@ -0,0 +1,41 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + on_for_test_mode: + type: boolean + on_for_live_mode: + type: boolean + on_when_otp_is_on: + type: boolean + on_for_dashboard_initiated_transfers: + type: boolean + automatically_blacklist_rejected_recipients: + type: boolean + test_approval_url: + type: string + live_approval_url: + type: string + test_contact_email: + type: string + live_contact_email: + type: string + required: + - on_for_test_mode + - on_for_live_mode + - on_when_otp_is_on + - on_for_dashboard_initiated_transfers + - automatically_blacklist_rejected_recipients + - test_approval_url + - live_approval_url + - test_contact_email + - live_contact_email +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/TransferBase.yaml b/src/assets/openapi/components/schemas/TransferBase.yaml new file mode 100644 index 0000000..57b650c --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferBase.yaml @@ -0,0 +1,24 @@ +type: object +required: + - amount + - recipient + - reference +properties: + amount: + description: >- + Amount to transfer in kobo if currency is NGN and pesewas if currency is + GHS. + type: integer + recipient: + description: The transfer recipient's code + type: string + reference: + description: > + To ensure idempotency, you need to provide e a unique identifier for the + request. The identifier should be a lowercase alphanumeric string with + only -,_ symbols allowed. + type: string + minimum: 16 + reason: + description: The reason or narration for the transfer. + type: string diff --git a/src/assets/openapi/components/schemas/TransferBulk.yaml b/src/assets/openapi/components/schemas/TransferBulk.yaml new file mode 100644 index 0000000..46aaac3 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferBulk.yaml @@ -0,0 +1,22 @@ +type: object +required: + - source + - transfers +properties: + source: + description: Where should we transfer from? Only balance is allowed for now + type: string + currency: + description: Specify the currency of the transfer. + type: string + default: NGN + enum: + - NGN + - ZAR + - KES + - GHS + transfers: + description: A list of transfer object + type: array + items: + $ref: ./TransferBase.yaml diff --git a/src/assets/openapi/components/schemas/TransferBulkResponse.yaml b/src/assets/openapi/components/schemas/TransferBulkResponse.yaml new file mode 100644 index 0000000..3daa427 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferBulkResponse.yaml @@ -0,0 +1,14 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./TransferBulkResponseArray.yaml +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/TransferBulkResponseArray.yaml b/src/assets/openapi/components/schemas/TransferBulkResponseArray.yaml new file mode 100644 index 0000000..6194284 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferBulkResponseArray.yaml @@ -0,0 +1,21 @@ +type: object +properties: + reference: + type: string + recipient: + type: string + amount: + type: integer + transfer_code: + type: string + currency: + type: string + status: + type: string +required: + - reference + - recipient + - amount + - transfer_code + - currency + - status diff --git a/src/assets/openapi/components/schemas/TransferCreateResponse.yaml b/src/assets/openapi/components/schemas/TransferCreateResponse.yaml new file mode 100644 index 0000000..6289003 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferCreateResponse.yaml @@ -0,0 +1,76 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + transfersessionid: + type: array + items: {} + transfertrials: + type: array + items: {} + domain: + type: string + amount: + type: integer + currency: + type: string + reference: + type: string + source: + type: string + source_details: + nullable: true + reason: + type: string + status: + type: string + failures: + nullable: true + transfer_code: + type: string + titan_code: + nullable: true + transferred_at: + nullable: true + id: + type: integer + integration: + type: integer + request: + type: integer + recipient: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - transfersessionid + - transfertrials + - domain + - amount + - currency + - reference + - source + - source_details + - reason + - status + - failures + - transfer_code + - titan_code + - transferred_at + - id + - integration + - request + - recipient + - createdAt + - updatedAt +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/TransferDisablesOtpResponse.yaml b/src/assets/openapi/components/schemas/TransferDisablesOtpResponse.yaml new file mode 100644 index 0000000..87b039a --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferDisablesOtpResponse.yaml @@ -0,0 +1,9 @@ +type: object +properties: + status: + type: boolean + message: + type: string +required: + - status + - message diff --git a/src/assets/openapi/components/schemas/TransferEnablesOtpResponse.yaml b/src/assets/openapi/components/schemas/TransferEnablesOtpResponse.yaml new file mode 100644 index 0000000..87b039a --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferEnablesOtpResponse.yaml @@ -0,0 +1,9 @@ +type: object +properties: + status: + type: boolean + message: + type: string +required: + - status + - message diff --git a/src/assets/openapi/components/schemas/TransferFeesBreakdownArray.yaml b/src/assets/openapi/components/schemas/TransferFeesBreakdownArray.yaml new file mode 100644 index 0000000..b31abc6 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferFeesBreakdownArray.yaml @@ -0,0 +1,12 @@ +type: object +properties: + amount: + type: string + formula: + nullable: true + type: + type: string +required: + - amount + - formula + - type diff --git a/src/assets/openapi/components/schemas/TransferFetchResponse.yaml b/src/assets/openapi/components/schemas/TransferFetchResponse.yaml new file mode 100644 index 0000000..431f473 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferFetchResponse.yaml @@ -0,0 +1,160 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + amount: + type: integer + createdAt: + type: string + currency: + type: string + domain: + type: string + failures: + nullable: true + id: + type: integer + integration: + type: integer + reason: + type: string + reference: + type: string + source: + type: string + source_details: + nullable: true + status: + type: string + titan_code: + nullable: true + transfer_code: + type: string + request: + type: integer + transferred_at: + nullable: true + updatedAt: + type: string + recipient: + type: object + properties: + active: + type: boolean + createdAt: + type: string + currency: + type: string + description: + type: string + domain: + type: string + email: + type: string + id: + type: integer + integration: + type: integer + metadata: + type: object + nullable: true + name: + type: string + recipient_code: + type: string + type: + type: string + updatedAt: + type: string + is_deleted: + type: boolean + isDeleted: + type: boolean + details: + type: object + properties: + authorization_code: + nullable: true + account_number: + type: string + account_name: + type: string + nullable: true + bank_code: + type: string + bank_name: + type: string + required: + - authorization_code + - account_number + - account_name + - bank_code + - bank_name + required: + - active + - createdAt + - currency + - description + - domain + - email + - id + - integration + - name + - recipient_code + - type + - updatedAt + - is_deleted + - isDeleted + - details + session: + type: object + properties: + provider: + nullable: true + id: + nullable: true + required: + - provider + - id + fee_charged: + type: integer + fees_breakdown: + type: array + items: + $ref: ./TransferFeesBreakdownArray.yaml + nullable: true + gateway_response: + type: string + nullable: true + required: + - amount + - createdAt + - currency + - domain + - failures + - id + - integration + - reason + - reference + - source + - source_details + - status + - titan_code + - transfer_code + - request + - transferred_at + - updatedAt + - recipient + - session + - fee_charged + - fees_breakdown + - gateway_response +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/TransferFetchZAResponse.yaml b/src/assets/openapi/components/schemas/TransferFetchZAResponse.yaml new file mode 100644 index 0000000..694d80c --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferFetchZAResponse.yaml @@ -0,0 +1,180 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + amount: + type: integer + createdAt: + type: string + currency: + type: string + domain: + type: string + failures: + nullable: true + id: + type: integer + integration: + type: integer + reason: + type: string + reference: + type: string + source: + type: string + source_details: + nullable: true + status: + type: string + titan_code: + nullable: true + transfer_code: + type: string + request: + type: integer + transferred_at: + nullable: true + updatedAt: + type: string + recipient: + type: object + properties: + active: + type: boolean + createdAt: + type: string + currency: + type: string + description: + type: string + domain: + type: string + email: + type: string + id: + type: integer + integration: + type: integer + metadata: + type: object + nullable: true + name: + type: string + recipient_code: + type: string + type: + type: string + updatedAt: + type: string + is_deleted: + type: boolean + isDeleted: + type: boolean + details: + type: object + properties: + authorization_code: + nullable: true + account_number: + type: string + account_name: + type: string + nullable: true + bank_code: + type: string + bank_name: + type: string + required: + - authorization_code + - account_number + - account_name + - bank_code + - bank_name + required: + - active + - createdAt + - currency + - description + - domain + - email + - id + - integration + - name + - recipient_code + - type + - updatedAt + - is_deleted + - isDeleted + - details + session: + type: object + properties: + provider: + nullable: true + id: + nullable: true + required: + - provider + - id + fee_charged: + type: integer + fees_breakdown: + type: array + items: + $ref: ./TransferFeesBreakdownArray.yaml + nullable: true + gateway_response: + type: string + nullable: true + transferAttributes: + type: object + properties: + transfer: + type: integer + transfer_type: + type: integer + created_at: + type: string + updated_at: + nullable: true + receipt_number: + nullable: true + required: + - transfer + - transfer_type + - created_at + - updated_at + - receipt_number + required: + - amount + - createdAt + - currency + - domain + - failures + - id + - integration + - reason + - reference + - source + - source_details + - status + - titan_code + - transfer_code + - request + - transferred_at + - updatedAt + - recipient + - session + - fee_charged + - fees_breakdown + - gateway_response + - transferAttributes +required: + - status + - message + - data diff --git a/main/schemas/transfer/Finalize.yaml b/src/assets/openapi/components/schemas/TransferFinalize.yaml similarity index 72% rename from main/schemas/transfer/Finalize.yaml rename to src/assets/openapi/components/schemas/TransferFinalize.yaml index 389109d..1e1dbcf 100644 --- a/main/schemas/transfer/Finalize.yaml +++ b/src/assets/openapi/components/schemas/TransferFinalize.yaml @@ -5,9 +5,7 @@ required: properties: transfer_code: description: The transfer code you want to finalize - type: string - example: TRF_CODE + type: string otp: description: OTP sent to business phone to verify transfer - type: integer - example: 123456 \ No newline at end of file + type: string diff --git a/main/schemas/transfer/DisableOTP.yaml b/src/assets/openapi/components/schemas/TransferFinalizeDisableOTP.yaml similarity index 76% rename from main/schemas/transfer/DisableOTP.yaml rename to src/assets/openapi/components/schemas/TransferFinalizeDisableOTP.yaml index a44a34b..6bb0350 100644 --- a/main/schemas/transfer/DisableOTP.yaml +++ b/src/assets/openapi/components/schemas/TransferFinalizeDisableOTP.yaml @@ -4,5 +4,4 @@ required: properties: otp: description: OTP sent to business phone to verify disabling OTP requirement - type: string - example: "123456" \ No newline at end of file + type: string diff --git a/src/assets/openapi/components/schemas/TransferFinalizeDisablesOtpResponse.yaml b/src/assets/openapi/components/schemas/TransferFinalizeDisablesOtpResponse.yaml new file mode 100644 index 0000000..87b039a --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferFinalizeDisablesOtpResponse.yaml @@ -0,0 +1,9 @@ +type: object +properties: + status: + type: boolean + message: + type: string +required: + - status + - message diff --git a/src/assets/openapi/components/schemas/TransferInitiate.yaml b/src/assets/openapi/components/schemas/TransferInitiate.yaml new file mode 100644 index 0000000..c56fc49 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferInitiate.yaml @@ -0,0 +1,23 @@ +description: Transfer initiation model +allOf: + - $ref: ./TransferBase.yaml + - type: object + required: + - source + - amount + - recipient + - reference + properties: + source: + description: The origin of the funds to send from + type: string + default: balance + currency: + description: Specify the currency of the transfer. + type: string + default: NGN + enum: + - NGN + - ZAR + - KES + - GHS diff --git a/src/assets/openapi/components/schemas/TransferListResponse.yaml b/src/assets/openapi/components/schemas/TransferListResponse.yaml new file mode 100644 index 0000000..6f82465 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferListResponse.yaml @@ -0,0 +1,35 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./TransferListResponseArray.yaml + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false +required: + - status + - message + - data + - meta diff --git a/src/assets/openapi/components/schemas/TransferListResponseArray.yaml b/src/assets/openapi/components/schemas/TransferListResponseArray.yaml new file mode 100644 index 0000000..bc35a65 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferListResponseArray.yaml @@ -0,0 +1,143 @@ +type: object +properties: + amount: + type: integer + createdAt: + type: string + currency: + type: string + domain: + type: string + failures: + nullable: true + id: + type: integer + integration: + type: integer + reason: + type: string + reference: + type: string + source: + type: string + source_details: + nullable: true + status: + type: string + titan_code: + nullable: true + transfer_code: + type: string + request: + type: integer + transferred_at: + nullable: true + updatedAt: + type: string + recipient: + type: object + properties: + active: + type: boolean + createdAt: + type: string + currency: + type: string + description: + type: string + domain: + type: string + email: + type: string + id: + type: integer + integration: + type: integer + metadata: + type: object + nullable: true + name: + type: string + recipient_code: + type: string + type: + type: string + updatedAt: + type: string + is_deleted: + type: boolean + isDeleted: + type: boolean + details: + type: object + properties: + authorization_code: + nullable: true + account_number: + type: string + account_name: + type: string + nullable: true + bank_code: + type: string + bank_name: + type: string + required: + - authorization_code + - account_number + - account_name + - bank_code + - bank_name + required: + - active + - createdAt + - currency + - description + - domain + - email + - id + - integration + - name + - recipient_code + - type + - updatedAt + - is_deleted + - isDeleted + - details + session: + type: object + properties: + provider: + nullable: true + id: + nullable: true + required: + - provider + - id + fee_charged: + type: integer + fees_breakdown: + type: integer + nullable: true +required: + - amount + - createdAt + - currency + - domain + - failures + - id + - integration + - reason + - reference + - source + - source_details + - status + - titan_code + - request + - transfer_code + - transferred_at + - updatedAt + - recipient + - session + - fee_charged + - fees_breakdown diff --git a/src/assets/openapi/components/schemas/TransferRecipientBulk.yaml b/src/assets/openapi/components/schemas/TransferRecipientBulk.yaml new file mode 100644 index 0000000..fc3a769 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferRecipientBulk.yaml @@ -0,0 +1,9 @@ +type: object +required: + - batch +properties: + batch: + description: A list of transfer recipient object. + type: array + items: + $ref: ./TransferRecipientCreate.yaml diff --git a/src/assets/openapi/components/schemas/TransferRecipientBulkCreateResponse.yaml b/src/assets/openapi/components/schemas/TransferRecipientBulkCreateResponse.yaml new file mode 100644 index 0000000..0a56d46 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferRecipientBulkCreateResponse.yaml @@ -0,0 +1,23 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + success: + type: array + items: {} + errors: + type: array + items: + $ref: ./TransferRecipientErrorsArray.yaml + required: + - success + - errors +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/TransferRecipientCreate.yaml b/src/assets/openapi/components/schemas/TransferRecipientCreate.yaml new file mode 100644 index 0000000..9477ba2 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferRecipientCreate.yaml @@ -0,0 +1,34 @@ +type: object +required: + - type + - name + - account_number + - bank_code +properties: + type: + description: Recipient Type + default: nuban + type: string + name: + description: Recipient's name + type: string + account_number: + description: Recipient's bank account number + type: string + bank_code: + description: >- + Recipient's bank code. You can get the list of Bank Codes by calling the + List Banks endpoint + type: string + description: + description: A description for this recipient + type: string + currency: + description: Currency for the account receiving the transfer + type: string + authorization_code: + description: An authorization code from a previous transaction + type: string + metadata: + description: JSON object of custom data + type: object diff --git a/src/assets/openapi/components/schemas/TransferRecipientCreateResponse.yaml b/src/assets/openapi/components/schemas/TransferRecipientCreateResponse.yaml new file mode 100644 index 0000000..97f7cf2 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferRecipientCreateResponse.yaml @@ -0,0 +1,82 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + active: + type: boolean + createdAt: + type: string + currency: + type: string + description: + type: string + domain: + type: string + email: + type: string + id: + type: integer + integration: + type: integer + metadata: + type: object + nullable: true + name: + type: string + recipient_code: + type: string + type: + type: string + updatedAt: + type: string + is_deleted: + type: boolean + isDeleted: + type: boolean + details: + type: object + properties: + authorization_code: + type: string + nullable: true + account_number: + type: string + nullable: true + account_name: + type: string + nullable: true + bank_code: + type: string + bank_name: + type: string + required: + - authorization_code + - account_number + - account_name + - bank_code + - bank_name + required: + - active + - createdAt + - currency + - description + - domain + - email + - id + - integration + - name + - recipient_code + - type + - updatedAt + - is_deleted + - isDeleted + - details +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/TransferRecipientDeleteResponse.yaml b/src/assets/openapi/components/schemas/TransferRecipientDeleteResponse.yaml new file mode 100644 index 0000000..87b039a --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferRecipientDeleteResponse.yaml @@ -0,0 +1,9 @@ +type: object +properties: + status: + type: boolean + message: + type: string +required: + - status + - message diff --git a/src/assets/openapi/components/schemas/TransferRecipientErrorsArray.yaml b/src/assets/openapi/components/schemas/TransferRecipientErrorsArray.yaml new file mode 100644 index 0000000..88f4770 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferRecipientErrorsArray.yaml @@ -0,0 +1,11 @@ +type: object +properties: + message: + type: string + records: + type: array + items: + $ref: ./ErrorRecordsArray.yaml +required: + - message + - records diff --git a/src/assets/openapi/components/schemas/TransferRecipientFetchResponse.yaml b/src/assets/openapi/components/schemas/TransferRecipientFetchResponse.yaml new file mode 100644 index 0000000..7140fc1 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferRecipientFetchResponse.yaml @@ -0,0 +1,81 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + integration: + type: integer + domain: + type: string + type: + type: string + currency: + type: string + name: + type: string + details: + type: object + properties: + account_number: + type: string + nullable: true + account_name: + type: string + nullable: true + bank_code: + type: string + bank_name: + type: string + required: + - account_number + - account_name + - bank_code + - bank_name + description: + type: string + metadata: + type: object + nullable: true + recipient_code: + type: string + active: + type: boolean + recipient_account: + type: string + institution_code: + type: string + email: + type: string + id: + type: integer + isDeleted: + type: boolean + createdAt: + type: string + updatedAt: + type: string + required: + - integration + - domain + - type + - currency + - name + - details + - description + - recipient_code + - active + - recipient_account + - institution_code + - email + - id + - isDeleted + - createdAt + - updatedAt +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/TransferRecipientListResponse.yaml b/src/assets/openapi/components/schemas/TransferRecipientListResponse.yaml new file mode 100644 index 0000000..e980142 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferRecipientListResponse.yaml @@ -0,0 +1,35 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./TransferRecipientListResponseArray.yaml + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + type: integer + page: + type: integer + pageCount: + type: integer + required: + - total + - skipped + - perPage + - page + - pageCount + additionalProperties: false +required: + - status + - message + - data + - meta diff --git a/src/assets/openapi/components/schemas/TransferRecipientListResponseArray.yaml b/src/assets/openapi/components/schemas/TransferRecipientListResponseArray.yaml new file mode 100644 index 0000000..fb98752 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferRecipientListResponseArray.yaml @@ -0,0 +1,72 @@ +type: object +properties: + active: + type: boolean + createdAt: + type: string + currency: + type: string + description: + type: string + domain: + type: string + email: + type: string + nullable: true + id: + type: integer + integration: + type: integer + metadata: + type: object + nullable: true + name: + type: string + recipient_code: + type: string + type: + type: string + updatedAt: + type: string + is_deleted: + type: boolean + isDeleted: + type: boolean + details: + type: object + properties: + authorization_code: + type: string + nullable: true + account_number: + type: string + nullable: true + account_name: + type: string + nullable: true + bank_code: + type: string + bank_name: + type: string + required: + - authorization_code + - account_number + - account_name + - bank_code + - bank_name +required: + - active + - createdAt + - currency + - description + - domain + - email + - id + - integration + - name + - recipient_code + - type + - updatedAt + - is_deleted + - isDeleted + - details diff --git a/main/schemas/transfer-recipient/Update.yaml b/src/assets/openapi/components/schemas/TransferRecipientUpdate.yaml similarity index 88% rename from main/schemas/transfer-recipient/Update.yaml rename to src/assets/openapi/components/schemas/TransferRecipientUpdate.yaml index 2a35f9c..45a269a 100644 --- a/main/schemas/transfer-recipient/Update.yaml +++ b/src/assets/openapi/components/schemas/TransferRecipientUpdate.yaml @@ -5,4 +5,4 @@ properties: type: string email: description: Recipient's email address - type: string \ No newline at end of file + type: string diff --git a/src/assets/openapi/components/schemas/TransferRecipientUpdateResponse.yaml b/src/assets/openapi/components/schemas/TransferRecipientUpdateResponse.yaml new file mode 100644 index 0000000..87b039a --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferRecipientUpdateResponse.yaml @@ -0,0 +1,9 @@ +type: object +properties: + status: + type: boolean + message: + type: string +required: + - status + - message diff --git a/src/assets/openapi/components/schemas/TransferResendOTP.yaml b/src/assets/openapi/components/schemas/TransferResendOTP.yaml new file mode 100644 index 0000000..c698904 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferResendOTP.yaml @@ -0,0 +1,15 @@ +type: object +required: + - transfer_code + - reason +properties: + transfer_code: + description: The transfer code that requires an OTP validation + type: string + reason: + description: Specify the flag to indicate the purpose of the OTP + type: string + default: transfer + enum: + - disable_otp + - transfer diff --git a/src/assets/openapi/components/schemas/TransferResendsOtpResponse.yaml b/src/assets/openapi/components/schemas/TransferResendsOtpResponse.yaml new file mode 100644 index 0000000..87b039a --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferResendsOtpResponse.yaml @@ -0,0 +1,9 @@ +type: object +properties: + status: + type: boolean + message: + type: string +required: + - status + - message diff --git a/src/assets/openapi/components/schemas/TransferVerifyResponse.yaml b/src/assets/openapi/components/schemas/TransferVerifyResponse.yaml new file mode 100644 index 0000000..c980da7 --- /dev/null +++ b/src/assets/openapi/components/schemas/TransferVerifyResponse.yaml @@ -0,0 +1,144 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + amount: + type: integer + createdAt: + type: string + currency: + type: string + domain: + type: string + failures: + nullable: true + id: + type: integer + integration: + type: integer + reason: + type: string + reference: + type: string + source: + type: string + source_details: + nullable: true + status: + type: string + titan_code: + nullable: true + transfer_code: + type: string + transferred_at: + nullable: true + updatedAt: + type: string + recipient: + type: object + properties: + active: + type: boolean + createdAt: + type: string + currency: + type: string + description: + type: string + domain: + type: string + email: + type: string + id: + type: integer + integration: + type: integer + metadata: + type: object + nullable: true + name: + type: string + recipient_code: + type: string + type: + type: string + updatedAt: + type: string + is_deleted: + type: boolean + details: + type: object + properties: + authorization_code: + nullable: true + account_number: + type: string + account_name: + type: string + bank_code: + type: string + bank_name: + type: string + required: + - authorization_code + - account_number + - account_name + - bank_code + - bank_name + required: + - active + - createdAt + - currency + - description + - domain + - email + - id + - integration + - name + - recipient_code + - type + - updatedAt + - is_deleted + - details + session: + type: object + properties: + provider: + nullable: true + id: + nullable: true + required: + - provider + - id + gateway_response: + type: string + nullable: true + required: + - amount + - createdAt + - currency + - domain + - failures + - id + - integration + - reason + - reference + - source + - source_details + - status + - titan_code + - transfer_code + - transferred_at + - updatedAt + - recipient + - session + - gateway_response +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/USSD.yaml b/src/assets/openapi/components/schemas/USSD.yaml new file mode 100644 index 0000000..194aeed --- /dev/null +++ b/src/assets/openapi/components/schemas/USSD.yaml @@ -0,0 +1,11 @@ +type: object +description: The USSD code for the provider to charge +properties: + type: + description: The three-digit USSD code. + type: string + enum: + - '737' + - '919' + - '822' + - '966' diff --git a/src/assets/openapi/components/schemas/VerificationResolveAccountNumberResponse.yaml b/src/assets/openapi/components/schemas/VerificationResolveAccountNumberResponse.yaml new file mode 100644 index 0000000..9405925 --- /dev/null +++ b/src/assets/openapi/components/schemas/VerificationResolveAccountNumberResponse.yaml @@ -0,0 +1,23 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + account_number: + type: string + account_name: + type: string + bank_id: + type: integer + required: + - account_number + - account_name + - bank_id +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/VerificationResolveCardBINResponse.yaml b/src/assets/openapi/components/schemas/VerificationResolveCardBINResponse.yaml new file mode 100644 index 0000000..36bb5e6 --- /dev/null +++ b/src/assets/openapi/components/schemas/VerificationResolveCardBINResponse.yaml @@ -0,0 +1,41 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + bin: + type: string + brand: + type: string + sub_brand: + type: string + country_code: + type: string + country_name: + type: string + card_type: + type: string + bank: + type: string + currency: + type: string + linked_bank_id: + type: integer + required: + - bin + - brand + - sub_brand + - country_code + - country_name + - card_type + - bank + - currency + - linked_bank_id +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/VerificationValidateAccountResponse.yaml b/src/assets/openapi/components/schemas/VerificationValidateAccountResponse.yaml new file mode 100644 index 0000000..58ec18f --- /dev/null +++ b/src/assets/openapi/components/schemas/VerificationValidateAccountResponse.yaml @@ -0,0 +1,35 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + verified: + type: boolean + verificationMessage: + type: string + accountAcceptsDebits: + type: boolean + accountAcceptsCredits: + type: boolean + accountOpenForMoreThanThreeMonths: + type: boolean + accountHolderMatch: + type: boolean + accountOpen: + type: boolean + required: + - verified + - verificationMessage + - accountAcceptsDebits + - accountAcceptsCredits + - accountOpenForMoreThanThreeMonths + - accountHolderMatch + - accountOpen +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/VerifyAccessCodeGHResponse.yaml b/src/assets/openapi/components/schemas/VerifyAccessCodeGHResponse.yaml new file mode 100644 index 0000000..0ba6efc --- /dev/null +++ b/src/assets/openapi/components/schemas/VerifyAccessCodeGHResponse.yaml @@ -0,0 +1,221 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + email: + type: string + merchant_logo: + type: string + merchant_name: + type: string + amount: + type: integer + domain: + type: string + currency: + type: string + id: + type: integer + channels: + type: array + items: + type: string + label: + type: string + original_amount: + type: integer + added_fees: + type: integer + merchant_id: + type: integer + merchant_key: + type: string + cancel_action: + nullable: true + access_code: + type: string + transaction_status: + type: string + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + custom_filters: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + nullable: true + last_name: + nullable: true + email: + type: string + phone: + nullable: true + metadata: + nullable: true + created_at: + type: string + updated_at: + type: string + required: + - id + - first_name + - last_name + - email + - phone + - metadata + - created_at + - updated_at + reference: + type: string + saved_cards: + type: object + properties: + enabled: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - registered + - registered_phone + - registered_calling_code + plan_details: + nullable: true + channel_options: + type: object + properties: + mobile_money: + type: array + items: + $ref: ./ChannelOptionMobileMoneyArray.yaml + required: + - mobile_money + merchant_channel_settings: + type: object + link_config: + type: object + properties: + enabled: + type: boolean + has_linked_accounts: + type: boolean + has_saved_cards: + type: boolean + has_payment_instruments: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - has_linked_accounts + - has_saved_cards + - has_payment_instruments + - registered + - registered_phone + - registered_calling_code + elevy_percentage: + type: number + exchange_rate: + type: object + properties: + id: + type: integer + rate: + type: number + required: + - id + - rate + public_encryption_key: + type: string + whitelabel: + type: boolean + required: + - email + - merchant_logo + - merchant_name + - amount + - domain + - currency + - id + - channels + - label + - original_amount + - added_fees + - merchant_id + - merchant_key + - cancel_action + - access_code + - transaction_status + - log + - custom_filters + - customer + - reference + - saved_cards + - plan_details + - channel_options + - merchant_channel_settings + - link_config + - elevy_percentage + - public_encryption_key + - whitelabel +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/VerifyAccessCodeKEResponse.yaml b/src/assets/openapi/components/schemas/VerifyAccessCodeKEResponse.yaml new file mode 100644 index 0000000..99d5144 --- /dev/null +++ b/src/assets/openapi/components/schemas/VerifyAccessCodeKEResponse.yaml @@ -0,0 +1,218 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + email: + type: string + merchant_logo: + type: string + merchant_name: + type: string + amount: + type: integer + domain: + type: string + currency: + type: string + id: + type: integer + channels: + type: array + items: + type: string + label: + type: string + original_amount: + type: integer + added_fees: + type: integer + merchant_id: + type: integer + merchant_key: + type: string + cancel_action: + nullable: true + access_code: + type: string + transaction_status: + type: string + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + custom_filters: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + nullable: true + last_name: + nullable: true + email: + type: string + phone: + nullable: true + metadata: + nullable: true + created_at: + type: string + updated_at: + type: string + required: + - id + - first_name + - last_name + - email + - phone + - metadata + - created_at + - updated_at + reference: + type: string + saved_cards: + type: object + properties: + enabled: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - registered + - registered_phone + - registered_calling_code + plan_details: + nullable: true + channel_options: + type: object + properties: + mobile_money: + type: array + items: + $ref: ./ChannelOptionMobileMoneyArray.yaml + required: + - mobile_money + merchant_channel_settings: + type: object + link_config: + type: object + properties: + enabled: + type: boolean + has_linked_accounts: + type: boolean + has_saved_cards: + type: boolean + has_payment_instruments: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - has_linked_accounts + - has_saved_cards + - has_payment_instruments + - registered + - registered_phone + - registered_calling_code + exchange_rate: + type: object + properties: + id: + type: integer + rate: + type: number + required: + - id + - rate + public_encryption_key: + type: string + whitelabel: + type: boolean + required: + - email + - merchant_logo + - merchant_name + - amount + - domain + - currency + - id + - channels + - label + - original_amount + - added_fees + - merchant_id + - merchant_key + - cancel_action + - access_code + - transaction_status + - log + - custom_filters + - customer + - reference + - saved_cards + - plan_details + - channel_options + - merchant_channel_settings + - link_config + - public_encryption_key + - whitelabel +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/VerifyAccessCodeNGResponse.yaml b/src/assets/openapi/components/schemas/VerifyAccessCodeNGResponse.yaml new file mode 100644 index 0000000..5917698 --- /dev/null +++ b/src/assets/openapi/components/schemas/VerifyAccessCodeNGResponse.yaml @@ -0,0 +1,237 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + email: + type: string + merchant_logo: + type: string + merchant_name: + type: string + amount: + type: integer + domain: + type: string + currency: + type: string + id: + type: integer + channels: + type: array + items: + type: string + label: + type: string + original_amount: + type: integer + added_fees: + type: integer + merchant_id: + type: integer + merchant_key: + type: string + cancel_action: + nullable: true + access_code: + type: string + transaction_status: + type: string + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + custom_filters: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + nullable: true + last_name: + nullable: true + email: + type: string + phone: + nullable: true + metadata: + nullable: true + created_at: + type: string + updated_at: + type: string + required: + - id + - first_name + - last_name + - email + - phone + - metadata + - created_at + - updated_at + reference: + type: string + saved_cards: + type: object + properties: + enabled: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - registered + - registered_phone + - registered_calling_code + plan_details: + nullable: true + channel_options: + type: object + properties: + bank_transfer: + type: array + items: + type: string + ussd: + type: array + items: + type: string + required: + - bank_transfer + - ussd + merchant_channel_settings: + type: object + properties: + bank_transfer: + type: object + properties: + fulfil_late_notification: + type: boolean + required: + - fulfil_late_notification + required: + - bank_transfer + link_config: + type: object + properties: + enabled: + type: boolean + has_linked_accounts: + type: boolean + has_saved_cards: + type: boolean + has_payment_instruments: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - has_linked_accounts + - has_saved_cards + - has_payment_instruments + - registered + - registered_phone + - registered_calling_code + exchange_rate: + type: object + properties: + id: + type: integer + rate: + type: number + required: + - id + - rate + supported_banks: + type: array + items: + $ref: ./VerifyAccessCodeSupportedBanksArray.yaml + public_encryption_key: + type: string + whitelabel: + type: boolean + required: + - email + - merchant_logo + - merchant_name + - amount + - domain + - currency + - id + - channels + - label + - original_amount + - added_fees + - merchant_id + - merchant_key + - cancel_action + - access_code + - transaction_status + - log + - custom_filters + - customer + - reference + - saved_cards + - plan_details + - channel_options + - merchant_channel_settings + - link_config + - public_encryption_key + - whitelabel +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/VerifyAccessCodeSupportedBanksArray.yaml b/src/assets/openapi/components/schemas/VerifyAccessCodeSupportedBanksArray.yaml new file mode 100644 index 0000000..b6ee688 --- /dev/null +++ b/src/assets/openapi/components/schemas/VerifyAccessCodeSupportedBanksArray.yaml @@ -0,0 +1,18 @@ +type: object +properties: + id: + type: integer + name: + type: string + slug: + type: string + gateway: + type: string + code: + type: string +required: + - id + - name + - slug + - gateway + - code diff --git a/src/assets/openapi/components/schemas/VerifyAccessCodeZAResponse.yaml b/src/assets/openapi/components/schemas/VerifyAccessCodeZAResponse.yaml new file mode 100644 index 0000000..bad2feb --- /dev/null +++ b/src/assets/openapi/components/schemas/VerifyAccessCodeZAResponse.yaml @@ -0,0 +1,223 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + email: + type: string + merchant_logo: + type: string + merchant_name: + type: string + amount: + type: integer + domain: + type: string + currency: + type: string + id: + type: integer + channels: + type: array + items: + type: string + label: + type: string + original_amount: + type: integer + added_fees: + type: integer + merchant_id: + type: integer + merchant_key: + type: string + cancel_action: + nullable: true + access_code: + type: string + transaction_status: + type: string + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + custom_filters: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + nullable: true + last_name: + nullable: true + email: + type: string + phone: + nullable: true + metadata: + nullable: true + created_at: + type: string + updated_at: + type: string + required: + - id + - first_name + - last_name + - email + - phone + - metadata + - created_at + - updated_at + reference: + type: string + saved_cards: + type: object + properties: + enabled: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - registered + - registered_phone + - registered_calling_code + plan_details: + nullable: true + channel_options: + type: object + properties: + qr: + type: array + items: + type: string + eft: + type: array + items: + type: string + required: + - qr + - eft + merchant_channel_settings: + type: object + link_config: + type: object + properties: + enabled: + type: boolean + has_linked_accounts: + type: boolean + has_saved_cards: + type: boolean + has_payment_instruments: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - has_linked_accounts + - has_saved_cards + - has_payment_instruments + - registered + - registered_phone + - registered_calling_code + exchange_rate: + type: object + properties: + id: + type: integer + rate: + type: number + required: + - id + - rate + public_encryption_key: + type: string + whitelabel: + type: boolean + required: + - email + - merchant_logo + - merchant_name + - amount + - domain + - currency + - id + - channels + - label + - original_amount + - added_fees + - merchant_id + - merchant_key + - cancel_action + - access_code + - transaction_status + - log + - custom_filters + - customer + - reference + - saved_cards + - plan_details + - channel_options + - merchant_channel_settings + - link_config + - public_encryption_key + - whitelabel +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/VerifyAuthorizationCardResponse.yaml b/src/assets/openapi/components/schemas/VerifyAuthorizationCardResponse.yaml new file mode 100644 index 0000000..aa1e687 --- /dev/null +++ b/src/assets/openapi/components/schemas/VerifyAuthorizationCardResponse.yaml @@ -0,0 +1,30 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + status: + type: string + advise: + type: string + message: + type: string + authorizationCode: + type: string + customerEmail: + type: string + description: The customer email used to initialize authorization + required: + - status + - advise + - message + - authorizationCode + - customerEmail +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/VerifyAuthorizationDirectdebitResponse.yaml b/src/assets/openapi/components/schemas/VerifyAuthorizationDirectdebitResponse.yaml new file mode 100644 index 0000000..c3dbdc3 --- /dev/null +++ b/src/assets/openapi/components/schemas/VerifyAuthorizationDirectdebitResponse.yaml @@ -0,0 +1,87 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + authorization_code: + type: string + domain: + type: string + active: + type: boolean + last4: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + exp_month: + type: integer + exp_year: + type: integer + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + type: string + customer: + type: object + properties: + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + code: + type: string + email: + type: string + description: The customer email used to initialize the authorization + phone: + type: string + nullable: true + metadata: + type: object + nullable: true + risk_action: + type: string + required: + - first_name + - last_name + - code + - email + - phone + - metadata + - risk_action + required: + - authorization_code + - domain + - active + - last4 + - channel + - card_type + - bank + - exp_month + - exp_year + - country_code + - brand + - reusable + - signature + - account_name + - customer +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/VerifyCodeGHResponse.yaml b/src/assets/openapi/components/schemas/VerifyCodeGHResponse.yaml new file mode 100644 index 0000000..f195878 --- /dev/null +++ b/src/assets/openapi/components/schemas/VerifyCodeGHResponse.yaml @@ -0,0 +1,221 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + email: + type: string + merchant_logo: + type: string + merchant_name: + type: string + amount: + type: integer + domain: + type: string + currency: + type: string + id: + type: integer + channels: + type: array + items: + type: string + label: + type: string + original_amount: + type: integer + added_fees: + type: integer + merchant_id: + type: integer + merchant_key: + type: string + cancel_action: + nullable: true + access_code: + type: string + transaction_status: + type: string + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + custom_filters: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + nullable: true + last_name: + nullable: true + email: + type: string + phone: + nullable: true + metadata: + nullable: true + created_at: + type: string + updated_at: + type: string + required: + - id + - first_name + - last_name + - email + - phone + - metadata + - created_at + - updated_at + reference: + type: string + saved_cards: + type: object + properties: + enabled: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - registered + - registered_phone + - registered_calling_code + plan_details: + nullable: true + channel_options: + type: object + properties: + mobile_money: + type: array + items: + $ref: ./ChannelOptionMobileMoneyArray.yaml + required: + - mobile_money + merchant_channel_settings: + type: object + elevy_percentage: + type: number + link_config: + type: object + properties: + enabled: + type: boolean + has_linked_accounts: + type: boolean + has_saved_cards: + type: boolean + has_payment_instruments: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - has_linked_accounts + - has_saved_cards + - has_payment_instruments + - registered + - registered_phone + - registered_calling_code + exchange_rate: + type: object + properties: + id: + type: integer + rate: + type: number + required: + - id + - rate + public_encryption_key: + type: string + whitelabel: + type: boolean + required: + - email + - merchant_logo + - merchant_name + - amount + - domain + - currency + - id + - channels + - label + - original_amount + - added_fees + - merchant_id + - merchant_key + - cancel_action + - access_code + - transaction_status + - log + - custom_filters + - customer + - reference + - saved_cards + - plan_details + - channel_options + - merchant_channel_settings + - link_config + - elevy_percentage + - public_encryption_key + - whitelabel +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/VerifyCodeKEResponse.yaml b/src/assets/openapi/components/schemas/VerifyCodeKEResponse.yaml new file mode 100644 index 0000000..1566258 --- /dev/null +++ b/src/assets/openapi/components/schemas/VerifyCodeKEResponse.yaml @@ -0,0 +1,243 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + email: + type: string + merchant_logo: + type: string + merchant_name: + type: string + amount: + type: integer + domain: + type: string + currency: + type: string + id: + type: integer + channels: + type: array + items: + type: string + label: + type: string + original_amount: + type: integer + added_fees: + type: integer + merchant_id: + type: integer + merchant_key: + type: string + cancel_action: + nullable: true + access_code: + type: string + transaction_status: + type: string + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + custom_filters: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + nullable: true + last_name: + nullable: true + email: + type: string + phone: + nullable: true + metadata: + nullable: true + created_at: + type: string + updated_at: + type: string + required: + - id + - first_name + - last_name + - email + - phone + - metadata + - created_at + - updated_at + reference: + type: string + saved_cards: + type: object + properties: + enabled: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - registered + - registered_phone + - registered_calling_code + plan_details: + nullable: true + channel_options: + type: object + properties: + mobile_money: + type: array + items: + type: object + properties: + key: + type: string + value: + type: string + isNew: + type: boolean + phoneNumberRegex: + type: string + phoneNumberPlaceholder: + type: string + isChannel: + type: boolean + isMobileMoneyBusiness: + type: boolean + accountNumberRegex: + type: string + required: + - key + - value + - isNew + - phoneNumberRegex + - isChannel + - isMobileMoneyBusiness + additionalProperties: false + required: + - mobile_money + merchant_channel_settings: + type: object + link_config: + type: object + properties: + enabled: + type: boolean + has_linked_accounts: + type: boolean + has_saved_cards: + type: boolean + has_payment_instruments: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - has_linked_accounts + - has_saved_cards + - has_payment_instruments + - registered + - registered_phone + - registered_calling_code + exchange_rate: + type: object + properties: + id: + type: integer + rate: + type: number + required: + - id + - rate + public_encryption_key: + type: string + whitelabel: + type: boolean + required: + - email + - merchant_logo + - merchant_name + - amount + - domain + - currency + - id + - channels + - label + - original_amount + - added_fees + - merchant_id + - merchant_key + - cancel_action + - access_code + - transaction_status + - log + - custom_filters + - customer + - reference + - saved_cards + - plan_details + - channel_options + - merchant_channel_settings + - link_config + - public_encryption_key + - whitelabel +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/VerifyCodeNGResponse.yaml b/src/assets/openapi/components/schemas/VerifyCodeNGResponse.yaml new file mode 100644 index 0000000..429adcb --- /dev/null +++ b/src/assets/openapi/components/schemas/VerifyCodeNGResponse.yaml @@ -0,0 +1,241 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + email: + type: string + merchant_logo: + type: string + merchant_name: + type: string + amount: + type: integer + domain: + type: string + currency: + type: string + id: + type: integer + channels: + type: array + items: + type: string + label: + type: string + original_amount: + type: integer + added_fees: + type: integer + merchant_id: + type: integer + merchant_key: + type: string + cancel_action: + nullable: true + access_code: + type: string + transaction_status: + type: string + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + custom_filters: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + nullable: true + last_name: + nullable: true + email: + type: string + phone: + nullable: true + metadata: + nullable: true + created_at: + type: string + updated_at: + type: string + required: + - id + - first_name + - last_name + - email + - phone + - metadata + - created_at + - updated_at + reference: + type: string + saved_cards: + type: object + properties: + enabled: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - registered + - registered_phone + - registered_calling_code + plan_details: + nullable: true + channel_options: + type: object + properties: + qr: + type: array + items: + type: string + ussd: + type: array + items: + type: string + bank_transfer: + type: array + items: + type: string + required: + - ussd + - bank_transfer + merchant_channel_settings: + type: object + properties: + bank_transfer: + type: object + properties: + fulfil_late_notification: + type: boolean + required: + - fulfil_late_notification + required: + - bank_transfer + exchange_rate: + type: object + properties: + id: + type: integer + rate: + type: number + required: + - id + - rate + link_config: + type: object + properties: + enabled: + type: boolean + has_linked_accounts: + type: boolean + has_saved_cards: + type: boolean + has_payment_instruments: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - has_linked_accounts + - has_saved_cards + - has_payment_instruments + - registered + - registered_phone + - registered_calling_code + supported_banks: + type: array + items: + $ref: ./VerifyCodeSupportedBanksArray.yaml + public_encryption_key: + type: string + whitelabel: + type: boolean + required: + - email + - merchant_logo + - merchant_name + - amount + - domain + - currency + - id + - channels + - label + - original_amount + - added_fees + - merchant_id + - merchant_key + - cancel_action + - access_code + - transaction_status + - log + - custom_filters + - customer + - reference + - saved_cards + - plan_details + - channel_options + - merchant_channel_settings + - link_config + - public_encryption_key + - whitelabel +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/VerifyCodeSupportedBanksArray.yaml b/src/assets/openapi/components/schemas/VerifyCodeSupportedBanksArray.yaml new file mode 100644 index 0000000..b6ee688 --- /dev/null +++ b/src/assets/openapi/components/schemas/VerifyCodeSupportedBanksArray.yaml @@ -0,0 +1,18 @@ +type: object +properties: + id: + type: integer + name: + type: string + slug: + type: string + gateway: + type: string + code: + type: string +required: + - id + - name + - slug + - gateway + - code diff --git a/src/assets/openapi/components/schemas/VerifyCodeZAResponse.yaml b/src/assets/openapi/components/schemas/VerifyCodeZAResponse.yaml new file mode 100644 index 0000000..8f8c039 --- /dev/null +++ b/src/assets/openapi/components/schemas/VerifyCodeZAResponse.yaml @@ -0,0 +1,223 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + email: + type: string + merchant_logo: + type: string + merchant_name: + type: string + amount: + type: integer + domain: + type: string + currency: + type: string + id: + type: integer + channels: + type: array + items: + type: string + label: + type: string + original_amount: + type: integer + added_fees: + type: integer + merchant_id: + type: integer + merchant_key: + type: string + cancel_action: + nullable: true + access_code: + type: string + transaction_status: + type: string + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + custom_filters: + type: string + customer: + type: object + properties: + id: + type: integer + first_name: + nullable: true + last_name: + nullable: true + email: + type: string + phone: + nullable: true + metadata: + nullable: true + created_at: + type: string + updated_at: + type: string + required: + - id + - first_name + - last_name + - email + - phone + - metadata + - created_at + - updated_at + reference: + type: string + saved_cards: + type: object + properties: + enabled: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - registered + - registered_phone + - registered_calling_code + plan_details: + nullable: true + channel_options: + type: object + properties: + qr: + type: array + items: + type: string + eft: + type: array + items: + type: string + required: + - qr + - eft + merchant_channel_settings: + type: object + exchange_rate: + type: object + properties: + id: + type: integer + rate: + type: number + required: + - id + - rate + link_config: + type: object + properties: + enabled: + type: boolean + has_linked_accounts: + type: boolean + has_saved_cards: + type: boolean + has_payment_instruments: + type: boolean + registered: + type: boolean + registered_phone: + nullable: true + registered_calling_code: + nullable: true + required: + - enabled + - has_linked_accounts + - has_saved_cards + - has_payment_instruments + - registered + - registered_phone + - registered_calling_code + public_encryption_key: + type: string + whitelabel: + type: boolean + required: + - email + - merchant_logo + - merchant_name + - amount + - domain + - currency + - id + - channels + - label + - original_amount + - added_fees + - merchant_id + - merchant_key + - cancel_action + - access_code + - transaction_status + - log + - custom_filters + - customer + - reference + - saved_cards + - plan_details + - channel_options + - merchant_channel_settings + - link_config + - public_encryption_key + - whitelabel +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/VerifyMultiSplitResponse.yaml b/src/assets/openapi/components/schemas/VerifyMultiSplitResponse.yaml new file mode 100644 index 0000000..b29e4ff --- /dev/null +++ b/src/assets/openapi/components/schemas/VerifyMultiSplitResponse.yaml @@ -0,0 +1,285 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + receipt_number: + type: string + nullable: true + amount: + type: integer + message: + type: string + nullable: true + gateway_response: + type: string + paid_at: + type: string + nullable: true + created_at: + type: string + channel: + type: string + currency: + type: string + ip_address: + type: string + metadata: + anyOf: + - type: string + - type: object + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + additionalProperties: false + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + nullable: true + fees_split: + nullable: true + authorization: + type: object + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + metadata: + nullable: true + risk_action: + type: string + international_format_phone: + type: string + nullable: true + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + type: string + nullable: true + split: + type: object + properties: + id: + type: integer + name: + type: string + split_code: + type: string + formula: + type: object + properties: + type: + type: string + bearer_type: + type: string + bearer_subaccount: + type: integer + subaccounts: + type: array + items: + $ref: ./FormulaSubaccountsArray.yaml + integration: + type: integer + required: + - type + - bearer_type + - bearer_subaccount + - subaccounts + - integration + shares: + type: object + properties: + paystack: + type: integer + subaccounts: + type: array + items: + $ref: ./ShareSubaccountsArray.yaml + integration: + type: integer + original_share: + type: number + fees: + type: integer + required: + - paystack + - subaccounts + - integration + - original_share + - fees + required: + - id + - name + - split_code + - formula + - shares + order_id: + nullable: true + paidAt: + type: string + nullable: true + createdAt: + type: string + requested_amount: + type: integer + pos_transaction_data: + nullable: true + source: + nullable: true + fees_breakdown: + nullable: true + connect: + nullable: true + transaction_date: + type: string + plan_object: + type: object + properties: + id: + type: integer + name: + type: string + plan_code: + type: string + description: + nullable: true + amount: + type: integer + interval: + type: string + send_invoices: + type: boolean + send_sms: + type: boolean + currency: + type: string + oneOf: + - allOf: + - minProperties: 0 + - {} + - allOf: + - not: + minProperties: 0 + - required: + - id + - name + - plan_code + - description + - amount + - interval + - send_invoices + - send_sms + - currency + additionalProperties: false + subaccount: + type: object + required: + - id + - domain + - status + - reference + - receipt_number + - amount + - message + - gateway_response + - paid_at + - created_at + - channel + - currency + - ip_address + - metadata + - log + - fees + - fees_split + - authorization + - customer + - plan + - split + - order_id + - paidAt + - createdAt + - requested_amount + - pos_transaction_data + - source + - fees_breakdown + - connect + - transaction_date + - plan_object + - subaccount +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/VerifyResponse.yaml b/src/assets/openapi/components/schemas/VerifyResponse.yaml new file mode 100644 index 0000000..16bdecc --- /dev/null +++ b/src/assets/openapi/components/schemas/VerifyResponse.yaml @@ -0,0 +1,261 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + receipt_number: + type: string + nullable: true + amount: + type: integer + message: + type: string + nullable: true + gateway_response: + type: string + paid_at: + type: string + nullable: true + created_at: + type: string + channel: + type: string + currency: + type: string + ip_address: + type: string + metadata: + anyOf: + - type: string + - type: object + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + additionalProperties: false + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + type: integer + nullable: true + fees_split: + nullable: true + authorization: + type: object + properties: + authorization_code: + type: string + bin: + nullable: true + last4: + type: string + exp_month: + type: string + exp_year: + type: string + channel: + type: string + card_type: + type: string + bank: + type: string + country_code: + type: string + brand: + type: string + reusable: + type: boolean + signature: + type: string + account_name: + nullable: true + receiver_bank_account_number: + nullable: true + receiver_bank: + nullable: true + customer: + type: object + properties: + id: + type: integer + first_name: + type: string + nullable: true + last_name: + type: string + nullable: true + email: + type: string + customer_code: + type: string + phone: + type: string + nullable: true + metadata: + nullable: true + risk_action: + type: string + international_format_phone: + type: string + nullable: true + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + type: string + nullable: true + split: + type: object + order_id: + nullable: true + paidAt: + type: string + nullable: true + createdAt: + type: string + requested_amount: + type: integer + pos_transaction_data: + nullable: true + source: + nullable: true + fees_breakdown: + nullable: true + connect: + nullable: true + transaction_date: + type: string + plan_object: + type: object + properties: + id: + type: integer + name: + type: string + plan_code: + type: string + description: + nullable: true + amount: + type: integer + interval: + type: string + send_invoices: + type: boolean + send_sms: + type: boolean + currency: + type: string + oneOf: + - allOf: + - minProperties: 0 + - {} + - allOf: + - not: + minProperties: 0 + - required: + - id + - name + - plan_code + - description + - amount + - interval + - send_invoices + - send_sms + - currency + additionalProperties: false + subaccount: + type: object + required: + - id + - domain + - status + - reference + - receipt_number + - amount + - message + - gateway_response + - paid_at + - created_at + - channel + - currency + - ip_address + - metadata + - log + - fees + - fees_split + - authorization + - customer + - plan + - split + - order_id + - paidAt + - createdAt + - requested_amount + - pos_transaction_data + - source + - fees_breakdown + - connect + - transaction_date + - plan_object + - subaccount +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/VerifySingleSplitResponse.yaml b/src/assets/openapi/components/schemas/VerifySingleSplitResponse.yaml new file mode 100644 index 0000000..1d8037a --- /dev/null +++ b/src/assets/openapi/components/schemas/VerifySingleSplitResponse.yaml @@ -0,0 +1,293 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + domain: + type: string + status: + type: string + reference: + type: string + receipt_number: + nullable: true + amount: + type: integer + message: + nullable: true + gateway_response: + type: string + paid_at: + nullable: true + created_at: + type: string + channel: + type: string + currency: + type: string + ip_address: + type: string + metadata: + anyOf: + - type: string + - type: object + log: + type: object + properties: + start_time: + type: integer + time_spent: + type: integer + attempts: + type: integer + errors: + type: integer + success: + type: boolean + mobile: + type: boolean + input: + type: array + items: {} + history: + type: array + items: + type: object + properties: + type: + type: string + message: + type: string + time: + type: integer + required: + - type + - message + - time + additionalProperties: false + required: + - start_time + - time_spent + - attempts + - errors + - success + - mobile + - input + - history + nullable: true + fees: + nullable: true + fees_split: + type: object + properties: + paystack: + type: integer + integration: + type: number + subaccount: + type: number + params: + type: object + properties: + bearer: + type: string + transaction_charge: + type: string + percentage_charge: + type: string + required: + - bearer + - transaction_charge + - percentage_charge + required: + - paystack + - integration + - subaccount + - params + authorization: + type: object + customer: + type: object + properties: + id: + type: integer + first_name: + nullable: true + last_name: + nullable: true + email: + type: string + customer_code: + type: string + phone: + nullable: true + metadata: + nullable: true + risk_action: + type: string + international_format_phone: + nullable: true + required: + - id + - first_name + - last_name + - email + - customer_code + - phone + - metadata + - risk_action + - international_format_phone + plan: + type: string + nullable: true + split: + type: object + order_id: + nullable: true + paidAt: + nullable: true + createdAt: + type: string + requested_amount: + type: integer + pos_transaction_data: + nullable: true + source: + nullable: true + fees_breakdown: + nullable: true + connect: + nullable: true + transaction_date: + type: string + plan_object: + type: object + properties: + id: + type: integer + name: + type: string + plan_code: + type: string + description: + nullable: true + amount: + type: integer + interval: + type: string + send_invoices: + type: boolean + send_sms: + type: boolean + currency: + type: string + oneOf: + - allOf: + - minProperties: 0 + - {} + - allOf: + - not: + minProperties: 0 + - required: + - id + - name + - plan_code + - description + - amount + - interval + - send_invoices + - send_sms + - currency + additionalProperties: false + subaccount: + type: object + properties: + id: + type: integer + subaccount_code: + type: string + business_name: + type: string + description: + type: string + primary_contact_name: + type: string + primary_contact_email: + type: string + primary_contact_phone: + type: string + metadata: + type: string + percentage_charge: + type: number + settlement_bank: + type: string + bank_id: + type: integer + account_number: + type: string + currency: + type: string + active: + type: boolean + is_verified: + type: boolean + required: + - id + - subaccount_code + - business_name + - description + - primary_contact_name + - primary_contact_email + - primary_contact_phone + - metadata + - percentage_charge + - settlement_bank + - bank_id + - account_number + - currency + - active + - is_verified + required: + - id + - domain + - status + - reference + - receipt_number + - amount + - message + - gateway_response + - paid_at + - created_at + - channel + - currency + - ip_address + - metadata + - log + - fees + - fees_split + - authorization + - customer + - plan + - split + - order_id + - paidAt + - createdAt + - requested_amount + - pos_transaction_data + - source + - fees_breakdown + - connect + - transaction_date + - plan_object + - subaccount +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/VirtualTerminalAddSplitCode.yaml b/src/assets/openapi/components/schemas/VirtualTerminalAddSplitCode.yaml new file mode 100644 index 0000000..48ae6d4 --- /dev/null +++ b/src/assets/openapi/components/schemas/VirtualTerminalAddSplitCode.yaml @@ -0,0 +1,9 @@ +type: object +required: + - split_code +properties: + split_code: + description: The split code to assign to the virtual terminal + type: string +example: + split_code: "SPL_1234567890abcdef" diff --git a/src/assets/openapi/components/schemas/VirtualTerminalAddSplitCodeResponse.yaml b/src/assets/openapi/components/schemas/VirtualTerminalAddSplitCodeResponse.yaml new file mode 100644 index 0000000..eaa670b --- /dev/null +++ b/src/assets/openapi/components/schemas/VirtualTerminalAddSplitCodeResponse.yaml @@ -0,0 +1,61 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + name: + type: string + type: + type: string + currency: + type: string + integration: + type: integer + domain: + type: string + split_code: + type: string + active: + type: boolean + bearer_type: + type: string + bearer_subaccount: + nullable: true + createdAt: + type: string + updatedAt: + type: string + is_dynamic: + type: boolean + subaccounts: + type: array + items: + $ref: ./SplitSubaccountsArray.yaml + total_subaccounts: + type: integer + required: + - id + - name + - type + - currency + - integration + - domain + - split_code + - active + - bearer_type + - bearer_subaccount + - createdAt + - updatedAt + - is_dynamic + - subaccounts + - total_subaccounts +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/VirtualTerminalCreate.yaml b/src/assets/openapi/components/schemas/VirtualTerminalCreate.yaml new file mode 100644 index 0000000..e9a0648 --- /dev/null +++ b/src/assets/openapi/components/schemas/VirtualTerminalCreate.yaml @@ -0,0 +1,35 @@ +type: object +required: + - name + - destinations +properties: + name: + type: string + description: The name of the virtual terminal + destinations: + type: array + description: >- + Array of objects containing recipients for payment notifications for the + Virtual Terminal. + items: + type: object + properties: + target: + type: string + description: The WhatsApp number to receive payment notifications + name: + type: string + description: The name of the associated WhatsApp number + split_code: + type: string + description: Split code to associate with the virtual terminal + metadata: + type: object + description: Additional custom data as key-value pairs +example: + name: Sample Terminal + destinations: + - target: '+2548012345678' + name: John Doe + - target: '+2548098765432' + name: Jane Smith diff --git a/src/assets/openapi/components/schemas/VirtualTerminalCreateResponse.yaml b/src/assets/openapi/components/schemas/VirtualTerminalCreateResponse.yaml new file mode 100644 index 0000000..7d947af --- /dev/null +++ b/src/assets/openapi/components/schemas/VirtualTerminalCreateResponse.yaml @@ -0,0 +1,54 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + name: + type: string + integration: + type: integer + domain: + type: string + code: + type: string + paymentMethods: + type: array + items: {} + active: + type: boolean + metadata: + nullable: true + destinations: + type: array + items: + type: object + properties: + target: + type: string + type: + type: string + name: + type: string + currency: + type: string + required: + - id + - name + - integration + - domain + - code + - paymentMethods + - active + - metadata + - destinations + - currency +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/VirtualTerminalDeactivateResponse.yaml b/src/assets/openapi/components/schemas/VirtualTerminalDeactivateResponse.yaml new file mode 100644 index 0000000..87b039a --- /dev/null +++ b/src/assets/openapi/components/schemas/VirtualTerminalDeactivateResponse.yaml @@ -0,0 +1,9 @@ +type: object +properties: + status: + type: boolean + message: + type: string +required: + - status + - message diff --git a/src/assets/openapi/components/schemas/VirtualTerminalDeleteSplitCode.yaml b/src/assets/openapi/components/schemas/VirtualTerminalDeleteSplitCode.yaml new file mode 100644 index 0000000..48ae6d4 --- /dev/null +++ b/src/assets/openapi/components/schemas/VirtualTerminalDeleteSplitCode.yaml @@ -0,0 +1,9 @@ +type: object +required: + - split_code +properties: + split_code: + description: The split code to assign to the virtual terminal + type: string +example: + split_code: "SPL_1234567890abcdef" diff --git a/src/assets/openapi/components/schemas/VirtualTerminalDeleteSplitCodeResponse.yaml b/src/assets/openapi/components/schemas/VirtualTerminalDeleteSplitCodeResponse.yaml new file mode 100644 index 0000000..87b039a --- /dev/null +++ b/src/assets/openapi/components/schemas/VirtualTerminalDeleteSplitCodeResponse.yaml @@ -0,0 +1,9 @@ +type: object +properties: + status: + type: boolean + message: + type: string +required: + - status + - message diff --git a/src/assets/openapi/components/schemas/VirtualTerminalDestinationAssign.yaml b/src/assets/openapi/components/schemas/VirtualTerminalDestinationAssign.yaml new file mode 100644 index 0000000..e32e7cb --- /dev/null +++ b/src/assets/openapi/components/schemas/VirtualTerminalDestinationAssign.yaml @@ -0,0 +1,27 @@ +type: object +required: + - destinations +properties: + destinations: + type: array + description: >- + Array of objects containing recipients for payment notifications for the + Virtual Terminal. + items: + type: object + properties: + target: + type: string + description: The WhatsApp number to receive payment notifications + name: + type: string + description: The name of the associated WhatsApp number + required: + - target + - name +example: + destinations: + - target: '+2548012345678' + name: John Doe + - target: '+2548098765432' + name: Jane Smith diff --git a/src/assets/openapi/components/schemas/VirtualTerminalDestinationAssignResponse.yaml b/src/assets/openapi/components/schemas/VirtualTerminalDestinationAssignResponse.yaml new file mode 100644 index 0000000..087dc6f --- /dev/null +++ b/src/assets/openapi/components/schemas/VirtualTerminalDestinationAssignResponse.yaml @@ -0,0 +1,37 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + type: object + properties: + integration: + type: integer + target: + type: string + name: + type: string + type: + type: string + id: + type: integer + createdAt: + type: string + updatedAt: + type: string + required: + - integration + - target + - name + - type + - id + - createdAt + - updatedAt +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/VirtualTerminalDestinationUnassign.yaml b/src/assets/openapi/components/schemas/VirtualTerminalDestinationUnassign.yaml new file mode 100644 index 0000000..8ff0ec4 --- /dev/null +++ b/src/assets/openapi/components/schemas/VirtualTerminalDestinationUnassign.yaml @@ -0,0 +1,13 @@ +type: object +properties: + targets: + type: array + description: Array of destination targets to unassign + items: + type: string +required: + - targets +example: + targets: + - '+2548012345678' + - '+2548098765432' diff --git a/src/assets/openapi/components/schemas/VirtualTerminalDestinationUnassignResponse.yaml b/src/assets/openapi/components/schemas/VirtualTerminalDestinationUnassignResponse.yaml new file mode 100644 index 0000000..87b039a --- /dev/null +++ b/src/assets/openapi/components/schemas/VirtualTerminalDestinationUnassignResponse.yaml @@ -0,0 +1,9 @@ +type: object +properties: + status: + type: boolean + message: + type: string +required: + - status + - message diff --git a/src/assets/openapi/components/schemas/VirtualTerminalFetchResponse.yaml b/src/assets/openapi/components/schemas/VirtualTerminalFetchResponse.yaml new file mode 100644 index 0000000..9f622c6 --- /dev/null +++ b/src/assets/openapi/components/schemas/VirtualTerminalFetchResponse.yaml @@ -0,0 +1,59 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + code: + type: string + name: + type: string + integration: + type: integer + domain: + type: string + paymentMethods: + type: array + items: {} + active: + type: boolean + created_at: + type: string + connect_account_id: + nullable: true + destinations: + type: array + items: + type: object + properties: + target: + type: string + type: + type: string + name: + type: string + created_at: + type: string + currency: + type: string + required: + - id + - code + - name + - integration + - domain + - paymentMethods + - active + - created_at + - connect_account_id + - destinations + - currency +required: + - status + - message + - data diff --git a/src/assets/openapi/components/schemas/VirtualTerminalListResponse.yaml b/src/assets/openapi/components/schemas/VirtualTerminalListResponse.yaml new file mode 100644 index 0000000..1306120 --- /dev/null +++ b/src/assets/openapi/components/schemas/VirtualTerminalListResponse.yaml @@ -0,0 +1,25 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: array + items: + $ref: ./VirtualTerminalListResponseArray.yaml + meta: + type: object + properties: + total: + type: integer + skipped: + type: integer + perPage: + anyOf: + - type: string + - type: integer + page: + type: integer + pageCount: + type: integer diff --git a/src/assets/openapi/components/schemas/VirtualTerminalListResponseArray.yaml b/src/assets/openapi/components/schemas/VirtualTerminalListResponseArray.yaml new file mode 100644 index 0000000..8caa56e --- /dev/null +++ b/src/assets/openapi/components/schemas/VirtualTerminalListResponseArray.yaml @@ -0,0 +1,31 @@ +type: object +properties: + id: + type: integer + code: + type: string + name: + type: string + integration: + type: integer + domain: + type: string + paymentMethods: + type: array + items: {} + active: + type: boolean + created_at: + type: string + currency: + type: string +required: + - id + - code + - name + - integration + - domain + - paymentMethods + - active + - created_at + - currency diff --git a/src/assets/openapi/components/schemas/VirtualTerminalUpdate.yaml b/src/assets/openapi/components/schemas/VirtualTerminalUpdate.yaml new file mode 100644 index 0000000..7adad9a --- /dev/null +++ b/src/assets/openapi/components/schemas/VirtualTerminalUpdate.yaml @@ -0,0 +1,9 @@ +type: object +required: + - name +properties: + name: + description: Name of the virtual terminal + type: string +example: + name: "Lagos_Mainland_Zone_1" \ No newline at end of file diff --git a/src/assets/openapi/components/schemas/VirtualTerminalUpdateResponse.yaml b/src/assets/openapi/components/schemas/VirtualTerminalUpdateResponse.yaml new file mode 100644 index 0000000..9f622c6 --- /dev/null +++ b/src/assets/openapi/components/schemas/VirtualTerminalUpdateResponse.yaml @@ -0,0 +1,59 @@ +type: object +properties: + status: + type: boolean + message: + type: string + data: + type: object + properties: + id: + type: integer + code: + type: string + name: + type: string + integration: + type: integer + domain: + type: string + paymentMethods: + type: array + items: {} + active: + type: boolean + created_at: + type: string + connect_account_id: + nullable: true + destinations: + type: array + items: + type: object + properties: + target: + type: string + type: + type: string + name: + type: string + created_at: + type: string + currency: + type: string + required: + - id + - code + - name + - integration + - domain + - paymentMethods + - active + - created_at + - connect_account_id + - destinations + - currency +required: + - status + - message + - data diff --git a/src/assets/openapi/openapi.yaml b/src/assets/openapi/openapi.yaml new file mode 100644 index 0000000..58502b6 --- /dev/null +++ b/src/assets/openapi/openapi.yaml @@ -0,0 +1,394 @@ +openapi: 3.0.1 +info: + title: Paystack + description: >- + The OpenAPI specification of the Paystack API that merchants and developers + can harness to build financial solutions in Africa. + version: 1.0.0 + contact: + email: techsupport@paystack.com +servers: + - url: https://api.paystack.co + description: Base API endpoint +security: + - bearerAuth: [] +tags: + - name: Transaction + description: | + A collection of endpoints for managing payments + x-product-name: Transactions + - name: Charge + description: > + A collection of endpoints for configuring and managing the payment + channels when initiating a payment + x-product-name: Charges + - name: Bulk Charge + description: > + A collection of endpoints for creating and managing multiple recurring + payments + x-product-name: Bulk Charges + - name: Subaccount + description: | + A collection of endpoints for creating and managing accounts for sharing a + transaction with + x-product-name: Subaccounts + - name: Split + description: > + A collection of endpoints for spliting a transaction and managing the + splits + x-product-name: Transaction Splits + - name: Terminal + description: > + A collection of endpoints for building delightful in-person payment + experiences + x-product-name: Terminal + - name: Virtual Terminal + description: > + A collection of endpoints for building in-person payments without a + physical terminal + x-product-name: Virtual Terminal + - name: Customer + description: > + A collection of endpoints for creating and managing customers on an + integration + x-product-name: Customers + - name: Direct Debit + description: | + A collection of endpoints for managing Direct Debit + x-product-name: Direct Debit + - name: Dedicated Virtual Account + description: > + A collection of endpoints for creating and managing payment accounts for + customers + x-product-name: Dedicated Virtual Accounts + - name: Apple Pay + description: > + A collection of endpoints for managing application's top-level domain or + subdomain accepting payment via Apple Pay + x-product-name: Apple Pay + - name: Plan + description: | + A collection of endpoints for creating and managing recurring payment + configuration + x-product-name: Plans + - name: Subscription + description: | + A collection of endpoints for creating and managing recurring payments + x-product-name: Subscriptions + - name: Transfer Recipient + description: > + A collection of endpoints for creating and managing beneficiaries that you + send money to + x-product-name: Transfer Recipients + - name: Transfer + description: | + A collection of endpoints for automating sending money to beneficiaries + x-product-name: Transfers + - name: Product + description: | + A collection of endpoints for creating and managing inventories + x-product-name: Products + - name: Storefront + description: | + A collection of endpoints for creating and managing storefronts + x-product-name: Storefronts + - name: Order + description: | + A collection of endpoints for creating and managing orders + x-product-name: Orders + - name: Page + description: | + A collection of endpoints for creating and managing links for the + collection of payment for products + x-product-name: Payment Pages + - name: Payment Request + description: | + A collection of endpoints for managing invoices for the payment of goods + and services + x-product-name: Payment Requests + - name: Settlement + description: | + A collection of endpoints for gaining insights into payouts + x-product-name: Settlements + - name: Balance + description: > + A collection of endpoints gaining insights into the amount on an + integration + x-product-name: Balance + - name: Integration + description: | + A collection of endpoints for managing some settings on an integration + x-product-name: Integration + - name: Refund + description: > + A collection of endpoints for creating and managing transaction + reimbursement + x-product-name: Refunds + - name: Dispute + description: > + A collection of endpoints for managing transactions complaint made by + customers + x-product-name: Disputes + - name: Bank + description: | + A collection of endpoints for managing bank details + x-product-name: Banks + - name: Miscellaneous + description: | + A collection of endpoints that provides utility functions + x-product-name: Miscellaneous +paths: + /transaction/initialize: + $ref: paths/transaction_initialize.yaml + /transaction/charge_authorization: + $ref: paths/transaction_charge_authorization.yaml + /transaction/partial_debit: + $ref: paths/transaction_partial_debit.yaml + /transaction/verify/{reference}: + $ref: paths/transaction_verify_{reference}.yaml + /transaction: + $ref: paths/transaction.yaml + /transaction/{id}: + $ref: paths/transaction_{id}.yaml + /transaction/timeline/{id}: + $ref: paths/transaction_timeline_{id}.yaml + /transaction/totals: + $ref: paths/transaction_totals.yaml + /transaction/export: + $ref: paths/transaction_export.yaml + /charge: + $ref: paths/charge.yaml + /charge/submit_pin: + $ref: paths/charge_submit_pin.yaml + /charge/submit_otp: + $ref: paths/charge_submit_otp.yaml + /charge/submit_phone: + $ref: paths/charge_submit_phone.yaml + /charge/submit_birthday: + $ref: paths/charge_submit_birthday.yaml + /charge/submit_address: + $ref: paths/charge_submit_address.yaml + /charge/{reference}: + $ref: paths/charge_{reference}.yaml + /bulkcharge: + $ref: paths/bulkcharge.yaml + /bulkcharge/{code}: + $ref: paths/bulkcharge_{code}.yaml + /bulkcharge/{code}/charges: + $ref: paths/bulkcharge_{code}_charges.yaml + /bulkcharge/pause/{code}: + $ref: paths/bulkcharge_pause_{code}.yaml + /bulkcharge/resume/{code}: + $ref: paths/bulkcharge_resume_{code}.yaml + /subaccount: + $ref: paths/subaccount.yaml + /subaccount/{code}: + $ref: paths/subaccount_{code}.yaml + /split: + $ref: paths/split.yaml + /split/{id}: + $ref: paths/split_{id}.yaml + /split/{id}/subaccount/add: + $ref: paths/split_{id}_subaccount_add.yaml + /split/{id}/subaccount/remove: + $ref: paths/split_{id}_subaccount_remove.yaml + /terminal/{id}/event: + $ref: paths/terminal_{id}_event.yaml + /terminal/{terminal_id}/event/{event_id}: + $ref: paths/terminal_{terminal_id}_event_{event_id}.yaml + /terminal/{terminal_id}/presence: + $ref: paths/terminal_{terminal_id}_presence.yaml + /terminal: + $ref: paths/terminal.yaml + /terminal/{terminal_id}: + $ref: paths/terminal_{terminal_id}.yaml + /terminal/commission_device: + $ref: paths/terminal_commission_device.yaml + /terminal/decommission_device: + $ref: paths/terminal_decommission_device.yaml + /virtual_terminal: + $ref: paths/virtual_terminal.yaml + /virtual_terminal/{code}: + $ref: paths/virtual_terminal_{code}.yaml + /virtual_terminal/{code}/deactivate: + $ref: paths/virtual_terminal_{code}_deactivate.yaml + /virtual_terminal/{code}/destination/assign: + $ref: paths/virtual_terminal_{code}_destination_assign.yaml + /virtual_terminal/{code}/destination/unassign: + $ref: paths/virtual_terminal_{code}_destination_unassign.yaml + /virtual_terminal/{code}/split_code: + $ref: paths/virtual_terminal_{code}_split_code.yaml + /customer: + $ref: paths/customer.yaml + /customer/{code}: + $ref: paths/customer_{code}.yaml + /customer/set_risk_action: + $ref: paths/customer_set_risk_action.yaml + /customer/{code}/identification: + $ref: paths/customer_{code}_identification.yaml + /customer/authorization/initialize: + $ref: paths/customer_authorization_initialize.yaml + /customer/authorization/verify/{reference}: + $ref: paths/customer_authorization_verify_{reference}.yaml + /customer/authorization/deactivate: + $ref: paths/customer_authorization_deactivate.yaml + /customer/{id}/initialize-direct-debit: + $ref: paths/customer_{id}_initialize-direct-debit.yaml + /customer/{id}/directdebit-activation-charge: + $ref: paths/customer_{id}_directdebit-activation-charge.yaml + /customer/{id}/directdebit-mandate-authorizations: + $ref: paths/customer_{id}_directdebit-mandate-authorizations.yaml + /directdebit/activation-charge: + $ref: paths/directdebit_activation-charge.yaml + /directdebit/mandate-authorizations: + $ref: paths/directdebit_mandate-authorizations.yaml + /dedicated_account: + $ref: paths/dedicated_account.yaml + /dedicated_account/assign: + $ref: paths/dedicated_account_assign.yaml + /dedicated_account/{id}: + $ref: paths/dedicated_account_{id}.yaml + /dedicated_account/requery: + $ref: paths/dedicated_account_requery.yaml + /dedicated_account/split: + $ref: paths/dedicated_account_split.yaml + /dedicated_account/available_providers: + $ref: paths/dedicated_account_available_providers.yaml + /apple-pay/domain: + $ref: paths/apple-pay_domain.yaml + /plan: + $ref: paths/plan.yaml + /plan/{code}: + $ref: paths/plan_{code}.yaml + /subscription: + $ref: paths/subscription.yaml + /subscription/{code}: + $ref: paths/subscription_{code}.yaml + /subscription/disable: + $ref: paths/subscription_disable.yaml + /subscription/enable: + $ref: paths/subscription_enable.yaml + /subscription/{code}/manage/link: + $ref: paths/subscription_{code}_manage_link.yaml + /subscription/{code}/manage/email: + $ref: paths/subscription_{code}_manage_email.yaml + /transferrecipient: + $ref: paths/transferrecipient.yaml + /transferrecipient/bulk: + $ref: paths/transferrecipient_bulk.yaml + /transferrecipient/{code}: + $ref: paths/transferrecipient_{code}.yaml + /transfer: + $ref: paths/transfer.yaml + /transfer/finalize_transfer: + $ref: paths/transfer_finalize_transfer.yaml + /transfer/bulk: + $ref: paths/transfer_bulk.yaml + /transfer/{code}: + $ref: paths/transfer_{code}.yaml + /transfer/verify/{reference}: + $ref: paths/transfer_verify_{reference}.yaml + /transfer/export: + $ref: paths/transfer_export.yaml + /transfer/resend_otp: + $ref: paths/transfer_resend_otp.yaml + /transfer/disable_otp: + $ref: paths/transfer_disable_otp.yaml + /transfer/disable_otp_finalize: + $ref: paths/transfer_disable_otp_finalize.yaml + /transfer/enable_otp: + $ref: paths/transfer_enable_otp.yaml + /product: + $ref: paths/product.yaml + /product/{id}: + $ref: paths/product_{id}.yaml + /storefront: + $ref: paths/storefront.yaml + /storefront/{id}: + $ref: paths/storefront_{id}.yaml + /storefront/verify/{slug}: + $ref: paths/storefront_verify_{slug}.yaml + /storefront/{id}/order: + $ref: paths/storefront_{id}_order.yaml + /storefront/{id}/product: + $ref: paths/storefront_{id}_product.yaml + /storefront/{id}/publish: + $ref: paths/storefront_{id}_publish.yaml + /storefront/{id}/duplicate: + $ref: paths/storefront_{id}_duplicate.yaml + /order: + $ref: paths/order.yaml + /order/{id}: + $ref: paths/order_{id}.yaml + /order/product/{id}: + $ref: paths/order_product_{id}.yaml + /order/{code}/validate: + $ref: paths/order_{code}_validate.yaml + /page: + $ref: paths/page.yaml + /page/{id}: + $ref: paths/page_{id}.yaml + /page/check_slug_availability/{slug}: + $ref: paths/page_check_slug_availability_{slug}.yaml + /page/{id}/product: + $ref: paths/page_{id}_product.yaml + /paymentrequest: + $ref: paths/paymentrequest.yaml + /paymentrequest/{id}: + $ref: paths/paymentrequest_{id}.yaml + /paymentrequest/verify/{id}: + $ref: paths/paymentrequest_verify_{id}.yaml + /paymentrequest/notify/{id}: + $ref: paths/paymentrequest_notify_{id}.yaml + /paymentrequest/totals: + $ref: paths/paymentrequest_totals.yaml + /paymentrequest/finalize/{id}: + $ref: paths/paymentrequest_finalize_{id}.yaml + /paymentrequest/archive/{id}: + $ref: paths/paymentrequest_archive_{id}.yaml + /settlement: + $ref: paths/settlement.yaml + /settlement/{id}/transaction: + $ref: paths/settlement_{id}_transaction.yaml + /balance: + $ref: paths/balance.yaml + /balance/ledger: + $ref: paths/balance_ledger.yaml + /integration/payment_session_timeout: + $ref: paths/integration_payment_session_timeout.yaml + /refund: + $ref: paths/refund.yaml + /refund/{id}: + $ref: paths/refund_{id}.yaml + /dispute: + $ref: paths/dispute.yaml + /dispute/{id}: + $ref: paths/dispute_{id}.yaml + /dispute/{id}/upload_url: + $ref: paths/dispute_{id}_upload_url.yaml + /dispute/export: + $ref: paths/dispute_export.yaml + /dispute/transaction/{id}: + $ref: paths/dispute_transaction_{id}.yaml + /dispute/{id}/resolve: + $ref: paths/dispute_{id}_resolve.yaml + /dispute/{id}/evidence: + $ref: paths/dispute_{id}_evidence.yaml + /bank: + $ref: paths/bank.yaml + /bank/resolve: + $ref: paths/bank_resolve.yaml + /bank/validate: + $ref: paths/bank_validate.yaml + /decision/bin/{bin}: + $ref: paths/decision_bin_{bin}.yaml + /country: + $ref: paths/country.yaml + /address_verification/states: + $ref: paths/address_verification_states.yaml +components: + securitySchemes: + bearerAuth: + type: http + scheme: bearer + description: Secret key in the format sk_domain_xxxxxx diff --git a/src/assets/openapi/paths/address_verification_states.yaml b/src/assets/openapi/paths/address_verification_states.yaml new file mode 100644 index 0000000..e386722 --- /dev/null +++ b/src/assets/openapi/paths/address_verification_states.yaml @@ -0,0 +1,22 @@ +get: + tags: + - Miscellaneous + summary: List States (AVS) + operationId: miscellaneous_avs + description: Get a list of states for a country for address verification + parameters: + - in: query + name: country + description: The country code of the states to list. It is gotten after the charge request + schema: + type: string + example: CA + responses: + '200': + $ref: ../components/responses/MiscellaneousListStatesSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/apple-pay_domain.yaml b/src/assets/openapi/paths/apple-pay_domain.yaml new file mode 100644 index 0000000..cba3ac5 --- /dev/null +++ b/src/assets/openapi/paths/apple-pay_domain.yaml @@ -0,0 +1,85 @@ +post: + tags: + - Apple Pay + summary: Register Domain + description: | + Register a top-level domain or subdomain for your Apple Pay integration. + + > This endpoint can only be called with one domain or subdomain at a time. + operationId: applePay_registerDomain + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/ApplePayParam.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/ApplePayParam.yaml + responses: + '200': + $ref: ../components/responses/ApplePayOkResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error +get: + tags: + - Apple Pay + summary: List Domains + description: Lists all registered domains on your integration. Returns an empty array if no domains have been added. + operationId: applePay_listDomain + parameters: + - name: use_cursor + in: query + description: A flag to indicate if cursor based pagination should be used + schema: + type: boolean + example: true + - name: next + in: query + description: > + An alphanumeric value returned for every cursor based retrieval, used to + retrieve the next set of data + schema: + type: string + - name: previous + in: query + description: > + An alphanumeric value returned for every cursor based retrieval, used to + retrieve the previous set of data + schema: + type: string + responses: + '200': + $ref: ../components/responses/Ok.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error +delete: + tags: + - Apple Pay + summary: Unregister Domain + description: | + Unregister a top-level domain or subdomain previously used for your Apple + Pay integration. + operationId: applePay_unregisterDomain + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/ApplePayParam.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/ApplePayParam.yaml + responses: + '200': + $ref: ../components/responses/Ok.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/balance.yaml b/src/assets/openapi/paths/balance.yaml new file mode 100644 index 0000000..ae9bc5f --- /dev/null +++ b/src/assets/openapi/paths/balance.yaml @@ -0,0 +1,19 @@ +get: + tags: + - Balance + summary: Fetch Balance + operationId: balance_fetch + description: You can only transfer from what you have + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/BalanceCheckResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/main/resources/balance/ledger.yaml b/src/assets/openapi/paths/balance_ledger.yaml similarity index 65% rename from main/resources/balance/ledger.yaml rename to src/assets/openapi/paths/balance_ledger.yaml index 33295bd..39b2ca1 100644 --- a/main/resources/balance/ledger.yaml +++ b/src/assets/openapi/paths/balance_ledger.yaml @@ -27,11 +27,15 @@ get: format: date-time description: The end date responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/BalanceFetchLedgerResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml default: - description: Server error \ No newline at end of file + description: Server error diff --git a/main/resources/verification/bank.yaml b/src/assets/openapi/paths/bank.yaml similarity index 53% rename from main/resources/verification/bank.yaml rename to src/assets/openapi/paths/bank.yaml index 499ff1d..b268427 100644 --- a/main/resources/verification/bank.yaml +++ b/src/assets/openapi/paths/bank.yaml @@ -1,13 +1,20 @@ get: tags: - - Verification - summary: Fetch Banks - operationId: verification_fetchBanks + - Bank + summary: List Banks + operationId: bank_list parameters: - in: query name: country + description: | + The country from which to obtain the list of supported banks. schema: type: string + enum: + - ghana + - kenya + - nigeria + - south africa - in: query name: pay_with_bank_transfer schema: @@ -33,11 +40,11 @@ get: schema: type: string responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' + '200': + $ref: ../components/responses/MiscellaneousListBanksSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml default: - description: Server error \ No newline at end of file + description: Server error diff --git a/src/assets/openapi/paths/bank_resolve.yaml b/src/assets/openapi/paths/bank_resolve.yaml new file mode 100644 index 0000000..299449d --- /dev/null +++ b/src/assets/openapi/paths/bank_resolve.yaml @@ -0,0 +1,25 @@ +get: + tags: + - Bank + summary: Resolve Account Number + operationId: bank_resolveAccountNumber + parameters: + - name: account_number + in: query + schema: + type: integer + example: 22728151 + - name: bank_code + in: query + schema: + type: integer + example: 63 + responses: + '200': + $ref: ../components/responses/VerificationResolveAccountNumberSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/bank_validate.yaml b/src/assets/openapi/paths/bank_validate.yaml new file mode 100644 index 0000000..bf85390 --- /dev/null +++ b/src/assets/openapi/paths/bank_validate.yaml @@ -0,0 +1,20 @@ +post: + tags: + - Bank + summary: Validate Bank Account + operationId: bank_validateAccountNumber + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/BankValidateRequest.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/BankValidateRequest.yaml + responses: + '200': + $ref: ../components/responses/VerificationValidateAccountSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/bulkcharge.yaml b/src/assets/openapi/paths/bulkcharge.yaml new file mode 100644 index 0000000..3f4ab02 --- /dev/null +++ b/src/assets/openapi/paths/bulkcharge.yaml @@ -0,0 +1,68 @@ +post: + tags: + - Bulk Charge + summary: Initiate Bulk Charge + operationId: bulkCharge_initiate + description: Charge multiple customers in batches + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: ../components/schemas/BulkChargeInitiate.yaml + application/x-www-form-urlencoded: + schema: + type: array + items: + $ref: ../components/schemas/BulkChargeInitiate.yaml + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/BulkChargeInitiateResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error +get: + tags: + - Bulk Charge + summary: List Bulk Charge Batches + operationId: bulkCharge_list + description: List all bulk charge batches. + parameters: + - in: query + name: perPage + description: Number of records to fetch per page + schema: + type: integer + - in: query + name: page + description: The offset to retrieve data from + schema: + type: integer + - in: query + name: status + description: Filter by the status of the charges + schema: + type: string + enum: + - active + - paused + - complete + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/BulkChargeListResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/bulkcharge_pause_{code}.yaml b/src/assets/openapi/paths/bulkcharge_pause_{code}.yaml new file mode 100644 index 0000000..758d19d --- /dev/null +++ b/src/assets/openapi/paths/bulkcharge_pause_{code}.yaml @@ -0,0 +1,27 @@ +get: + tags: + - Bulk Charge + summary: Pause Bulk Charge Batch + operationId: bulkCharge_pause + description: Pause the processing of a charge batch + parameters: + - name: code + description: The batch code for the bulk charge you want to pause + in: path + required: true + schema: + type: string + example: "BCH_180tl7oq7cayggh" + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/BulkChargePauseResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/bulkcharge_resume_{code}.yaml b/src/assets/openapi/paths/bulkcharge_resume_{code}.yaml new file mode 100644 index 0000000..480c190 --- /dev/null +++ b/src/assets/openapi/paths/bulkcharge_resume_{code}.yaml @@ -0,0 +1,27 @@ +get: + tags: + - Bulk Charge + summary: Resume Bulk Charge Batch + operationId: bulkCharge_resume + description: Resume the processing of a previously paused charge batch + parameters: + - name: code + description: The batch code for the bulk charge you want to pause + in: path + required: true + schema: + type: string + example: "BCH_180tl7oq7cayggh" + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/BulkChargeResumeResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/bulkcharge_{code}.yaml b/src/assets/openapi/paths/bulkcharge_{code}.yaml new file mode 100644 index 0000000..fbaa366 --- /dev/null +++ b/src/assets/openapi/paths/bulkcharge_{code}.yaml @@ -0,0 +1,29 @@ +parameters: + - name: code + description: The code for the charge whose batches you want to retrieve + in: path + required: true + schema: + type: string + example: "BCH_180tl7oq7cayggh" +get: + tags: + - Bulk Charge + summary: Fetch Bulk Charge Batch + operationId: bulkCharge_fetch + description: | + This endpoint retrieves a specific batch code. It also returns useful information on its progress by + way of the `total_charges` and `pending_charges` attributes. + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/BulkChargeFetchResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/bulkcharge_{code}_charges.yaml b/src/assets/openapi/paths/bulkcharge_{code}_charges.yaml new file mode 100644 index 0000000..724b03f --- /dev/null +++ b/src/assets/openapi/paths/bulkcharge_{code}_charges.yaml @@ -0,0 +1,48 @@ +get: + tags: + - Bulk Charge + summary: List Charges in a Batch + operationId: bulkCharge_charges + description: This endpoint retrieves the charges associated with a specified batch code + parameters: + - name: code + description: An code for the batch whose charges you want to retrieve + in: path + required: true + schema: + type: string + example: "BCH_180tl7oq7cayggh" + - in: query + name: perPage + description: Number of records to fetch per page + schema: + type: integer + - in: query + name: page + description: The offset to retrieve data from + schema: + type: integer + - in: query + name: status + description: Filter by the status of the charges + schema: + type: string + enum: + - success + - failed + - pending + - error + - inactive_authorization + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/BulkChargeFetchBulkBatchChargesResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/charge.yaml b/src/assets/openapi/paths/charge.yaml new file mode 100644 index 0000000..8c02bc5 --- /dev/null +++ b/src/assets/openapi/paths/charge.yaml @@ -0,0 +1,59 @@ +post: + tags: + - Charge + summary: Create Charge + operationId: charge_create + description: Initiate a payment by integrating the payment channel of your choice. + requestBody: + content: + application/json: + schema: + allOf: + - $ref: ../components/schemas/ChargeCreate.yaml + - type: object + properties: + bank: + $ref: ../components/schemas/Bank.yaml + - type: object + properties: + mobile_money: + $ref: ../components/schemas/MobileMoney.yaml + - type: object + properties: + ussd: + $ref: ../components/schemas/USSD.yaml + - type: object + properties: + eft: + $ref: ../components/schemas/EFT.yaml + application/x-www-form-urlencoded: + schema: + allOf: + - $ref: ../components/schemas/ChargeCreate.yaml + - type: object + properties: + bank: + $ref: ../components/schemas/Bank.yaml + - type: object + properties: + mobile_money: + $ref: ../components/schemas/MobileMoney.yaml + - type: object + properties: + ussd: + $ref: ../components/schemas/USSD.yaml + - type: object + properties: + eft: + $ref: ../components/schemas/EFT.yaml + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/ChargeCreateResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/charge_submit_address.yaml b/src/assets/openapi/paths/charge_submit_address.yaml new file mode 100644 index 0000000..ec9c4c4 --- /dev/null +++ b/src/assets/openapi/paths/charge_submit_address.yaml @@ -0,0 +1,21 @@ +post: + tags: + - Charge + summary: Submit Address + operationId: charge_submitAddress + description: Send the details of the customer's address for address verification + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/ChargeSubmitAddress.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/ChargeSubmitAddress.yaml + responses: + '200': + $ref: ../components/responses/Ok.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/charge_submit_birthday.yaml b/src/assets/openapi/paths/charge_submit_birthday.yaml new file mode 100644 index 0000000..c41757a --- /dev/null +++ b/src/assets/openapi/paths/charge_submit_birthday.yaml @@ -0,0 +1,25 @@ +post: + tags: + - Charge + summary: Submit Birthday + operationId: charge_submitBirthday + description: Submit the customer's birthday when requested + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/ChargeSubmitBirthday.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/ChargeSubmitBirthday.yaml + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/ChargeSubmitBirthdayResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/charge_submit_otp.yaml b/src/assets/openapi/paths/charge_submit_otp.yaml new file mode 100644 index 0000000..5262718 --- /dev/null +++ b/src/assets/openapi/paths/charge_submit_otp.yaml @@ -0,0 +1,25 @@ +post: + tags: + - Charge + summary: Submit OTP + operationId: charge_submitOtp + description: Submit OTP to complete a charge + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/ChargeSubmitOTP.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/ChargeSubmitOTP.yaml + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/ChargeSubmitOtpResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/charge_submit_phone.yaml b/src/assets/openapi/paths/charge_submit_phone.yaml new file mode 100644 index 0000000..384b712 --- /dev/null +++ b/src/assets/openapi/paths/charge_submit_phone.yaml @@ -0,0 +1,25 @@ +post: + tags: + - Charge + summary: Submit Phone + operationId: charge_submitPhone + description: Submit phone number when requested + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/ChargeSubmitPhone.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/ChargeSubmitPhone.yaml + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/ChargeSubmitPhoneResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/charge_submit_pin.yaml b/src/assets/openapi/paths/charge_submit_pin.yaml new file mode 100644 index 0000000..a5eb2b7 --- /dev/null +++ b/src/assets/openapi/paths/charge_submit_pin.yaml @@ -0,0 +1,25 @@ +post: + tags: + - Charge + summary: Submit PIN + operationId: charge_submitPin + description: Submit PIN to continue a charge + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/ChargeSubmitPin.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/ChargeSubmitPin.yaml + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/ChargeSubmitPinResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/charge_{reference}.yaml b/src/assets/openapi/paths/charge_{reference}.yaml new file mode 100644 index 0000000..bca5f2e --- /dev/null +++ b/src/assets/openapi/paths/charge_{reference}.yaml @@ -0,0 +1,28 @@ +get: + tags: + - Charge + summary: Check pending charge + operationId: charge_check + description: | + When you get `pending` as a charge status or if there was an exception when calling any of the `/charge` endpoints, wait 10 seconds or more, then make a check to see if its status has changed. Don't call too early as you may get a lot more pending than you should. + parameters: + - name: reference + in: path + required: true + description: The reference of the ongoing transaction + schema: + type: string + example: "5bwib5v6anhe9xa" + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/ChargeCheckPendingResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/country.yaml b/src/assets/openapi/paths/country.yaml new file mode 100644 index 0000000..c7073c8 --- /dev/null +++ b/src/assets/openapi/paths/country.yaml @@ -0,0 +1,14 @@ +get: + tags: + - Miscellaneous + summary: List Countries + operationId: miscellaneous_listCountries + responses: + '200': + $ref: ../components/responses/MiscellaneousListCountriesSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/customer.yaml b/src/assets/openapi/paths/customer.yaml new file mode 100644 index 0000000..6050eae --- /dev/null +++ b/src/assets/openapi/paths/customer.yaml @@ -0,0 +1,86 @@ +post: + tags: + - Customer + summary: Create Customer + operationId: customer_create + description: Create a customer on your integration + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/CustomerCreate.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/CustomerCreate.yaml + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/CustomerCreateResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error +get: + tags: + - Customer + summary: List Customers + operationId: customer_list + description: List customers on your integration + parameters: + - name: use_cursor + description: A flag to indicate if cursor based pagination should be used + in: query + schema: + type: boolean + - name: next + description: > + An alphanumeric value returned for every cursor based retrieval, used to + retrieve the next set of data + in: query + schema: + type: string + - name: previous + description: > + An alphanumeric value returned for every cursor based retrieval, used to + retrieve the previous set of data + in: query + schema: + type: string + - name: from + description: The start date + in: query + schema: + type: string + format: date-time + - name: to + description: The end date + in: query + schema: + type: string + format: date-time + - name: perPage + description: The number of records to fetch per request + in: query + schema: + type: string + - name: page + in: query + description: The offset to retrieve data from + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/CustomerListResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/customer_authorization_deactivate.yaml b/src/assets/openapi/paths/customer_authorization_deactivate.yaml new file mode 100644 index 0000000..066862e --- /dev/null +++ b/src/assets/openapi/paths/customer_authorization_deactivate.yaml @@ -0,0 +1,25 @@ +post: + tags: + - Customer + summary: Deactivate Authorization + operationId: customer_deactivateAuthorization + description: Deactivate an authorization for any payment channel. + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/CustomerDeactivateAuthorization.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/CustomerDeactivateAuthorization.yaml + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/CustomerDeactivateAuthorizationResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/customer_authorization_initialize.yaml b/src/assets/openapi/paths/customer_authorization_initialize.yaml new file mode 100644 index 0000000..5fbafa8 --- /dev/null +++ b/src/assets/openapi/paths/customer_authorization_initialize.yaml @@ -0,0 +1,24 @@ +post: + tags: + - Customer + summary: Initialize Authorization + description: >- + Initiate a request to create a reusable authorization code for recurring + transactions + operationId: customer_initializeAuthorization + requestBody: + required: true + content: + application/json: + schema: + $ref: ../components/schemas/CustomerAuthorizationInitializeRequest.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/CustomerAuthorizationInitializeRequest.yaml + responses: + '200': + $ref: ../components/responses/CustomerAuthorizationInitializeSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/customer_authorization_verify_{reference}.yaml b/src/assets/openapi/paths/customer_authorization_verify_{reference}.yaml new file mode 100644 index 0000000..269a850 --- /dev/null +++ b/src/assets/openapi/paths/customer_authorization_verify_{reference}.yaml @@ -0,0 +1,23 @@ +get: + tags: + - Customer + summary: Verify Authorization + description: Check the status of an authorization request + operationId: customer_verifyAuthorization + parameters: + - name: reference + in: path + description: The reference returned in the initialization response + required: true + schema: + type: string + example: "dfbzfotsrbv4n5s82t4mp5b5mfn51h" + responses: + '200': + $ref: ../components/responses/CustomerAuthorizationVerifySuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/customer_set_risk_action.yaml b/src/assets/openapi/paths/customer_set_risk_action.yaml new file mode 100644 index 0000000..5292bc9 --- /dev/null +++ b/src/assets/openapi/paths/customer_set_risk_action.yaml @@ -0,0 +1,25 @@ +post: + tags: + - Customer + summary: Set Risk Action + description: Set customer's risk action by whitelisting or blacklisting the customer + operationId: customer_riskAction + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/CustomerRiskAction.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/CustomerRiskAction.yaml + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/CustomerWhitelistBlacklistResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/customer_{code}.yaml b/src/assets/openapi/paths/customer_{code}.yaml new file mode 100644 index 0000000..e0950f5 --- /dev/null +++ b/src/assets/openapi/paths/customer_{code}.yaml @@ -0,0 +1,54 @@ +parameters: + - name: code + in: path + required: true + description: The code for the customer gotten from the response of the customer creation + schema: + type: string + example: "CUS_c6wqvwmvwopw4ms" +get: + tags: + - Customer + summary: Fetch Customer + operationId: customer_fetch + description: Get details of a customer on your integration. + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/CustomerFetchResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error +put: + tags: + - Customer + summary: Update Customer + operationId: customer_update + description: Update a customer's details on your integration + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/CustomerUpdate.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/CustomerUpdate.yaml + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/CustomerUpdateResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/customer_{code}_identification.yaml b/src/assets/openapi/paths/customer_{code}_identification.yaml new file mode 100644 index 0000000..d0b17b8 --- /dev/null +++ b/src/assets/openapi/paths/customer_{code}_identification.yaml @@ -0,0 +1,33 @@ +parameters: + - name: code + in: path + required: true + description: The code for the customer gotten from the response of the customer creation + schema: + type: string + example: "CUS_c6wqvwmvwopw4ms" +post: + tags: + - Customer + summary: Validate Customer + operationId: customer_validate + description: Validate a customer's identity + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/CustomerValidate.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/CustomerValidate.yaml + responses: + '202': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/CustomerValidateResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/customer_{id}_directdebit-activation-charge.yaml b/src/assets/openapi/paths/customer_{id}_directdebit-activation-charge.yaml new file mode 100644 index 0000000..25f2483 --- /dev/null +++ b/src/assets/openapi/paths/customer_{id}_directdebit-activation-charge.yaml @@ -0,0 +1,33 @@ +put: + tags: + - Customer + summary: Direct Debit Activation Charge + operationId: customer_directDebitActivationCharge + description: >- + Trigger an activation charge on an inactive mandate on behalf of your + customer + parameters: + - name: id + in: path + required: true + description: The customer ID attached to the authorization + schema: + type: integer + example: 297346561 + requestBody: + content: + application/json: + schema: + $ref: >- + ../components/schemas/CustomerDirectDebitActivationChargeRequest.yaml + application/x-www-form-urlencoded: + schema: + $ref: >- + ../components/schemas/CustomerDirectDebitActivationChargeRequest.yaml + responses: + '200': + $ref: ../components/responses/CustomerDirectDebitActivationChargeSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/customer_{id}_directdebit-mandate-authorizations.yaml b/src/assets/openapi/paths/customer_{id}_directdebit-mandate-authorizations.yaml new file mode 100644 index 0000000..2f6e20a --- /dev/null +++ b/src/assets/openapi/paths/customer_{id}_directdebit-mandate-authorizations.yaml @@ -0,0 +1,21 @@ +get: + tags: + - Customer + summary: Fetch Mandate Authorizations + operationId: customer_fetchMandateAuthorizations + description: Get the list of direct debit mandates associated with a customer + parameters: + - name: id + in: path + required: true + description: The customer ID for the authorizations to fetch + schema: + type: integer + example: 297346561 + responses: + '200': + $ref: ../components/responses/CustomerFetchMandateAuthorizationsSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/customer_{id}_initialize-direct-debit.yaml b/src/assets/openapi/paths/customer_{id}_initialize-direct-debit.yaml new file mode 100644 index 0000000..751785c --- /dev/null +++ b/src/assets/openapi/paths/customer_{id}_initialize-direct-debit.yaml @@ -0,0 +1,31 @@ +parameters: + - name: id + in: path + required: true + description: The ID of the customer to initialize the direct debit for + schema: + type: integer + example: 297346561 +post: + tags: + - Customer + summary: Initialize Direct Debit + operationId: customer_initializeDirectDebit + description: >- + Initialize the process of linking an account to a customer for Direct Debit + transactions + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/CustomerInitializeDirectDebitRequest.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/CustomerInitializeDirectDebitRequest.yaml + responses: + '200': + $ref: ../components/responses/CustomerInitializeDirectDebitSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/decision_bin_{bin}.yaml b/src/assets/openapi/paths/decision_bin_{bin}.yaml new file mode 100644 index 0000000..1d4b770 --- /dev/null +++ b/src/assets/openapi/paths/decision_bin_{bin}.yaml @@ -0,0 +1,20 @@ +get: + tags: + - Miscellaneous + summary: Resolve Card BIN + operationId: miscellaneous_resolveCardBin + parameters: + - name: bin + in: path + required: true + schema: + type: string + responses: + '200': + $ref: ../components/responses/VerificationResolveCardBINSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/dedicated_account.yaml b/src/assets/openapi/paths/dedicated_account.yaml new file mode 100644 index 0000000..83d45f6 --- /dev/null +++ b/src/assets/openapi/paths/dedicated_account.yaml @@ -0,0 +1,89 @@ +post: + tags: + - Dedicated Virtual Account + summary: Create Dedicated Account + operationId: dedicatedAccount_create + description: Create a dedicated virtual account for an existing customer + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/DedicatedVirtualAccountCreate.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/DedicatedVirtualAccountCreate.yaml + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/DedicatedNubanCreateResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error +get: + tags: + - Dedicated Virtual Account + summary: List Dedicated Accounts + operationId: dedicatedAccount_list + description: List dedicated virtual accounts available on your integration. + parameters: + - name: active + in: query + description: Status of the dedicated virtual account + schema: + type: boolean + example: true + - name: customer + in: query + description: The customer's ID + schema: + type: integer + example: 297346561 + - name: currency + in: query + description: The currency of the dedicated virtual account + schema: + type: string + enum: + - NGN + - GHS + - name: provider_slug + in: query + description: The bank's slug in lowercase, without spaces + schema: + type: string + example: "titan-paystack" + - name: bank_id + in: query + description: The bank's ID + schema: + type: string + example: "035" + - name: perPage + in: query + description: The number of records to fetch per request + schema: + type: integer + default: 50 + - name: page + in: query + description: The offset to retrieve data from + schema: + type: integer + default: 1 + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/DedicatedNubanListResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/dedicated_account_assign.yaml b/src/assets/openapi/paths/dedicated_account_assign.yaml new file mode 100644 index 0000000..6246ce2 --- /dev/null +++ b/src/assets/openapi/paths/dedicated_account_assign.yaml @@ -0,0 +1,21 @@ +post: + tags: + - Dedicated Virtual Account + summary: Assign Dedicated Account + operationId: dedicatedAccount_assign + description: With this endpoint, you can create a customer, validate the customer, and assign a DVA to the customer. + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/DedicatedVirtualAccountAssign.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/DedicatedVirtualAccountAssign.yaml + responses: + '200': + $ref: ../components/responses/Ok.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/dedicated_account_available_providers.yaml b/src/assets/openapi/paths/dedicated_account_available_providers.yaml new file mode 100644 index 0000000..680585e --- /dev/null +++ b/src/assets/openapi/paths/dedicated_account_available_providers.yaml @@ -0,0 +1,15 @@ +get: + tags: + - Dedicated Virtual Account + summary: Fetch Bank Providers + operationId: dedicatedAccount_availableProviders + description: Get available bank providers for a dedicated virtual account + responses: + '200': + $ref: ../components/responses/Ok.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/dedicated_account_requery.yaml b/src/assets/openapi/paths/dedicated_account_requery.yaml new file mode 100644 index 0000000..3f4db0b --- /dev/null +++ b/src/assets/openapi/paths/dedicated_account_requery.yaml @@ -0,0 +1,34 @@ +parameters: + - name: account_number + description: Virtual account number to requery + in: query + schema: + type: string + example: "0033322211" + - name: provider_slug + description: The bank's slug in lowercase, without spaces. + in: query + schema: + type: string + example: "titan-paystack" + - name: date + description: The day the transfer was made + in: query + schema: + type: string + format: date-time +get: + tags: + - Dedicated Virtual Account + summary: Requery Dedicated Account + operationId: dedicatedAccount_requery + description: Requery Dedicated Virtual Account for new transactions + responses: + '200': + $ref: ../components/responses/Ok.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/dedicated_account_split.yaml b/src/assets/openapi/paths/dedicated_account_split.yaml new file mode 100644 index 0000000..a739972 --- /dev/null +++ b/src/assets/openapi/paths/dedicated_account_split.yaml @@ -0,0 +1,44 @@ +post: + tags: + - Dedicated Virtual Account + summary: Split Dedicated Account Transaction + operationId: dedicatedAccount_addSplit + description: Split a dedicated virtual account transaction with one or more accounts + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/DedicatedVirtualAccountSplit.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/DedicatedVirtualAccountSplit.yaml + responses: + '200': + $ref: ../components/responses/Ok.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error +delete: + tags: + - Dedicated Virtual Account + summary: Remove Split from Dedicated Account + operationId: dedicatedAccount_removeSplit + description: If you've previously set up split payment for transactions on a dedicated virtual account, you can remove it with this endpoint + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/DedicatedVirtualAccountRemoveSplit.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/DedicatedVirtualAccountRemoveSplit.yaml + responses: + '200': + $ref: ../components/responses/Ok.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/dedicated_account_{id}.yaml b/src/assets/openapi/paths/dedicated_account_{id}.yaml new file mode 100644 index 0000000..3ca0cbb --- /dev/null +++ b/src/assets/openapi/paths/dedicated_account_{id}.yaml @@ -0,0 +1,45 @@ +parameters: + - name: id + in: path + required: true + description: ID of dedicated virtual account + schema: + type: string +get: + tags: + - Dedicated Virtual Account + summary: Fetch Dedicated Account + operationId: dedicatedAccount_fetch + description: Get details of a dedicated virtual account on your integration. + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/DedicatedNubanFetchResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error +delete: + tags: + - Dedicated Virtual Account + summary: Deactivate Dedicated Account + operationId: dedicatedAccount_deactivate + description: Deactivate a dedicated virtual account on your integration. + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/DedicatedNubanDeactivateResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/directdebit_activation-charge.yaml b/src/assets/openapi/paths/directdebit_activation-charge.yaml new file mode 100644 index 0000000..9980f40 --- /dev/null +++ b/src/assets/openapi/paths/directdebit_activation-charge.yaml @@ -0,0 +1,19 @@ +put: + tags: + - Direct Debit + summary: Trigger Activation Charge + description: Trigger activation charge for specified customers + operationId: directdebit_triggerActivationCharge + requestBody: + required: true + content: + application/json: + schema: + $ref: ../components/schemas/DirectDebitActivationChargeRequest.yaml + responses: + '200': + $ref: ../components/responses/DirectDebitActivationChargeSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/directdebit_mandate-authorizations.yaml b/src/assets/openapi/paths/directdebit_mandate-authorizations.yaml new file mode 100644 index 0000000..7a206ec --- /dev/null +++ b/src/assets/openapi/paths/directdebit_mandate-authorizations.yaml @@ -0,0 +1,35 @@ +get: + tags: + - Direct Debit + summary: List Mandate Authorizations + description: Get a list of all the direct debit mandates on your integration + operationId: directdebit_listMandateAuthorizations + parameters: + - name: cursor + in: query + description: >- + The cursor value of the next set of authorizations to fetch. You can get + this from the meta object of the response + schema: + type: string + - name: status + in: query + description: Filter by the authorization status + schema: + type: string + enum: + - pending + - active + - revoked + - name: per_page + in: query + description: The number of authorizations to fetch per request + schema: + type: integer + responses: + '200': + $ref: ../components/responses/CustomerFetchMandateAuthorizationsSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/main/resources/dispute/list.yaml b/src/assets/openapi/paths/dispute.yaml similarity index 70% rename from main/resources/dispute/list.yaml rename to src/assets/openapi/paths/dispute.yaml index f55426a..e9e88c0 100644 --- a/main/resources/dispute/list.yaml +++ b/src/assets/openapi/paths/dispute.yaml @@ -16,14 +16,11 @@ get: type: integer - in: query name: status - description: Dispute Status. + description: >- + Dispute Status. Acceptable values are awaiting-merchant-feedback, + awaiting-bank-feedback, pending, resolved schema: type: string - enum: - - awaiting-merchant-feedback - - awaiting-bank-feedback - - pending - - resolved - in: query name: transaction description: Transaction ID @@ -42,11 +39,11 @@ get: format: date-time description: The end date responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' + '200': + $ref: ../components/responses/DisputeListSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml default: description: Server error diff --git a/main/resources/dispute/export.yaml b/src/assets/openapi/paths/dispute_export.yaml similarity index 74% rename from main/resources/dispute/export.yaml rename to src/assets/openapi/paths/dispute_export.yaml index e9439a1..12b9f24 100644 --- a/main/resources/dispute/export.yaml +++ b/src/assets/openapi/paths/dispute_export.yaml @@ -31,11 +31,11 @@ get: format: date-time description: The end date responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' + '200': + $ref: ../components/responses/DisputeExportSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml default: - description: Server error \ No newline at end of file + description: Server error diff --git a/main/resources/dispute/transaction.yaml b/src/assets/openapi/paths/dispute_transaction_{id}.yaml similarity index 51% rename from main/resources/dispute/transaction.yaml rename to src/assets/openapi/paths/dispute_transaction_{id}.yaml index 2904a57..83785a4 100644 --- a/main/resources/dispute/transaction.yaml +++ b/src/assets/openapi/paths/dispute_transaction_{id}.yaml @@ -11,11 +11,11 @@ get: schema: type: string responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' + '200': + $ref: ../components/responses/DisputeListTransactionSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml default: - description: Server error \ No newline at end of file + description: Server error diff --git a/src/assets/openapi/paths/dispute_{id}.yaml b/src/assets/openapi/paths/dispute_{id}.yaml new file mode 100644 index 0000000..489579e --- /dev/null +++ b/src/assets/openapi/paths/dispute_{id}.yaml @@ -0,0 +1,43 @@ +parameters: + - name: id + description: Dispute ID + in: path + required: true + schema: + type: string +get: + tags: + - Dispute + summary: Fetch Dispute + operationId: dispute_fetch + responses: + '200': + $ref: ../components/responses/DisputeFetchSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error +put: + tags: + - Dispute + summary: Update Dispute + operationId: dispute_update + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/DisputeUpdate.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/DisputeUpdate.yaml + responses: + '200': + $ref: ../components/responses/DisputeUpdateSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/main/resources/dispute/evidence.yaml b/src/assets/openapi/paths/dispute_{id}_evidence.yaml similarity index 55% rename from main/resources/dispute/evidence.yaml rename to src/assets/openapi/paths/dispute_{id}_evidence.yaml index 70d95be..82af031 100644 --- a/main/resources/dispute/evidence.yaml +++ b/src/assets/openapi/paths/dispute_{id}_evidence.yaml @@ -5,12 +5,12 @@ post: operationId: dispute_evidence requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/dispute/Evidence.yaml' application/json: schema: - $ref: '../../schemas/dispute/Evidence.yaml' + $ref: ../components/schemas/DisputeEvidence.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/DisputeEvidence.yaml parameters: - name: id description: Dispute ID @@ -19,9 +19,9 @@ post: schema: type: string responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' + '200': + $ref: ../components/responses/DisputeAddEvidenceSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml default: - description: Server error \ No newline at end of file + description: Server error diff --git a/main/resources/dispute/resolve.yaml b/src/assets/openapi/paths/dispute_{id}_resolve.yaml similarity index 51% rename from main/resources/dispute/resolve.yaml rename to src/assets/openapi/paths/dispute_{id}_resolve.yaml index b80c8f8..a481156 100644 --- a/main/resources/dispute/resolve.yaml +++ b/src/assets/openapi/paths/dispute_{id}_resolve.yaml @@ -12,18 +12,18 @@ put: type: string requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/dispute/Resolve.yaml' application/json: schema: - $ref: '../../schemas/dispute/Resolve.yaml' + $ref: ../components/schemas/DisputeResolve.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/DisputeResolve.yaml responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' + '200': + $ref: ../components/responses/DisputeResolveSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml default: - description: Server error \ No newline at end of file + description: Server error diff --git a/main/resources/dispute/upload-url.yaml b/src/assets/openapi/paths/dispute_{id}_upload_url.yaml similarity index 50% rename from main/resources/dispute/upload-url.yaml rename to src/assets/openapi/paths/dispute_{id}_upload_url.yaml index e0b12f1..772299b 100644 --- a/main/resources/dispute/upload-url.yaml +++ b/src/assets/openapi/paths/dispute_{id}_upload_url.yaml @@ -11,11 +11,11 @@ get: schema: type: string responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' + '200': + $ref: ../components/responses/DisputeUploadURLSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml default: - description: Server error \ No newline at end of file + description: Server error diff --git a/src/assets/openapi/paths/integration_payment_session_timeout.yaml b/src/assets/openapi/paths/integration_payment_session_timeout.yaml new file mode 100644 index 0000000..b9f1968 --- /dev/null +++ b/src/assets/openapi/paths/integration_payment_session_timeout.yaml @@ -0,0 +1,43 @@ +get: + tags: + - Integration + summary: Fetch Payment Session Timeout + operationId: integration_fetchPaymentSessionTimeout + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: >- + ../components/schemas/ControlPanelFetchPaymentSessionTimeoutResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error +put: + tags: + - Integration + summary: Update Payment Session Timeout + operationId: integration_updatePaymentSessionTimeout + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/PaymentSession.yaml + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: >- + ../components/schemas/ControlPanelUpdatePaymentSessionTimeoutResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/order.yaml b/src/assets/openapi/paths/order.yaml new file mode 100644 index 0000000..1eee9de --- /dev/null +++ b/src/assets/openapi/paths/order.yaml @@ -0,0 +1,57 @@ +post: + tags: + - Order + summary: Create Order + operationId: order_create + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/OrderCreate.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/OrderCreate.yaml + responses: + '200': + $ref: ../components/responses/OrderCreateSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error +get: + tags: + - Order + summary: List Orders + operationId: order_list + parameters: + - in: query + name: perPage + schema: + type: integer + description: Number of records to fetch per page + - in: query + name: page + schema: + type: integer + description: The section to retrieve + - in: query + name: from + schema: + type: string + format: date-time + description: The start date + - in: query + name: to + schema: + type: string + format: date-time + description: The end date + responses: + '200': + $ref: ../components/responses/OrderListSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/order_product_{id}.yaml b/src/assets/openapi/paths/order_product_{id}.yaml new file mode 100644 index 0000000..20bb37b --- /dev/null +++ b/src/assets/openapi/paths/order_product_{id}.yaml @@ -0,0 +1,20 @@ +parameters: + - name: id + in: path + required: true + schema: + type: string +get: + tags: + - Order + summary: Fetch Products Order + operationId: order_fetchProducts + responses: + '200': + $ref: ../components/responses/OrderFetchProductSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/order_{code}_validate.yaml b/src/assets/openapi/paths/order_{code}_validate.yaml new file mode 100644 index 0000000..e85fad7 --- /dev/null +++ b/src/assets/openapi/paths/order_{code}_validate.yaml @@ -0,0 +1,20 @@ +parameters: + - name: code + in: path + required: true + schema: + type: string +get: + tags: + - Order + summary: Validate pay for me order + operationId: order_validatePayForMe + responses: + '200': + $ref: ../components/responses/OrderValidateSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/order_{id}.yaml b/src/assets/openapi/paths/order_{id}.yaml new file mode 100644 index 0000000..5b6d1af --- /dev/null +++ b/src/assets/openapi/paths/order_{id}.yaml @@ -0,0 +1,20 @@ +parameters: + - name: id + in: path + required: true + schema: + type: string +get: + tags: + - Order + summary: Fetch Order + operationId: order_fetch + responses: + '200': + $ref: ../components/responses/OrderFetchSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/main/resources/page/index.yaml b/src/assets/openapi/paths/page.yaml similarity index 64% rename from main/resources/page/index.yaml rename to src/assets/openapi/paths/page.yaml index cfc6910..1f14069 100644 --- a/main/resources/page/index.yaml +++ b/src/assets/openapi/paths/page.yaml @@ -5,17 +5,17 @@ post: operationId: page_create requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/page/Create.yaml' application/json: schema: - $ref: '../../schemas/page/Create.yaml' + $ref: ../components/schemas/PageCreate.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/PageCreate.yaml responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' + '200': + $ref: ../components/responses/PageCreateSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml default: description: Server error get: @@ -47,11 +47,11 @@ get: format: date-time description: The end date responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' + '200': + $ref: ../components/responses/PageListSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml default: - description: Server error \ No newline at end of file + description: Server error diff --git a/src/assets/openapi/paths/page_check_slug_availability_{slug}.yaml b/src/assets/openapi/paths/page_check_slug_availability_{slug}.yaml new file mode 100644 index 0000000..69c67cd --- /dev/null +++ b/src/assets/openapi/paths/page_check_slug_availability_{slug}.yaml @@ -0,0 +1,20 @@ +parameters: + - name: slug + in: path + required: true + schema: + type: string +get: + tags: + - Page + summary: Check Slug Availability + operationId: page_checkSlugAvailability + responses: + '200': + $ref: ../components/responses/PageCheckSlugAvailabilitySuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/page_{id}.yaml b/src/assets/openapi/paths/page_{id}.yaml new file mode 100644 index 0000000..55fde57 --- /dev/null +++ b/src/assets/openapi/paths/page_{id}.yaml @@ -0,0 +1,42 @@ +parameters: + - name: id + in: path + required: true + schema: + type: string +get: + tags: + - Page + summary: Fetch Page + operationId: page_fetch + responses: + '200': + $ref: ../components/responses/PageFetchSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error +put: + tags: + - Page + summary: Update Page + operationId: page_update + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/PageUpdate.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/PageUpdate.yaml + responses: + '200': + $ref: ../components/responses/PageUpdateSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/page_{id}_product.yaml b/src/assets/openapi/paths/page_{id}_product.yaml new file mode 100644 index 0000000..ad3bee8 --- /dev/null +++ b/src/assets/openapi/paths/page_{id}_product.yaml @@ -0,0 +1,26 @@ +parameters: + - name: id + in: path + required: true + schema: + type: string +post: + tags: + - Page + summary: Add Products + operationId: page_addProducts + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/PageProduct.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/PageProduct.yaml + responses: + '200': + $ref: ../components/responses/PageAddProductsSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/main/resources/payment-request/index.yaml b/src/assets/openapi/paths/paymentrequest.yaml similarity index 67% rename from main/resources/payment-request/index.yaml rename to src/assets/openapi/paths/paymentrequest.yaml index 53d0a66..db7eb72 100644 --- a/main/resources/payment-request/index.yaml +++ b/src/assets/openapi/paths/paymentrequest.yaml @@ -5,17 +5,17 @@ post: operationId: paymentRequest_create requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/payment-request/Create.yaml' application/json: schema: - $ref: '../../schemas/payment-request/Create.yaml' + $ref: ../components/schemas/PaymentRequestCreate.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/PaymentRequestCreate.yaml responses: - 201: - $ref: '../../responses/created.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' + '200': + $ref: ../components/responses/PaymentRequestCreateSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml default: description: Server error get: @@ -48,7 +48,9 @@ get: name: currency schema: type: string - description: If your integration supports more than one currency, choose the one to filter + description: >- + If your integration supports more than one currency, choose the one to + filter - in: query name: from schema: @@ -62,12 +64,11 @@ get: format: date-time description: The end date responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' + '200': + $ref: ../components/responses/PaymentRequestListSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml default: description: Server error - diff --git a/src/assets/openapi/paths/paymentrequest_archive_{id}.yaml b/src/assets/openapi/paths/paymentrequest_archive_{id}.yaml new file mode 100644 index 0000000..91bb41a --- /dev/null +++ b/src/assets/openapi/paths/paymentrequest_archive_{id}.yaml @@ -0,0 +1,18 @@ +parameters: + - name: id + in: path + required: true + schema: + type: string +post: + tags: + - Payment Request + summary: Archive Payment Request + operationId: paymentRequest_archive + responses: + '200': + $ref: ../components/responses/PaymentRequestArchiveSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/paymentrequest_finalize_{id}.yaml b/src/assets/openapi/paths/paymentrequest_finalize_{id}.yaml new file mode 100644 index 0000000..ba68ce7 --- /dev/null +++ b/src/assets/openapi/paths/paymentrequest_finalize_{id}.yaml @@ -0,0 +1,18 @@ +parameters: + - name: id + in: path + required: true + schema: + type: string +post: + tags: + - Payment Request + summary: Finalize Payment Request + operationId: paymentRequest_finalize + responses: + '200': + $ref: ../components/responses/PaymentRequestFinalizeSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/paymentrequest_notify_{id}.yaml b/src/assets/openapi/paths/paymentrequest_notify_{id}.yaml new file mode 100644 index 0000000..e150d37 --- /dev/null +++ b/src/assets/openapi/paths/paymentrequest_notify_{id}.yaml @@ -0,0 +1,18 @@ +parameters: + - name: id + in: path + required: true + schema: + type: string +post: + tags: + - Payment Request + summary: Send Notification + operationId: paymentRequest_notify + responses: + '200': + $ref: ../components/responses/PaymentRequestSendNotificationSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/paymentrequest_totals.yaml b/src/assets/openapi/paths/paymentrequest_totals.yaml new file mode 100644 index 0000000..1738884 --- /dev/null +++ b/src/assets/openapi/paths/paymentrequest_totals.yaml @@ -0,0 +1,14 @@ +get: + tags: + - Payment Request + summary: Payment Request Total + operationId: paymentRequest_totals + responses: + '200': + $ref: ../components/responses/PaymentRequestTotalSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/paymentrequest_verify_{id}.yaml b/src/assets/openapi/paths/paymentrequest_verify_{id}.yaml new file mode 100644 index 0000000..712b93f --- /dev/null +++ b/src/assets/openapi/paths/paymentrequest_verify_{id}.yaml @@ -0,0 +1,20 @@ +parameters: + - name: id + in: path + required: true + schema: + type: string +get: + tags: + - Payment Request + summary: Verify Payment Request + operationId: paymentRequest_verify + responses: + '200': + $ref: ../components/responses/PaymentRequestVerifySuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/paymentrequest_{id}.yaml b/src/assets/openapi/paths/paymentrequest_{id}.yaml new file mode 100644 index 0000000..acc81a1 --- /dev/null +++ b/src/assets/openapi/paths/paymentrequest_{id}.yaml @@ -0,0 +1,42 @@ +parameters: + - name: id + in: path + required: true + schema: + type: string +get: + tags: + - Payment Request + summary: Fetch Payment Request + operationId: paymentRequest_fetch + responses: + '200': + $ref: ../components/responses/PaymentRequestListSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error +put: + tags: + - Payment Request + summary: Update Payment Request + operationId: paymentRequest_update + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/PaymentRequestUpdate.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/PaymentRequestUpdate.yaml + responses: + '200': + $ref: ../components/responses/PaymentRequestUpdateSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/plan.yaml b/src/assets/openapi/paths/plan.yaml new file mode 100644 index 0000000..3a8f00f --- /dev/null +++ b/src/assets/openapi/paths/plan.yaml @@ -0,0 +1,75 @@ +post: + tags: + - Plan + summary: Create Plan + operationId: plan_create + description: Create a plan for recurring payments + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/PlanCreate.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/PlanCreate.yaml + responses: + '200': + $ref: ../components/responses/PlanCreateSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error +get: + tags: + - Plan + summary: List Plans + operationId: plan_list + description: List all recurring payment plans + parameters: + - in: query + name: perPage + description: Number of records to fetch per page + schema: + type: integer + - in: query + name: page + description: The section to retrieve + schema: + type: integer + - in: query + name: interval + description: Specify interval of the plan + schema: + type: string + enum: + - daily + - weekly + - monthly + - biannually + - annually + - in: query + name: amount + schema: + type: integer + description: The amount on the plans to retrieve + - in: query + name: from + schema: + type: string + format: date-time + description: The start date + - in: query + name: to + schema: + type: string + format: date-time + description: The end date + responses: + '200': + $ref: ../components/responses/PlanListSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/plan_{code}.yaml b/src/assets/openapi/paths/plan_{code}.yaml new file mode 100644 index 0000000..02de7bc --- /dev/null +++ b/src/assets/openapi/paths/plan_{code}.yaml @@ -0,0 +1,45 @@ +parameters: + - name: code + in: path + required: true + description: The plan code you want to fetch + schema: + type: string + example: "PLN_gx2wn530m0i3w3m" +get: + tags: + - Plan + summary: Fetch Plan + operationId: plan_fetch + description: Get the details of a payment plan + responses: + '200': + $ref: ../components/responses/PlanFetchSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error +put: + tags: + - Plan + summary: Update Plan + operationId: plan_update + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/PlanUpdate.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/PlanUpdate.yaml + responses: + '200': + $ref: ../components/responses/PlanUpdateSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/main/resources/product/index.yaml b/src/assets/openapi/paths/product.yaml similarity index 63% rename from main/resources/product/index.yaml rename to src/assets/openapi/paths/product.yaml index 62ce5bf..078a379 100644 --- a/main/resources/product/index.yaml +++ b/src/assets/openapi/paths/product.yaml @@ -5,17 +5,17 @@ post: operationId: product_create requestBody: content: - application/x-www-form-urlencoded: - schema: - $ref: '../../schemas/product/Create.yaml' application/json: schema: - $ref: '../../schemas/product/Create.yaml' + $ref: ../components/schemas/ProductCreate.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/ProductCreate.yaml responses: - 201: - $ref: '../../responses/created.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' + '201': + $ref: ../components/responses/ProductCreateSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml default: description: Server error get: @@ -49,11 +49,11 @@ get: format: date-time description: The end date responses: - 200: - $ref: '../../responses/ok.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' + '200': + $ref: ../components/responses/ProductListsSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml default: - description: Server error \ No newline at end of file + description: Server error diff --git a/src/assets/openapi/paths/product_{id}.yaml b/src/assets/openapi/paths/product_{id}.yaml new file mode 100644 index 0000000..ee16451 --- /dev/null +++ b/src/assets/openapi/paths/product_{id}.yaml @@ -0,0 +1,56 @@ +parameters: + - name: id + in: path + required: true + schema: + type: string +get: + tags: + - Product + summary: Fetch Product + operationId: product_fetch + responses: + '200': + $ref: ../components/responses/ProductFetchSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error +put: + tags: + - Product + summary: Update product + operationId: product_update + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/ProductUpdate.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/ProductUpdate.yaml + responses: + '200': + $ref: ../components/responses/ProductUpdateSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error +delete: + tags: + - Product + summary: Delete Product + operationId: product_delete + responses: + '200': + $ref: ../components/responses/ProductDeleteSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/refund.yaml b/src/assets/openapi/paths/refund.yaml new file mode 100644 index 0000000..8ffcb6a --- /dev/null +++ b/src/assets/openapi/paths/refund.yaml @@ -0,0 +1,57 @@ +post: + tags: + - Refund + summary: Create Refund + operationId: refund_create + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/RefundCreate.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/RefundCreate.yaml + responses: + '200': + $ref: ../components/responses/RefundCreateSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error +get: + tags: + - Refund + summary: List Refunds + operationId: refund_list + parameters: + - in: query + name: perPage + schema: + type: integer + description: Number of records to fetch per page + - in: query + name: page + schema: + type: integer + description: The section to retrieve + - in: query + name: from + schema: + type: string + format: date-time + description: The start date + - in: query + name: to + schema: + type: string + format: date-time + description: The end date + responses: + '200': + $ref: ../components/responses/RefundListSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/refund_{id}.yaml b/src/assets/openapi/paths/refund_{id}.yaml new file mode 100644 index 0000000..94f128a --- /dev/null +++ b/src/assets/openapi/paths/refund_{id}.yaml @@ -0,0 +1,20 @@ +get: + tags: + - Refund + summary: Fetch Refund + operationId: refund_fetch + parameters: + - name: id + in: path + required: true + schema: + type: string + responses: + '200': + $ref: ../components/responses/RefundFetchSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/main/resources/settlement/fetch.yaml b/src/assets/openapi/paths/settlement.yaml similarity index 59% rename from main/resources/settlement/fetch.yaml rename to src/assets/openapi/paths/settlement.yaml index b4188bd..d7e0445 100644 --- a/main/resources/settlement/fetch.yaml +++ b/src/assets/openapi/paths/settlement.yaml @@ -15,11 +15,11 @@ get: type: integer example: 2 responses: - 200: - $ref: '../../responses/created.yaml' - 401: - $ref: '../../responses/unauthorized.yaml' - 404: - $ref: '../../responses/unauthorized.yaml' + '200': + $ref: ../components/responses/Ok.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml default: - description: Server error \ No newline at end of file + description: Server error diff --git a/src/assets/openapi/paths/settlement_{id}_transaction.yaml b/src/assets/openapi/paths/settlement_{id}_transaction.yaml new file mode 100644 index 0000000..bfada86 --- /dev/null +++ b/src/assets/openapi/paths/settlement_{id}_transaction.yaml @@ -0,0 +1,20 @@ +get: + tags: + - Settlement + summary: Settlement Transactions + operationId: settlements_transaction + parameters: + - name: id + in: path + required: true + schema: + type: string + responses: + '200': + $ref: ../components/responses/Ok.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/split.yaml b/src/assets/openapi/paths/split.yaml new file mode 100644 index 0000000..c8b25e3 --- /dev/null +++ b/src/assets/openapi/paths/split.yaml @@ -0,0 +1,83 @@ +post: + tags: + - Split + summary: Create Split + operationId: split_create + description: Create a split configuration for transactions + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/SplitCreate.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/SplitCreate.yaml + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/SplitCreateResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error +get: + tags: + - Split + summary: List Splits + operationId: split_list + description: List the transaction splits available on your integration + parameters: + - in: query + name: subaccount_code + description: Filter by subaccount code + schema: + type: string + example: ACCT_dskvlw3y3dMukmt + - name: name + description: The name of the split + in: query + schema: + type: string + - name: active + description: The status of the split + in: query + schema: + type: boolean + - in: query + name: per_page + schema: + type: integer + description: The number of records to fetch per request + - in: query + name: page + schema: + type: integer + description: The offset to retrieve data from + - in: query + name: from + description: The start date + schema: + type: string + format: date-time + - in: query + name: to + description: The end date + schema: + type: string + format: date-time + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/SplitListResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/split_{id}.yaml b/src/assets/openapi/paths/split_{id}.yaml new file mode 100644 index 0000000..af541ff --- /dev/null +++ b/src/assets/openapi/paths/split_{id}.yaml @@ -0,0 +1,60 @@ +get: + tags: + - Split + summary: Fetch Split + operationId: split_fetch + description: Get details of a split configuration for a transaction + parameters: + - name: id + in: path + description: The ID of the split configuration to fetch + required: true + schema: + type: integer + example: 4896895 + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/SplitFetchResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error +put: + tags: + - Split + summary: Update Split + operationId: split_update + description: Update a split configuration for transactions + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/SplitUpdate.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/SplitUpdate.yaml + parameters: + - name: id + in: path + required: true + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/SplitUpdateResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/split_{id}_subaccount_add.yaml b/src/assets/openapi/paths/split_{id}_subaccount_add.yaml new file mode 100644 index 0000000..8c53f32 --- /dev/null +++ b/src/assets/openapi/paths/split_{id}_subaccount_add.yaml @@ -0,0 +1,33 @@ +post: + tags: + - Split + summary: Add Subaccount to Split + operationId: split_addSubaccount + description: Add a subaccount to a split configuration, or update the share of an existing subaccount + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/SplitSubaccounts.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/SplitSubaccounts.yaml + parameters: + - name: id + in: path + required: true + description: The ID of the split configuration to fetch + schema: + type: integer + example: 4896895 + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/SplitAddUpdateSubaccountResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/split_{id}_subaccount_remove.yaml b/src/assets/openapi/paths/split_{id}_subaccount_remove.yaml new file mode 100644 index 0000000..095b48e --- /dev/null +++ b/src/assets/openapi/paths/split_{id}_subaccount_remove.yaml @@ -0,0 +1,33 @@ +post: + tags: + - Split + summary: Remove Subaccount from split + operationId: split_removeSubaccount + description: Remove a subaccount from a split configuration + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/SplitSubaccounts.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/SplitSubaccounts.yaml + parameters: + - name: id + in: path + description: The ID of the split configuration to fetch + required: true + schema: + type: integer + example: 4896895 + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/SplitRemoveSubaccountResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/storefront.yaml b/src/assets/openapi/paths/storefront.yaml new file mode 100644 index 0000000..555b779 --- /dev/null +++ b/src/assets/openapi/paths/storefront.yaml @@ -0,0 +1,50 @@ +post: + tags: + - Storefront + summary: Create Storefront + operationId: storefront_create + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/StorefrontCreate.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/StorefrontCreate.yaml + responses: + '200': + $ref: ../components/responses/StorefrontCreateSuccess.yaml + '400': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error +get: + tags: + - Storefront + summary: List Storefronts + operationId: storefront_list + parameters: + - name: perPage + in: query + schema: + type: integer + - name: page + in: query + schema: + type: integer + - name: status + in: query + schema: + type: string + enum: + - active + - inactive + responses: + '200': + $ref: ../components/responses/StorefrontListSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/storefront_verify_{slug}.yaml b/src/assets/openapi/paths/storefront_verify_{slug}.yaml new file mode 100644 index 0000000..7c06b6b --- /dev/null +++ b/src/assets/openapi/paths/storefront_verify_{slug}.yaml @@ -0,0 +1,20 @@ +parameters: + - name: slug + in: path + required: true + schema: + type: string +get: + tags: + - Storefront + summary: Verify Storefront Slug + operationId: storefront_verifySlug + responses: + '200': + $ref: ../components/responses/Ok.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/storefront_{id}.yaml b/src/assets/openapi/paths/storefront_{id}.yaml new file mode 100644 index 0000000..36bcaa2 --- /dev/null +++ b/src/assets/openapi/paths/storefront_{id}.yaml @@ -0,0 +1,56 @@ +parameters: + - name: id + in: path + required: true + schema: + type: string +get: + tags: + - Storefront + summary: Fetch Storefront + operationId: storefront_fetch + responses: + '200': + $ref: ../components/responses/StorefrontFetchSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error +put: + tags: + - Storefront + summary: Update Storefront + operationId: storefront_update + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/StorefrontUpdate.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/StorefrontUpdate.yaml + responses: + '200': + $ref: ../components/responses/StorefrontUpdateSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error +delete: + tags: + - Storefront + summary: Delete Storefront + operationId: storefront_delete + responses: + '200': + $ref: ../components/responses/StorefrontDeleteSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/storefront_{id}_duplicate.yaml b/src/assets/openapi/paths/storefront_{id}_duplicate.yaml new file mode 100644 index 0000000..9bc6f65 --- /dev/null +++ b/src/assets/openapi/paths/storefront_{id}_duplicate.yaml @@ -0,0 +1,20 @@ +parameters: + - name: id + in: path + required: true + schema: + type: string +post: + tags: + - Storefront + summary: Duplicate Storefront + operationId: storefront_duplicate + responses: + '200': + $ref: ../components/responses/Ok.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/storefront_{id}_order.yaml b/src/assets/openapi/paths/storefront_{id}_order.yaml new file mode 100644 index 0000000..31e1eaa --- /dev/null +++ b/src/assets/openapi/paths/storefront_{id}_order.yaml @@ -0,0 +1,20 @@ +get: + tags: + - Storefront + summary: Fetch Storefront Orders + description: Fetch all orders in your Storefront + operationId: storefront_fetchOrders + parameters: + - name: id + in: path + required: true + schema: + type: string + example: Z0R4orOU + responses: + '200': + $ref: ../components/responses/Ok.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/storefront_{id}_product.yaml b/src/assets/openapi/paths/storefront_{id}_product.yaml new file mode 100644 index 0000000..b75d7ac --- /dev/null +++ b/src/assets/openapi/paths/storefront_{id}_product.yaml @@ -0,0 +1,42 @@ +parameters: + - name: id + in: path + required: true + schema: + type: string +post: + tags: + - Storefront + summary: Add Products to Storefront + operationId: storefront_addProducts + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/StorefrontAddProducts.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/StorefrontAddProducts.yaml + responses: + '200': + $ref: ../components/responses/Ok.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error +get: + tags: + - Storefront + summary: List Products in Storefront + operationId: storefront_listProducts + responses: + '200': + $ref: ../components/responses/Ok.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/storefront_{id}_publish.yaml b/src/assets/openapi/paths/storefront_{id}_publish.yaml new file mode 100644 index 0000000..3f6bc70 --- /dev/null +++ b/src/assets/openapi/paths/storefront_{id}_publish.yaml @@ -0,0 +1,20 @@ +parameters: + - name: id + in: path + required: true + schema: + type: string +post: + tags: + - Storefront + summary: Publish Storefront + operationId: storefront_publish + responses: + '200': + $ref: ../components/responses/Ok.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/subaccount.yaml b/src/assets/openapi/paths/subaccount.yaml new file mode 100644 index 0000000..86fdbc1 --- /dev/null +++ b/src/assets/openapi/paths/subaccount.yaml @@ -0,0 +1,62 @@ +post: + tags: + - Subaccount + summary: Create Subaccount + operationId: subaccount_create + description: Create a subacount for a partner + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/SubaccountCreate.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/SubaccountCreate.yaml + responses: + '201': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/SubaccountCreateResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error +get: + tags: + - Subaccount + summary: List Subaccounts + operationId: subaccount_list + description: List subaccounts available on your integration + parameters: + - in: query + name: perPage + description: Number of records to fetch per request + schema: + type: integer + default: 50 + - in: query + name: page + description: The offset to retrieve data from + schema: + type: integer + default: 1 + - in: query + name: active + description: Filter by the state of the subaccounts + schema: + type: boolean + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/SubaccountListResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/subaccount_{code}.yaml b/src/assets/openapi/paths/subaccount_{code}.yaml new file mode 100644 index 0000000..ae51eab --- /dev/null +++ b/src/assets/openapi/paths/subaccount_{code}.yaml @@ -0,0 +1,54 @@ +parameters: + - name: code + in: path + description: The subaccount code you want to fetch + required: true + schema: + type: string + example: "ACCT_6uujpqtzmnufzkw" +get: + tags: + - Subaccount + summary: Fetch Subaccount + operationId: subaccount_fetch + description: Get details of a subaccount on your integration + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/SubaccountFetchResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error +put: + tags: + - Subaccount + summary: Update Subaccount + operationId: subaccount_update + description: Update a subaccount details on your integration + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/SubaccountUpdate.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/SubaccountUpdate.yaml + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/SubaccountUpdateResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/subscription.yaml b/src/assets/openapi/paths/subscription.yaml new file mode 100644 index 0000000..2b132f0 --- /dev/null +++ b/src/assets/openapi/paths/subscription.yaml @@ -0,0 +1,67 @@ +post: + tags: + - Subscription + summary: Create Subscription + operationId: subscription_create + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/SubscriptionCreate.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/SubscriptionCreate.yaml + responses: + '200': + $ref: ../components/responses/SubscriptionCreateSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error +get: + tags: + - Subscription + summary: List Subscriptions + operationId: subscription_list + parameters: + - in: query + name: perPage + schema: + type: integer + description: Number of records to fetch per page + - in: query + name: page + schema: + type: integer + description: The section to retrieve + - in: query + name: plan + schema: + type: string + description: Plan ID + - in: query + name: customer + schema: + type: string + description: Customer ID + - in: query + name: from + schema: + type: string + format: date-time + description: The start date + - in: query + name: to + schema: + type: string + format: date-time + description: The end date + responses: + '200': + $ref: ../components/responses/SubscriptionListSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/subscription_disable.yaml b/src/assets/openapi/paths/subscription_disable.yaml new file mode 100644 index 0000000..46fcd9b --- /dev/null +++ b/src/assets/openapi/paths/subscription_disable.yaml @@ -0,0 +1,20 @@ +post: + tags: + - Subscription + summary: Disable Subscription + operationId: subscription_disable + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/SubscriptionToggle.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/SubscriptionToggle.yaml + responses: + '200': + $ref: ../components/responses/SubscriptionDisableSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/subscription_enable.yaml b/src/assets/openapi/paths/subscription_enable.yaml new file mode 100644 index 0000000..2ed04c1 --- /dev/null +++ b/src/assets/openapi/paths/subscription_enable.yaml @@ -0,0 +1,20 @@ +post: + tags: + - Subscription + summary: Enable Subscription + operationId: subscription_enable + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/SubscriptionToggle.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/SubscriptionToggle.yaml + responses: + '200': + $ref: ../components/responses/Ok.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/subscription_{code}.yaml b/src/assets/openapi/paths/subscription_{code}.yaml new file mode 100644 index 0000000..bc1a183 --- /dev/null +++ b/src/assets/openapi/paths/subscription_{code}.yaml @@ -0,0 +1,20 @@ +parameters: + - name: code + in: path + required: true + schema: + type: string +get: + tags: + - Subscription + summary: Fetch Subscription + operationId: subscription_fetch + responses: + '200': + $ref: ../components/responses/SubscriptionFetchSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/subscription_{code}_manage_email.yaml b/src/assets/openapi/paths/subscription_{code}_manage_email.yaml new file mode 100644 index 0000000..1e336fb --- /dev/null +++ b/src/assets/openapi/paths/subscription_{code}_manage_email.yaml @@ -0,0 +1,18 @@ +post: + tags: + - Subscription + summary: Send Update Subscription Link + operationId: subscription_manageEmail + parameters: + - name: code + in: path + required: true + schema: + type: string + responses: + '200': + $ref: ../components/responses/Ok.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/subscription_{code}_manage_link.yaml b/src/assets/openapi/paths/subscription_{code}_manage_link.yaml new file mode 100644 index 0000000..4673c06 --- /dev/null +++ b/src/assets/openapi/paths/subscription_{code}_manage_link.yaml @@ -0,0 +1,18 @@ +get: + tags: + - Subscription + summary: Generate Update Subscription Link + operationId: subscription_manageLink + parameters: + - name: code + in: path + required: true + schema: + type: string + responses: + '200': + $ref: ../components/responses/Ok.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/terminal.yaml b/src/assets/openapi/paths/terminal.yaml new file mode 100644 index 0000000..01841f2 --- /dev/null +++ b/src/assets/openapi/paths/terminal.yaml @@ -0,0 +1,32 @@ +get: + tags: + - Terminal + summary: List Terminals + operationId: terminal_list + description: List the Terminals available on your integration + parameters: + - name: next + in: query + description: A cursor that indicates your place in the list. It can be used to fetch the next page of the list + schema: + type: string + - name: previous + in: query + description: A cursor that indicates your place in the list. It should be used to fetch the previous page of the list after an intial next request + schema: + type: string + - name: per_page + in: query + description: Specify how many records you want to retrieve per page + schema: + type: integer + default: 50 + responses: + '200': + $ref: ../components/responses/TerminalListsSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/terminal_commission_device.yaml b/src/assets/openapi/paths/terminal_commission_device.yaml new file mode 100644 index 0000000..2353ba4 --- /dev/null +++ b/src/assets/openapi/paths/terminal_commission_device.yaml @@ -0,0 +1,21 @@ +post: + tags: + - Terminal + summary: Commission Terminal + description: Activate your debug device by linking it to your integration + operationId: terminal_commission + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/TerminalActivationToggle.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/TerminalActivationToggle.yaml + responses: + '200': + $ref: ../components/responses/TerminalCommissionDeviceSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/terminal_decommission_device.yaml b/src/assets/openapi/paths/terminal_decommission_device.yaml new file mode 100644 index 0000000..ada47ac --- /dev/null +++ b/src/assets/openapi/paths/terminal_decommission_device.yaml @@ -0,0 +1,21 @@ +post: + tags: + - Terminal + summary: Decommission Terminal + description: Unlink your debug device from your integration + operationId: terminal_decommission + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/TerminalActivationToggle.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/TerminalActivationToggle.yaml + responses: + '200': + $ref: ../components/responses/TerminalDecommissionDeviceSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/terminal_{id}_event.yaml b/src/assets/openapi/paths/terminal_{id}_event.yaml new file mode 100644 index 0000000..05cb006 --- /dev/null +++ b/src/assets/openapi/paths/terminal_{id}_event.yaml @@ -0,0 +1,29 @@ +post: + tags: + - Terminal + summary: Send Event + description: Send an event from your application to the Paystack Terminal + operationId: terminal_sendEvent + parameters: + - name: id + in: path + required: true + description: The ID of the Terminal the event should be sent to. + schema: + type: string + example: Z0R4orOU + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/TerminalSendEvent.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/TerminalSendEvent.yaml + responses: + '200': + $ref: ../components/responses/Ok.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/terminal_{terminal_id}.yaml b/src/assets/openapi/paths/terminal_{terminal_id}.yaml new file mode 100644 index 0000000..2f89419 --- /dev/null +++ b/src/assets/openapi/paths/terminal_{terminal_id}.yaml @@ -0,0 +1,46 @@ +parameters: + - name: terminal_id + in: path + description: The ID of the Terminal the event should be sent to. + required: true + schema: + type: string + example: Z0R4orOU +get: + tags: + - Terminal + summary: Fetch Terminal + description: Get the details of a Terminal + operationId: terminal_fetch + responses: + '200': + $ref: ../components/responses/TerminalGetSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error +put: + tags: + - Terminal + summary: Update Terminal + operationId: terminal_update + description: Update the details of a Terminal + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/TerminalUpate.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/TerminalUpate.yaml + responses: + '200': + $ref: ../components/responses/TerminalUpdateSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/terminal_{terminal_id}_event_{event_id}.yaml b/src/assets/openapi/paths/terminal_{terminal_id}_event_{event_id}.yaml new file mode 100644 index 0000000..2f81627 --- /dev/null +++ b/src/assets/openapi/paths/terminal_{terminal_id}_event_{event_id}.yaml @@ -0,0 +1,30 @@ +get: + tags: + - Terminal + summary: Fetch Event Status + description: Check the status of an event sent to the Terminal + operationId: terminal_fetchEventStatus + parameters: + - name: terminal_id + in: path + required: true + description: The ID of the Terminal the event should be sent to. + schema: + type: string + example: Z0R4orOU + - name: event_id + in: path + required: true + description: The ID of the event that was sent to the Terminal + schema: + type: string + example: 616d721e8c5cd40a0cdd54a6 + responses: + '200': + $ref: ../components/responses/Ok.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/terminal_{terminal_id}_presence.yaml b/src/assets/openapi/paths/terminal_{terminal_id}_presence.yaml new file mode 100644 index 0000000..5d53bc2 --- /dev/null +++ b/src/assets/openapi/paths/terminal_{terminal_id}_presence.yaml @@ -0,0 +1,23 @@ +get: + tags: + - Terminal + summary: Fetch Terminal Status + description: Check the availiability of a Terminal before sending an event to it + operationId: terminal_fetchTerminalStatus + parameters: + - name: terminal_id + in: path + required: true + description: The ID of the Terminal the event should be sent to. + schema: + type: string + example: Z0R4orOU + responses: + '200': + $ref: ../components/responses/TerminalGetStatusSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/transaction.yaml b/src/assets/openapi/paths/transaction.yaml new file mode 100644 index 0000000..5de4331 --- /dev/null +++ b/src/assets/openapi/paths/transaction.yaml @@ -0,0 +1,131 @@ +get: + tags: + - Transaction + summary: List Transactions + operationId: transaction_list + description: List transactions that has occurred on your integration + parameters: + - in: query + name: use_cursor + description: A flag to indicate if cursor based pagination should be used + schema: + type: boolean + example: true + - in: query + name: next + description: > + An alphanumeric value returned for every cursor based retrieval, used to + retrieve the next set of data + schema: + type: string + - in: query + name: previous + description: > + An alphanumeric value returned for every cursor based retrieval, used to + retrieve the previous set of data + schema: + type: string + - in: query + name: per_page + schema: + type: integer + description: The number of records to fetch per request + - in: query + name: page + schema: + type: integer + description: The offset to retrieve data from + - in: query + name: from + description: The start date + schema: + type: string + format: date-time + - in: query + name: to + description: The end date + schema: + type: string + format: date-time + - in: query + name: status + description: Filter transaction by status + schema: + type: string + enum: + - success + - failed + - abandoned + - reversed + - in: query + name: source + description: The origin of the payment + schema: + type: string + enum: + - merchantApi + - checkout + - pos + - virtualTerminal + - in: query + name: terminal_id + description: Filter transactions by a terminal ID + schema: + type: string + - in: query + name: virtual_account_number + description: Filter transactions by a virtual account number + schema: + type: string + - in: query + name: customer_code + description: Filter transactions by a customer code + schema: + type: string + - in: query + name: amount + description: Filter transactions by a specific amount + schema: + type: integer + format: int64 + - in: query + name: settlement + description: The settlement ID to filter for settled transactions + schema: + type: integer + format: int64 + - in: query + name: channel + description: The payment method the customer used to complete the transaction + schema: + type: string + enum: + - card + - pos + - bank + - dedicated_nuban + - ussd + - bank_transfer + - in: query + name: subaccount_code + description: Filter transaction by subaccount code + schema: + type: string + - in: query + name: split_code + description: Filter transaction by split code + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/TransactionListResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/transaction_charge_authorization.yaml b/src/assets/openapi/paths/transaction_charge_authorization.yaml new file mode 100644 index 0000000..956f17b --- /dev/null +++ b/src/assets/openapi/paths/transaction_charge_authorization.yaml @@ -0,0 +1,25 @@ +post: + tags: + - Transaction + summary: Charge Authorization + operationId: transaction_chargeAuthorization + description: Charge all authorizations marked as reusable with this endpoint whenever you need to receive payments + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/TransactionChargeAuthorization.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/TransactionChargeAuthorization.yaml + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/ChargeAuthorizationResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/transaction_export.yaml b/src/assets/openapi/paths/transaction_export.yaml new file mode 100644 index 0000000..052aafc --- /dev/null +++ b/src/assets/openapi/paths/transaction_export.yaml @@ -0,0 +1,66 @@ +get: + tags: + - Transaction + summary: Export Transactions + operationId: transaction_export + x-operationId: transaction_exportTransaction + description: Download transactions that occurred on your integration for a specific timeframe + parameters: + - in: query + name: from + description: The start date + schema: + type: string + format: date-time + example: '2024-06-01T00:00:01Z' + - in: query + name: to + description: The end date + schema: + type: string + format: date-time + example: '2024-06-30T13:36:54Z' + - in: query + name: status + description: Filter by the status of the transaction + schema: + type: string + enum: + - success + - failed + - abandoned + - reversed + - all + example: success + - in: query + name: customer + description: Filter by customer ID + schema: + type: number + example: 123172416 + - in: query + name: subaccount_code + description: Filter by subaccount code + schema: + type: string + example: ACCT_dskvlw3y3dMukmt + - in: query + name: settlement + description: Filter by the settlement ID + schema: + type: integer + format: int64 + example: 5687910 + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/TransactionExportResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/transaction_initialize.yaml b/src/assets/openapi/paths/transaction_initialize.yaml new file mode 100644 index 0000000..e7faf30 --- /dev/null +++ b/src/assets/openapi/paths/transaction_initialize.yaml @@ -0,0 +1,27 @@ +post: + tags: + - Transaction + summary: Initialize Transaction + operationId: transaction_initialize + description: Create a new transaction + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/TransactionInitialize.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/TransactionInitialize.yaml + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/TransactionInitializeResponse.yaml + '400': + $ref: ../components/responses/TransactionInitializeBadRequestResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/transaction_partial_debit.yaml b/src/assets/openapi/paths/transaction_partial_debit.yaml new file mode 100644 index 0000000..288cf3a --- /dev/null +++ b/src/assets/openapi/paths/transaction_partial_debit.yaml @@ -0,0 +1,25 @@ +post: + tags: + - Transaction + summary: Partial Debit + operationId: transaction_partialDebit + description: Retrieve part of a payment from a customer + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/TransactionPartialDebit.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/TransactionPartialDebit.yaml + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/TransactionPartialDebitResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/transaction_timeline_{id}.yaml b/src/assets/openapi/paths/transaction_timeline_{id}.yaml new file mode 100644 index 0000000..9d659e8 --- /dev/null +++ b/src/assets/openapi/paths/transaction_timeline_{id}.yaml @@ -0,0 +1,29 @@ +get: + tags: + - Transaction + summary: Fetch Transaction Timeline + operationId: transaction_timeline + description: >- + Fetch the steps taken from the initiation to the completion of a transaction + parameters: + - name: id + in: path + required: true + description: The ID of the transaction to fetch + schema: + type: integer + format: int64 + example: 3936799950 + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/TransactionTimelineResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/transaction_totals.yaml b/src/assets/openapi/paths/transaction_totals.yaml new file mode 100644 index 0000000..f315930 --- /dev/null +++ b/src/assets/openapi/paths/transaction_totals.yaml @@ -0,0 +1,34 @@ +get: + tags: + - Transaction + summary: Transaction Totals + operationId: transaction_totals + description: Get the total amount of all transactions + parameters: + - in: query + description: The start date + name: from + schema: + type: string + format: date-time + example: '2024-06-01T00:00:01Z' + - in: query + name: to + description: The end date + schema: + type: string + format: date-time + example: '2024-06-30T13:36:54Z' + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/TransactionTotalsResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/transaction_verify_{reference}.yaml b/src/assets/openapi/paths/transaction_verify_{reference}.yaml new file mode 100644 index 0000000..5c24f38 --- /dev/null +++ b/src/assets/openapi/paths/transaction_verify_{reference}.yaml @@ -0,0 +1,27 @@ +get: + tags: + - Transaction + summary: Verify Transaction + operationId: transaction_verify + description: Verify a previously initiated transaction using it's reference + parameters: + - name: reference + in: path + description: The transaction reference to verify + required: true + schema: + type: string + example: re4lyvq3s3 + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/VerifyResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/transaction_{id}.yaml b/src/assets/openapi/paths/transaction_{id}.yaml new file mode 100644 index 0000000..e7915f1 --- /dev/null +++ b/src/assets/openapi/paths/transaction_{id}.yaml @@ -0,0 +1,28 @@ +get: + tags: + - Transaction + summary: Fetch Transaction + operationId: transaction_fetch + description: Fetch a transaction to get its details + parameters: + - name: id + in: path + description: The ID of the transaction to fetch + required: true + schema: + type: integer + format: int64 + example: 4099260516 + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/TransactionFetchResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/transfer.yaml b/src/assets/openapi/paths/transfer.yaml new file mode 100644 index 0000000..7614eed --- /dev/null +++ b/src/assets/openapi/paths/transfer.yaml @@ -0,0 +1,105 @@ +post: + tags: + - Transfer + summary: Initiate Transfer + operationId: transfer_initiate + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/TransferInitiate.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/TransferInitiate.yaml + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/TransferCreateResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error +get: + tags: + - Transfer + summary: List Transfers + operationId: transfer_list + parameters: + - in: query + name: use_cursor + description: A flag to indicate if cursor based pagination should be used + schema: + type: boolean + - in: query + name: next + description: > + An alphanumeric value returned for every cursor based retrieval, used to + retrieve the next set of data + schema: + type: string + - in: query + name: previous + description: > + An alphanumeric value returned for every cursor based retrieval, used to + retrieve the previous set of data + schema: + type: string + - in: query + name: per_page + schema: + type: integer + description: The number of records to fetch per request + - in: query + name: page + schema: + type: integer + description: The offset to retrieve data from + - in: query + name: from + description: The start date + schema: + type: string + format: date-time + - in: query + name: to + description: The end date + schema: + type: string + format: date-time + - in: query + name: recipient + description: Filter transfer by the recipient code + schema: + type: string + - in: query + name: status + description: Filter transfer by status + schema: + type: string + default: pending + enum: + - pending + - success + - failed + - otp + - abandoned + - reversed + - blocked + - rejected + - received + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/TransferListResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/transfer_bulk.yaml b/src/assets/openapi/paths/transfer_bulk.yaml new file mode 100644 index 0000000..284d8ae --- /dev/null +++ b/src/assets/openapi/paths/transfer_bulk.yaml @@ -0,0 +1,24 @@ +post: + tags: + - Transfer + summary: Initiate Bulk Transfer + operationId: transfer_bulk + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/TransferBulk.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/TransferBulk.yaml + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/TransferBulkResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/transfer_disable_otp.yaml b/src/assets/openapi/paths/transfer_disable_otp.yaml new file mode 100644 index 0000000..36f3d07 --- /dev/null +++ b/src/assets/openapi/paths/transfer_disable_otp.yaml @@ -0,0 +1,16 @@ +post: + tags: + - Transfer + summary: Disable OTP for Transfers + operationId: transfer_disableOtp + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/TransferDisablesOtpResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/transfer_disable_otp_finalize.yaml b/src/assets/openapi/paths/transfer_disable_otp_finalize.yaml new file mode 100644 index 0000000..d8c1a2b --- /dev/null +++ b/src/assets/openapi/paths/transfer_disable_otp_finalize.yaml @@ -0,0 +1,24 @@ +post: + tags: + - Transfer + summary: Finalize Disabling OTP for Transfers + operationId: transfer_disableOtpFinalize + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/TransferFinalizeDisableOTP.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/TransferFinalizeDisableOTP.yaml + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/TransferFinalizeDisablesOtpResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/transfer_enable_otp.yaml b/src/assets/openapi/paths/transfer_enable_otp.yaml new file mode 100644 index 0000000..b4d8d13 --- /dev/null +++ b/src/assets/openapi/paths/transfer_enable_otp.yaml @@ -0,0 +1,16 @@ +post: + tags: + - Transfer + summary: Enable OTP requirement for Transfers + operationId: transfer_enableOtp + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/TransferEnablesOtpResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/transfer_export.yaml b/src/assets/openapi/paths/transfer_export.yaml new file mode 100644 index 0000000..50cc7b0 --- /dev/null +++ b/src/assets/openapi/paths/transfer_export.yaml @@ -0,0 +1,48 @@ +get: + tags: + - Transfer + summary: Export Transfers + operationId: transfer_exportTransfer + parameters: + - in: query + name: recipient + description: Export transfer by the recipient code + schema: + type: string + - in: query + name: status + description: Export transfer by status + schema: + type: string + default: pending + enum: + - pending + - success + - failed + - otp + - abandoned + - reversed + - blocked + - rejected + - received + - in: query + name: from + schema: + type: string + format: date-time + description: The start date + - in: query + name: to + schema: + type: string + format: date-time + description: The end date + responses: + '200': + $ref: ../components/responses/Ok.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/transfer_finalize_transfer.yaml b/src/assets/openapi/paths/transfer_finalize_transfer.yaml new file mode 100644 index 0000000..7108822 --- /dev/null +++ b/src/assets/openapi/paths/transfer_finalize_transfer.yaml @@ -0,0 +1,20 @@ +post: + tags: + - Transfer + summary: Finalize Transfer + operationId: transfer_finalize + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/TransferFinalize.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/TransferFinalize.yaml + responses: + '200': + $ref: ../components/responses/Ok.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/transfer_resend_otp.yaml b/src/assets/openapi/paths/transfer_resend_otp.yaml new file mode 100644 index 0000000..fb85d2d --- /dev/null +++ b/src/assets/openapi/paths/transfer_resend_otp.yaml @@ -0,0 +1,24 @@ +post: + tags: + - Transfer + summary: Resend OTP for Transfer + operationId: transfer_resendOtp + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/TransferResendOTP.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/TransferResendOTP.yaml + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/TransferResendsOtpResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/transfer_verify_{reference}.yaml b/src/assets/openapi/paths/transfer_verify_{reference}.yaml new file mode 100644 index 0000000..24c5c2e --- /dev/null +++ b/src/assets/openapi/paths/transfer_verify_{reference}.yaml @@ -0,0 +1,24 @@ +get: + tags: + - Transfer + summary: Verify Transfer + operationId: transfer_verify + parameters: + - name: reference + in: path + required: true + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/TransferVerifyResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/transfer_{code}.yaml b/src/assets/openapi/paths/transfer_{code}.yaml new file mode 100644 index 0000000..60048e4 --- /dev/null +++ b/src/assets/openapi/paths/transfer_{code}.yaml @@ -0,0 +1,25 @@ +parameters: + - name: code + description: Transfer code + in: path + required: true + schema: + type: string +get: + tags: + - Transfer + summary: Fetch Transfer + operationId: transfer_fetch + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/TransferFetchResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/transferrecipient.yaml b/src/assets/openapi/paths/transferrecipient.yaml new file mode 100644 index 0000000..144f4db --- /dev/null +++ b/src/assets/openapi/paths/transferrecipient.yaml @@ -0,0 +1,72 @@ +post: + tags: + - Transfer Recipient + summary: Create Transfer Recipient + operationId: transferrecipient_create + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/TransferRecipientCreate.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/TransferRecipientCreate.yaml + responses: + '201': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/TransferRecipientCreateResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error +get: + tags: + - Transfer Recipient + summary: List Transfer Recipients + operationId: transferrecipient_list + parameters: + - in: query + name: use_cursor + description: A flag to indicate if cursor based pagination should be used + schema: + type: boolean + - in: query + name: next + description: > + An alphanumeric value returned for every cursor based retrieval, used to + retrieve the next set of data + schema: + type: string + - in: query + name: previous + description: > + An alphanumeric value returned for every cursor based retrieval, used to + retrieve the previous set of data + schema: + type: string + - in: query + name: per_page + schema: + type: integer + description: The number of records to fetch per request + - in: query + name: page + schema: + type: integer + description: The offset to retrieve data from + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/TransferRecipientListResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/transferrecipient_bulk.yaml b/src/assets/openapi/paths/transferrecipient_bulk.yaml new file mode 100644 index 0000000..f0679b0 --- /dev/null +++ b/src/assets/openapi/paths/transferrecipient_bulk.yaml @@ -0,0 +1,24 @@ +post: + tags: + - Transfer Recipient + summary: Bulk Create Transfer Recipient + operationId: transferrecipient_bulk + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/TransferRecipientBulk.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/TransferRecipientBulk.yaml + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/TransferRecipientBulkCreateResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/transferrecipient_{code}.yaml b/src/assets/openapi/paths/transferrecipient_{code}.yaml new file mode 100644 index 0000000..09c445d --- /dev/null +++ b/src/assets/openapi/paths/transferrecipient_{code}.yaml @@ -0,0 +1,69 @@ +parameters: + - name: code + description: Transfer recipient code + in: path + required: true + schema: + type: string +get: + tags: + - Transfer Recipient + summary: Fetch Transfer recipient + operationId: transferrecipient_fetch + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/TransferRecipientFetchResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error +put: + tags: + - Transfer Recipient + summary: Update Transfer recipient + operationId: transferrecipient_update + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/TransferRecipientUpdate.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/TransferRecipientUpdate.yaml + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/TransferRecipientUpdateResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error +delete: + tags: + - Transfer Recipient + summary: Delete Transfer Recipient + operationId: transferrecipient_delete + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: ../components/schemas/TransferRecipientDeleteResponse.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + '404': + $ref: ../components/responses/NotFound.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/virtual_terminal.yaml b/src/assets/openapi/paths/virtual_terminal.yaml new file mode 100644 index 0000000..2224b4d --- /dev/null +++ b/src/assets/openapi/paths/virtual_terminal.yaml @@ -0,0 +1,43 @@ +post: + tags: + - Virtual Terminal + summary: Create Virtual Terminal + description: Create a Virtual Terminal on your integration + operationId: virtualTerminal_create + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/VirtualTerminalCreate.yaml + responses: + '200': + $ref: ../components/responses/VirtualTerminalCreateSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error +get: + tags: + - Virtual Terminal + summary: List Virtual Terminals + description: List Virtual Terminals on your integration + operationId: virtualTerminal_list + parameters: + - name: perPage + in: query + description: The number of records to fetch per request + schema: + type: integer + example: 75 + - name: page + in: query + description: The offset to retrieve data from + schema: + type: integer + responses: + '200': + $ref: ../components/responses/VirtualTerminalListSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/virtual_terminal_{code}.yaml b/src/assets/openapi/paths/virtual_terminal_{code}.yaml new file mode 100644 index 0000000..a60fccd --- /dev/null +++ b/src/assets/openapi/paths/virtual_terminal_{code}.yaml @@ -0,0 +1,39 @@ +parameters: + - name: code + in: path + description: Code of the Virtual Terminal + required: true + schema: + type: string + example: "VT_MCK5292Z" +get: + tags: + - Virtual Terminal + summary: Fetch Virtual Terminal + description: Fetch a Virtual Terminal on your integration + operationId: virtualTerminal_fetch + responses: + '200': + $ref: ../components/responses/VirtualTerminalFetchSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error +put: + tags: + - Virtual Terminal + summary: Update Virtual Terminal + description: Update a Virtual Terminal on your integration + operationId: virtualTerminal_update + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/VirtualTerminalUpdate.yaml + responses: + '200': + $ref: ../components/responses/VirtualTerminalUpdateSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/virtual_terminal_{code}_deactivate.yaml b/src/assets/openapi/paths/virtual_terminal_{code}_deactivate.yaml new file mode 100644 index 0000000..fc6f072 --- /dev/null +++ b/src/assets/openapi/paths/virtual_terminal_{code}_deactivate.yaml @@ -0,0 +1,21 @@ +parameters: + - name: code + in: path + description: Code of the Virtual Terminal + required: true + schema: + type: string + example: "VT_MCK5292Z" +put: + tags: + - Virtual Terminal + summary: Deactivate Virtual Terminal + operationId: virtualTerminal_deactivate + description: Deactivate a Virtual Terminal on your integration + responses: + '200': + $ref: ../components/responses/VirtualTerminalDeactivateSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/virtual_terminal_{code}_destination_assign.yaml b/src/assets/openapi/paths/virtual_terminal_{code}_destination_assign.yaml new file mode 100644 index 0000000..95772c1 --- /dev/null +++ b/src/assets/openapi/paths/virtual_terminal_{code}_destination_assign.yaml @@ -0,0 +1,29 @@ +parameters: + - name: code + in: path + description: Code of the Virtual Terminal + required: true + schema: + type: string + example: "VT_MCK5292Z" +post: + tags: + - Virtual Terminal + summary: Assign Destination to Virtual Terminal + operationId: virtualTerminal_destinationAssign + description: Add a destination (WhatsApp number) to a Virtual Terminal on your integration + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/VirtualTerminalDestinationAssign.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/VirtualTerminalDestinationAssign.yaml + responses: + '200': + $ref: ../components/responses/VirtualTerminalDestinationAssignSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/virtual_terminal_{code}_destination_unassign.yaml b/src/assets/openapi/paths/virtual_terminal_{code}_destination_unassign.yaml new file mode 100644 index 0000000..50c6fce --- /dev/null +++ b/src/assets/openapi/paths/virtual_terminal_{code}_destination_unassign.yaml @@ -0,0 +1,29 @@ +parameters: + - name: code + in: path + description: Code of the Virtual Terminal + required: true + schema: + type: string + example: "VT_MCK5292Z" +post: + tags: + - Virtual Terminal + summary: Unassign Destination from Virtual Terminal + operationId: virtualTerminal_destinationUnassign + description: Unassign a destination (WhatsApp Number) from a Virtual Terminal on your integration + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/VirtualTerminalDestinationUnassign.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/VirtualTerminalDestinationUnassign.yaml + responses: + '200': + $ref: ../components/responses/VirtualTerminalDestinationUnassignSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server error diff --git a/src/assets/openapi/paths/virtual_terminal_{code}_split_code.yaml b/src/assets/openapi/paths/virtual_terminal_{code}_split_code.yaml new file mode 100644 index 0000000..cb949db --- /dev/null +++ b/src/assets/openapi/paths/virtual_terminal_{code}_split_code.yaml @@ -0,0 +1,50 @@ +parameters: + - name: code + in: path + description: Code of the Virtual Terminal + required: true + schema: + type: string + example: "VT_MCK5292Z" +put: + tags: + - Virtual Terminal + summary: Add Split Code to Virtual Terminal + description: Add Split Code to Virtual Terminal + operationId: virtualTerminal_addSplitCode + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/VirtualTerminalAddSplitCode.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/VirtualTerminalAddSplitCode.yaml + responses: + '200': + $ref: ../components/responses/VirtualTerminalAddSplitCodeSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server Error +delete: + tags: + - Virtual Terminal + summary: Remove Split Code from Virtual Terminal + description: Remove Split Code from Virtual Terminal + operationId: virtualTerminal_deleteSplitCode + requestBody: + content: + application/json: + schema: + $ref: ../components/schemas/VirtualTerminalDeleteSplitCode.yaml + application/x-www-form-urlencoded: + schema: + $ref: ../components/schemas/VirtualTerminalDeleteSplitCode.yaml + responses: + '200': + $ref: ../components/responses/VirtualTerminalDeleteSplitCodeSuccess.yaml + '401': + $ref: ../components/responses/Unauthorized.yaml + default: + description: Server Error diff --git a/sdk/paystack.yaml b/src/assets/sdk/paystack.yaml similarity index 100% rename from sdk/paystack.yaml rename to src/assets/sdk/paystack.yaml diff --git a/src/assets/use_cases/betting.yaml b/src/assets/use_cases/betting.yaml new file mode 100644 index 0000000..bf3db91 --- /dev/null +++ b/src/assets/use_cases/betting.yaml @@ -0,0 +1,43 @@ +openapi: 3.0.1 +info: + title: Create a betting platform + description: | + The OpenAPI specification for creating a betting platform using the [Paystack API](https://paystack.com/docs/api/). + + ### Prerequisites + + 1. Sign up on [Paystack](https://paystack.com/signup) to get your secret API key + + 2. Set your API key as an environment variable on [Postman](https://learning.postman.com/docs/sending-requests/variables/) + + We strongly recommend using the [Bulk Transfer API](https://paystack.com/docs/transfers/bulk-transfers) for sending customers their winnings instead of using Single Transfers. + version: 1.0.0 + contact: + email: devrel@paystack.com + license: + name: MIT + url: https://choosealicense.com/licenses/mit/ +servers: + - url: https://api.paystack.co + description: Base API endpoint +paths: + /transaction/initialize: + $ref: '../openapi/paths/transaction_initialize.yaml' + /transaction/charge_authorization: + $ref: '../openapi/paths/transaction_charge_authorization.yaml' + /transaction/verify/{reference}: + $ref: '../openapi/paths/transaction_verify_{reference}.yaml' + /bank/resolve: + $ref: '../openapi/paths/bank_resolve.yaml' + /transferrecipient: + $ref: '../openapi/paths/transferrecipient.yaml' + /transfer/bulk: + $ref: '../openapi/paths/transfer_bulk.yaml' +components: + securitySchemes: + bearerAuth: + type: http + scheme: bearer + description: Secret key in the format sk_domain_xxxxxx +security: + - bearerAuth: [] \ No newline at end of file diff --git a/src/assets/use_cases/lending.yaml b/src/assets/use_cases/lending.yaml new file mode 100644 index 0000000..678fd93 --- /dev/null +++ b/src/assets/use_cases/lending.yaml @@ -0,0 +1,44 @@ +openapi: 3.0.1 +info: + title: Create a lending application + description: | + The OpenAPI specification for creating a marketplace application using the [Paystack API](https://paystack.com/docs/api/). + + ### Prerequisites + + 1. Sign up on [Paystack](https://paystack.com/signup) to get your secret API key + + 2. Set your API key as an environment variable on [Postman](https://learning.postman.com/docs/sending-requests/variables/) + + + The [Partial Debits](https://paystack.com/docs/payments/partial-debits) feature allows you to recover some revenue that would have otherwise been lost. It is currently available on request. + version: 1.0.0 + contact: + email: devrel@paystack.com + license: + name: MIT + url: https://choosealicense.com/licenses/mit/ +servers: + - url: https://api.paystack.co + description: Base API endpoint +paths: + /transaction/initialize: + $ref: '../openapi/paths/transaction_initialize.yaml' + /transaction/charge_authorization: + $ref: '../openapi/paths/transaction_charge_authorization.yaml' + /transaction/partial_debit: + $ref: ../openapi/paths/transaction_partial_debit.yaml + /bank/resolve: + $ref: '../openapi/paths/bank_resolve.yaml' + /transferrecipient: + $ref: '../openapi/paths/transferrecipient.yaml' + /transfer: + $ref: ../openapi/paths/transfer.yaml +components: + securitySchemes: + bearerAuth: + type: http + scheme: bearer + description: Secret key in the format sk_domain_xxxxxx +security: + - bearerAuth: [] \ No newline at end of file diff --git a/src/assets/use_cases/marketplace.yaml b/src/assets/use_cases/marketplace.yaml new file mode 100644 index 0000000..a381e2b --- /dev/null +++ b/src/assets/use_cases/marketplace.yaml @@ -0,0 +1,40 @@ +openapi: 3.0.1 +info: + title: Create an online marketplace + description: | + The OpenAPI specification for creating a marketplace application using the [Paystack API](https://paystack.com/docs/api/). + + ### Prerequisites + + 1. Sign up on [Paystack](https://paystack.com/signup) to get your secret API key + + 2. Set your API key as an environment variable on [Postman](https://learning.postman.com/docs/sending-requests/variables/) + + + The [Split API](https://paystack.com/docs/payments/split-payments/) is useful in marketplace apps where the transactions are divided between the platform and the vendor. + That way, the platform keeps a portion of each transaction. + version: 1.0.0 + contact: + email: devrel@paystack.com + license: + name: MIT + url: https://choosealicense.com/licenses/mit/ +servers: + - url: https://api.paystack.co + description: Base API endpoint +paths: + /subaccount: + $ref: ../openapi/paths/subaccount.yaml + /split: + $ref: ../openapi/paths/split.yaml + /transaction/initialize: + $ref: '../openapi/paths/transaction_initialize.yaml' + /refund: + $ref: ../openapi/paths/refund.yaml +components: + securitySchemes: + bearerAuth: + type: http + scheme: bearer +security: + - bearerAuth: [] \ No newline at end of file diff --git a/src/assets/use_cases/membership.yaml b/src/assets/use_cases/membership.yaml new file mode 100644 index 0000000..1d11f14 --- /dev/null +++ b/src/assets/use_cases/membership.yaml @@ -0,0 +1,43 @@ +openapi: 3.0.1 +info: + title: Create a membership app + description: | + The OpenAPI specification for creating a membership application using the [Paystack API](https://paystack.com/docs/api/). + + ### Prerequisites + + 1. Sign up on [Paystack](https://paystack.com/signup) to get your secret API key + + 2. Set your API key as an environment variable on [Postman](https://learning.postman.com/docs/sending-requests/variables/) + + + When using the [Subscriptions API](https://paystack.com/docs/payments/subscriptions), Paystack automatically charges the customer at the due time. + This saves you the need to run scheduled tasks for every customer. + + + While with the [Charge Authorization API](https://paystack.com/docs/payments/recurring-charges), you send Paystack the charge details at the due time. + version: 1.0.0 + contact: + email: devrel@paystack.com + license: + name: MIT + url: https://choosealicense.com/licenses/mit/ +servers: + - url: https://api.paystack.co + description: Base API endpoint +paths: + /plan: + $ref: ../openapi/paths/plan.yaml + /subscription: + $ref: ../openapi/paths/subscription.yaml + /transaction/initialize: + $ref: '../openapi/paths/transaction_initialize.yaml' + /transaction/charge_authorization: + $ref: '../openapi/paths/transaction_charge_authorization.yaml' +components: + securitySchemes: + bearerAuth: + type: http + scheme: bearer +security: + - bearerAuth: [] \ No newline at end of file diff --git a/src/assets/use_cases/savings.yaml b/src/assets/use_cases/savings.yaml new file mode 100644 index 0000000..6ade907 --- /dev/null +++ b/src/assets/use_cases/savings.yaml @@ -0,0 +1,40 @@ +openapi: 3.0.1 +info: + title: Create a savings application + description: | + The OpenAPI specification for creating a savings application using the [Paystack API](https://paystack.com/docs/api/). + + ### Prerequisites + + 1. Sign up on [Paystack](https://paystack.com/signup) to get your secret API key + + 2. Set your API key as an environment variable on [Postman](https://learning.postman.com/docs/sending-requests/variables/) + + Once setup, start with the [Initialize Transaction endpoint](https://paystack.com/docs/api/#transaction-initialize), where you'll open the `authorization_url` to load the Paystack Checkout and complete the transaction. + version: 1.0.0 + contact: + email: devrel@paystack.com + license: + name: MIT + url: https://choosealicense.com/licenses/mit/ +servers: + - url: https://api.paystack.co + description: Base API endpoint +paths: + /transaction/initialize: + $ref: '../openapi/paths/transaction_initialize.yaml' + /transaction/charge_authorization: + $ref: '../openapi/paths/transaction_charge_authorization.yaml' + /bank/resolve: + $ref: '../openapi/paths/bank_resolve.yaml' + /transferrecipient: + $ref: '../openapi/paths/transferrecipient.yaml' + /transfer: + $ref: ../openapi/paths/transfer.yaml +components: + securitySchemes: + bearerAuth: + type: http + scheme: bearer +security: + - bearerAuth: [] \ No newline at end of file diff --git a/src/assets/use_cases/wallet.yaml b/src/assets/use_cases/wallet.yaml new file mode 100644 index 0000000..2d727bc --- /dev/null +++ b/src/assets/use_cases/wallet.yaml @@ -0,0 +1,52 @@ +openapi: 3.0.1 +info: + title: Create a wallet app + description: | + The OpenAPI specification for creating a wallet application using the [Paystack API](https://paystack.com/docs/api/). + + ### Prerequisites + + 1. Sign up on [Paystack](https://paystack.com/signup) to get your secret API key + + 2. Set your API key as an environment variable on [Postman](https://learning.postman.com/docs/sending-requests/variables/) + + + After setting up your secret API key, use the [Customers API](https://paystack.com/docs/api/#customer) to create and validate a customer. + You then assign a [Dedicated Virtual Account](https://paystack.com/docs/payments/dedicated-virtual-accounts) to the customer. + + + Transfers in this case refer to moving money to bank accounts and mobile money accounts using our [Transfers API](https://paystack.com/docs/transfers) rather than other wallet users. + + + *Dedicated Virtual Account is currently available for [registered businesses](https://support.paystack.com/hc/en-us/articles/360009881220-How-do-I-activate-my-Paystack-Registered-Business-) in Nigeria.* + version: 1.0.0 + contact: + email: devrel@paystack.com + license: + name: MIT + url: https://choosealicense.com/licenses/mit/ +servers: + - url: https://api.paystack.co + description: Base API endpoint +paths: + /transaction/initialize: + $ref: '../openapi/paths/transaction_initialize.yaml' + /transaction/charge_authorization: + $ref: '../openapi/paths/transaction_charge_authorization.yaml' + /customer: + $ref: ../openapi/paths/customer.yaml + /customer/{code}/identification: + $ref: ../openapi/paths/customer_{code}_identification.yaml + /dedicated_account: + $ref: ../openapi/paths/dedicated_account.yaml + /transferrecipient: + $ref: '../openapi/paths/transferrecipient.yaml' + /transfer: + $ref: ../openapi/paths/transfer.yaml +components: + securitySchemes: + bearerAuth: + type: http + scheme: bearer +security: + - bearerAuth: [] \ No newline at end of file diff --git a/src/index.js b/src/index.js new file mode 100644 index 0000000..33e79cd --- /dev/null +++ b/src/index.js @@ -0,0 +1,27 @@ +import express from 'express' +import fs from 'fs' +import YAML from 'yaml' +import path from 'path' +import open from 'open'; + +const app = express() +const port = 3031 + +const __dirname = new URL('.', import.meta.url).pathname; +const file = fs.readFileSync(path.join(__dirname, '../dist/paystack.yaml'), 'utf8') +const oas = YAML.parse(file) + +app.use(express.static(path.join(__dirname, '/views'))); + +app.get('/health', (_, res) => { + res.send('Server running fine...') +}) + +app.get('/spec', (_, res) => { + res.json(oas) +}) + +app.listen(port, () => { + console.log(`OAS spec is listening on port ${port}`) + open(`http://localhost:${port}`); +}) diff --git a/src/views/index.html b/src/views/index.html new file mode 100644 index 0000000..a38d0ac --- /dev/null +++ b/src/views/index.html @@ -0,0 +1,26 @@ + + + +
+ + +