{ "openapi": "3.0.0", "info": { "title": "Quidkey API", "version": "1.0.0", "description": "API documentation for Quidkey Core Services" }, "servers": [ { "url": "http://localhost:5679", "description": "development server" } ], "components": { "schemas": { "shared_BaseResponse": { "title": "Response Base", "description": "Base schema for API responses", "additionalProperties": true, "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" } }, "required": [ "success" ] }, "shared_Error400": { "title": "Bad Request Error", "description": "400 Bad Request Error Response", "type": "object", "properties": { "success": { "description": "Always false for error responses", "examples": [ false ], "const": false, "type": "boolean" }, "error": { "type": "object", "properties": { "code": { "description": "Error code for the specific error type", "examples": [ "INVALID_INPUT" ], "type": "string" }, "message": { "description": "Human-readable error message", "examples": [ "Invalid input provided" ], "type": "string" }, "errors": { "type": "array", "items": { "type": "object", "properties": { "field": { "type": "string" }, "message": { "type": "string" } }, "required": [ "field", "message" ] } } }, "required": [ "code", "message" ] } }, "required": [ "success", "error" ] }, "shared_Error401": { "title": "Unauthorized Error", "description": "401 Unauthorized Error Response", "type": "object", "properties": { "success": { "description": "Always false for error responses", "examples": [ false ], "const": false, "type": "boolean" }, "error": { "type": "object", "properties": { "code": { "allOf": [ { "description": "Error code for the specific error type", "examples": [ "INVALID_INPUT" ], "type": "string" }, { "const": "UNAUTHORIZED", "type": "string" } ] }, "message": { "description": "Human-readable error message", "examples": [ "Invalid input provided" ], "type": "string" } }, "required": [ "code", "message" ] } }, "required": [ "success", "error" ] }, "shared_Error403": { "title": "Forbidden Error", "description": "403 Forbidden Error Response", "type": "object", "properties": { "success": { "description": "Always false for error responses", "examples": [ false ], "const": false, "type": "boolean" }, "error": { "type": "object", "properties": { "code": { "allOf": [ { "description": "Error code for the specific error type", "examples": [ "INVALID_INPUT" ], "type": "string" }, { "description": "Error code for forbidden access", "examples": [ "FORBIDDEN_CREATE", "FORBIDDEN_VIEW" ], "type": "string" } ] }, "message": { "description": "Human-readable error message", "examples": [ "Invalid input provided" ], "type": "string" } }, "required": [ "code", "message" ] } }, "required": [ "success", "error" ] }, "shared_Error404": { "title": "Not Found Error", "description": "404 Not Found Error Response", "type": "object", "properties": { "success": { "description": "Always false for error responses", "examples": [ false ], "const": false, "type": "boolean" }, "error": { "type": "object", "properties": { "code": { "allOf": [ { "description": "Error code for the specific error type", "examples": [ "INVALID_INPUT" ], "type": "string" }, { "description": "Error code for resource not found", "examples": [ "MERCHANT_NOT_FOUND", "BANK_NOT_FOUND" ], "type": "string" } ] }, "message": { "description": "Human-readable error message", "examples": [ "Invalid input provided" ], "type": "string" } }, "required": [ "code", "message" ] } }, "required": [ "success", "error" ] }, "shared_Error500": { "title": "Internal Server Error", "description": "500 Internal Server Error Response", "type": "object", "properties": { "success": { "description": "Always false for error responses", "examples": [ false ], "const": false, "type": "boolean" }, "error": { "type": "object", "properties": { "code": { "allOf": [ { "description": "Error code for the specific error type", "examples": [ "INVALID_INPUT" ], "type": "string" }, { "description": "Error code for server errors", "examples": [ "MISSING_DEFAULT_CURRENCY", "INTERNAL_SERVER_ERROR" ], "type": "string" } ] }, "message": { "description": "Human-readable error message", "examples": [ "Invalid input provided" ], "type": "string" } }, "required": [ "code", "message" ] } }, "required": [ "success", "error" ] }, "shared_Address": { "title": "Address", "description": "A physical address", "additionalProperties": true, "type": "object", "properties": { "address_line1": { "description": "The first line of the address", "examples": [ "12 West Common Drive" ], "type": "string" }, "address_line2": { "description": "The second line of the address", "examples": [ "Flat 1" ], "type": "string" }, "apartment": { "description": "The apartment, unit, or suite number", "examples": [ "Apt 5B", "Unit 12", "Suite 200" ], "type": "string" }, "city": { "description": "The city", "examples": [ "London" ], "type": "string" }, "state_province": { "description": "The state or province", "examples": [ "Greater London" ], "type": "string" }, "country": { "description": "The country code", "examples": [ "GB" ], "type": "string" }, "postal_code": { "description": "The postal code", "examples": [ "SE1 1AA" ], "type": "string" } }, "required": [ "address_line1", "city", "country", "postal_code" ] }, "auth_TokenRequest": { "additionalProperties": false, "type": "object", "properties": { "client_id": { "format": "uuid", "description": "The client ID of the partner or merchant", "examples": [ "547544c3-eeac-492e-8df9-5a52ca4e6bdf" ], "type": "string" }, "client_secret": { "description": "The client secret of the partner or merchant", "examples": [ "b717adcac3f26e8034574021fa647cd7d4edd67b615046df387f6712c3601048" ], "type": "string" } }, "required": [ "client_id", "client_secret" ] }, "auth_TokenData": { "additionalProperties": false, "type": "object", "properties": { "access_token": { "description": "The access token to be used for authenticated requests", "examples": [ "example_access_token_xyz789" ], "type": "string" }, "refresh_token": { "description": "The refresh token to be used to obtain a new access token", "examples": [ "example_refresh_token_abc123" ], "type": "string" }, "token_type": { "description": "The type of token issued", "examples": [ "Bearer" ], "const": "Bearer", "type": "string" }, "expires_in": { "description": "The number of seconds until the access token expires", "examples": [ 3600 ], "type": "number" } }, "required": [ "access_token", "refresh_token", "token_type", "expires_in" ] }, "auth_TokenResponse": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "additionalProperties": false, "type": "object", "properties": { "access_token": { "description": "The access token to be used for authenticated requests", "examples": [ "example_access_token_xyz789" ], "type": "string" }, "refresh_token": { "description": "The refresh token to be used to obtain a new access token", "examples": [ "example_refresh_token_abc123" ], "type": "string" }, "token_type": { "description": "The type of token issued", "examples": [ "Bearer" ], "const": "Bearer", "type": "string" }, "expires_in": { "description": "The number of seconds until the access token expires", "examples": [ 3600 ], "type": "number" } }, "required": [ "access_token", "refresh_token", "token_type", "expires_in" ] } }, "required": [ "success", "data" ] }, "auth_RefreshTokenRequest": { "additionalProperties": false, "type": "object", "properties": { "refresh_token": { "description": "The refresh token obtained from a previous token request", "examples": [ "refresh_token_abc123" ], "type": "string" } }, "required": [ "refresh_token" ] }, "auth_HealthcheckRequest": { "additionalProperties": false, "type": "object", "properties": { "token": { "description": "The token to check", "examples": [ "example_token_xyz123" ], "type": "string" } }, "required": [ "token" ] }, "auth_HealthcheckData": { "additionalProperties": false, "type": "object", "properties": { "token": { "description": "The token that was checked", "examples": [ "example_token_xyz123" ], "type": "string" }, "isExpired": { "description": "Whether the token has expired", "examples": [ false ], "type": "boolean" } }, "required": [ "token", "isExpired" ] }, "auth_HealthcheckResponse": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "additionalProperties": false, "type": "object", "properties": { "token": { "description": "The token that was checked", "examples": [ "example_token_xyz123" ], "type": "string" }, "isExpired": { "description": "Whether the token has expired", "examples": [ false ], "type": "boolean" } }, "required": [ "token", "isExpired" ] } }, "required": [ "success", "data" ] }, "merchant_Merchant": { "title": "Merchant", "description": "Merchant information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the merchant", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "brand_name": { "description": "The brand name of the merchant", "examples": [ "Example Brand" ], "type": "string" }, "uri": { "format": "uri", "description": "The URI of the merchant's website", "examples": [ "https://example-merchant.com" ], "type": "string" }, "category_code": { "description": "The merchant category code", "examples": [ "4816" ], "type": "string" }, "activation_status": { "description": "The activation status of the merchant", "examples": [ "active" ], "anyOf": [ { "const": "active", "type": "string" }, { "const": "inactive", "type": "string" } ] }, "mode": { "description": "The mode of the merchant", "examples": [ "live" ], "anyOf": [ { "const": "sandbox", "type": "string" }, { "const": "live", "type": "string" } ] }, "multi_account_setting": { "description": "The multi-account setting of the merchant", "examples": [ true, false ], "type": "boolean" }, "client_id": { "description": "The client ID of the merchant", "examples": [ "merchant_123" ], "type": "string" }, "account_owners": { "description": "The account owners associated with this merchant", "examples": [ [] ], "type": "array", "items": { "title": "Merchant Account Owner", "description": "Information about a merchant account owner", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the account owner", "examples": [ "123e4567-e89b-12d3-a456-426614174002" ], "type": "string" }, "full_name": { "description": "The full name of the account owner", "examples": [ "John Doe" ], "maxLength": 255, "type": "string" }, "email": { "format": "email", "description": "The email address of the account owner", "examples": [ "john.doe@example.com" ], "maxLength": 255, "type": "string" }, "phone_number": { "description": "The phone number in format: country_code;number (e.g., 44;7395236209)", "examples": [ "44;7395236209" ], "pattern": "^[0-9]{1,4};[0-9]{6,15}$", "type": "string" }, "role": { "description": "The role of the account owner within the organization", "examples": [ "Owner", "Director", "Manager" ], "maxLength": 100, "type": "string" }, "is_primary": { "description": "Whether this account owner is the primary contact", "examples": [ true, false ], "type": "boolean" }, "created_at": { "format": "date-time", "description": "The timestamp when the account owner was created", "examples": [ "2024-01-01T00:00:00Z" ], "type": "string" }, "updated_at": { "format": "date-time", "description": "The timestamp when the account owner was last updated", "examples": [ "2024-01-01T00:00:00Z" ], "type": "string" } }, "required": [ "id", "full_name", "email", "is_primary", "created_at", "updated_at" ] } } }, "required": [ "id", "brand_name", "uri", "category_code", "activation_status", "mode", "multi_account_setting", "client_id" ] }, "merchant_Input": { "title": "Merchant Input", "description": "Merchant creation input", "additionalProperties": false, "type": "object", "properties": { "brand_name": { "description": "The brand name of the merchant", "examples": [ "Example Brand" ], "type": "string" }, "uri": { "format": "uri", "description": "The URI of the merchant's website", "examples": [ "https://example-merchant.com" ], "type": "string" }, "category_code": { "description": "The merchant category code", "examples": [ "4816" ], "type": "string" }, "account_owner": { "title": "Merchant Account Owner Input", "description": "Input data for creating a merchant account owner", "additionalProperties": false, "type": "object", "properties": { "full_name": { "description": "The full name of the account owner", "examples": [ "John Doe" ], "maxLength": 255, "type": "string" }, "email": { "format": "email", "description": "The email address of the account owner", "examples": [ "john.doe@example.com" ], "maxLength": 255, "type": "string" }, "phone_number": { "description": "The phone number in format: country_code;number (e.g., 44;7395236209)", "examples": [ "44;7395236209" ], "pattern": "^[0-9]{1,4};[0-9]{6,15}$", "type": "string" }, "role": { "description": "The role of the account owner within the organization", "examples": [ "Owner", "Director", "Manager" ], "maxLength": 100, "type": "string" } }, "required": [ "full_name", "email" ] } }, "required": [ "brand_name", "uri", "category_code", "account_owner" ] }, "merchant_Update": { "title": "Merchant Update", "description": "Merchant update input", "additionalProperties": false, "type": "object", "properties": { "brand_name": { "description": "The updated brand name of the merchant", "examples": [ "Updated Example Brand" ], "type": "string" }, "uri": { "format": "uri", "description": "The updated URI of the merchant's website", "examples": [ "https://updated-example-merchant.com" ], "type": "string" }, "category_code": { "description": "The updated merchant category code", "examples": [ "4816" ], "type": "string" } } }, "merchant_ActivationStatusUpdate": { "title": "Merchant Activation Status Update", "description": "Merchant activation status update input", "additionalProperties": false, "type": "object", "properties": { "activation_status": { "description": "The new activation status for the merchant", "examples": [ "active" ], "anyOf": [ { "const": "active", "type": "string" }, { "const": "inactive", "type": "string" } ] } }, "required": [ "activation_status" ] }, "merchant_ModeUpdate": { "title": "Merchant Mode Update", "description": "Merchant mode update input", "additionalProperties": false, "type": "object", "properties": { "mode": { "description": "The new mode for the merchant", "examples": [ "live" ], "anyOf": [ { "const": "sandbox", "type": "string" }, { "const": "live", "type": "string" } ] } }, "required": [ "mode" ] }, "merchant_Response": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "title": "Merchant", "description": "Merchant information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the merchant", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "brand_name": { "description": "The brand name of the merchant", "examples": [ "Example Brand" ], "type": "string" }, "uri": { "format": "uri", "description": "The URI of the merchant's website", "examples": [ "https://example-merchant.com" ], "type": "string" }, "category_code": { "description": "The merchant category code", "examples": [ "4816" ], "type": "string" }, "activation_status": { "description": "The activation status of the merchant", "examples": [ "active" ], "anyOf": [ { "const": "active", "type": "string" }, { "const": "inactive", "type": "string" } ] }, "mode": { "description": "The mode of the merchant", "examples": [ "live" ], "anyOf": [ { "const": "sandbox", "type": "string" }, { "const": "live", "type": "string" } ] }, "multi_account_setting": { "description": "The multi-account setting of the merchant", "examples": [ true, false ], "type": "boolean" }, "client_id": { "description": "The client ID of the merchant", "examples": [ "merchant_123" ], "type": "string" }, "account_owners": { "description": "The account owners associated with this merchant", "examples": [ [] ], "type": "array", "items": { "title": "Merchant Account Owner", "description": "Information about a merchant account owner", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the account owner", "examples": [ "123e4567-e89b-12d3-a456-426614174002" ], "type": "string" }, "full_name": { "description": "The full name of the account owner", "examples": [ "John Doe" ], "maxLength": 255, "type": "string" }, "email": { "format": "email", "description": "The email address of the account owner", "examples": [ "john.doe@example.com" ], "maxLength": 255, "type": "string" }, "phone_number": { "description": "The phone number in format: country_code;number (e.g., 44;7395236209)", "examples": [ "44;7395236209" ], "pattern": "^[0-9]{1,4};[0-9]{6,15}$", "type": "string" }, "role": { "description": "The role of the account owner within the organization", "examples": [ "Owner", "Director", "Manager" ], "maxLength": 100, "type": "string" }, "is_primary": { "description": "Whether this account owner is the primary contact", "examples": [ true, false ], "type": "boolean" }, "created_at": { "format": "date-time", "description": "The timestamp when the account owner was created", "examples": [ "2024-01-01T00:00:00Z" ], "type": "string" }, "updated_at": { "format": "date-time", "description": "The timestamp when the account owner was last updated", "examples": [ "2024-01-01T00:00:00Z" ], "type": "string" } }, "required": [ "id", "full_name", "email", "is_primary", "created_at", "updated_at" ] } } }, "required": [ "id", "brand_name", "uri", "category_code", "activation_status", "mode", "multi_account_setting", "client_id" ] } }, "required": [ "success", "data" ] }, "merchant_ListResponse": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "type": "array", "items": { "title": "Merchant", "description": "Merchant information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the merchant", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "brand_name": { "description": "The brand name of the merchant", "examples": [ "Example Brand" ], "type": "string" }, "uri": { "format": "uri", "description": "The URI of the merchant's website", "examples": [ "https://example-merchant.com" ], "type": "string" }, "category_code": { "description": "The merchant category code", "examples": [ "4816" ], "type": "string" }, "activation_status": { "description": "The activation status of the merchant", "examples": [ "active" ], "anyOf": [ { "const": "active", "type": "string" }, { "const": "inactive", "type": "string" } ] }, "mode": { "description": "The mode of the merchant", "examples": [ "live" ], "anyOf": [ { "const": "sandbox", "type": "string" }, { "const": "live", "type": "string" } ] }, "multi_account_setting": { "description": "The multi-account setting of the merchant", "examples": [ true, false ], "type": "boolean" }, "client_id": { "description": "The client ID of the merchant", "examples": [ "merchant_123" ], "type": "string" }, "account_owners": { "description": "The account owners associated with this merchant", "examples": [ [] ], "type": "array", "items": { "title": "Merchant Account Owner", "description": "Information about a merchant account owner", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the account owner", "examples": [ "123e4567-e89b-12d3-a456-426614174002" ], "type": "string" }, "full_name": { "description": "The full name of the account owner", "examples": [ "John Doe" ], "maxLength": 255, "type": "string" }, "email": { "format": "email", "description": "The email address of the account owner", "examples": [ "john.doe@example.com" ], "maxLength": 255, "type": "string" }, "phone_number": { "description": "The phone number in format: country_code;number (e.g., 44;7395236209)", "examples": [ "44;7395236209" ], "pattern": "^[0-9]{1,4};[0-9]{6,15}$", "type": "string" }, "role": { "description": "The role of the account owner within the organization", "examples": [ "Owner", "Director", "Manager" ], "maxLength": 100, "type": "string" }, "is_primary": { "description": "Whether this account owner is the primary contact", "examples": [ true, false ], "type": "boolean" }, "created_at": { "format": "date-time", "description": "The timestamp when the account owner was created", "examples": [ "2024-01-01T00:00:00Z" ], "type": "string" }, "updated_at": { "format": "date-time", "description": "The timestamp when the account owner was last updated", "examples": [ "2024-01-01T00:00:00Z" ], "type": "string" } }, "required": [ "id", "full_name", "email", "is_primary", "created_at", "updated_at" ] } } }, "required": [ "id", "brand_name", "uri", "category_code", "activation_status", "mode", "multi_account_setting", "client_id" ] } } }, "required": [ "success", "data" ] }, "merchant_GenerateClientSecretResponse": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "additionalProperties": false, "type": "object", "properties": { "client_secret": { "description": "The newly generated client secret", "examples": [ "secret_123abc" ], "type": "string" } }, "required": [ "client_secret" ] } }, "required": [ "success", "data" ] }, "merchant_RevokeClientSecretResponse": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "additionalProperties": false, "type": "object", "properties": { "message": { "description": "A message confirming the client secret was revoked", "examples": [ "Client secret successfully revoked" ], "type": "string" } }, "required": [ "message" ] } }, "required": [ "success", "data" ] }, "merchantBankAccount_PaymentSchemeInfo": { "title": "Payment Scheme Info", "description": "Payment scheme information for merchant bank account responses", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the payment scheme", "type": "string" }, "type": { "title": "Payment Scheme Type", "description": "The type of payment scheme", "examples": [ "SEPA_CREDIT_TRANSFER", "MULTIBANCO", "FASTER_PAYMENTS", "DANISH_DOMESTIC_CREDIT_TRANSFER" ], "anyOf": [ { "const": "SEPA_CREDIT_TRANSFER", "type": "string" }, { "const": "MULTIBANCO", "type": "string" }, { "const": "DANISH_DOMESTIC_CREDIT_TRANSFER", "type": "string" }, { "const": "FASTER_PAYMENTS", "type": "string" }, { "const": "BACS", "type": "string" } ] }, "name": { "description": "Human-readable name of the payment scheme", "examples": [ "SEPA Credit Transfer", "Multibanco" ], "type": "string" }, "is_active": { "description": "Whether this account actively receives payments for this scheme", "type": "boolean" }, "additional_payment_method": { "description": "Whether this scheme appears as a separate payment option in UI", "type": "boolean" } }, "required": [ "id", "type", "name", "is_active", "additional_payment_method" ] }, "merchantBankAccount_Account": { "title": "Merchant Bank Account", "description": "Merchant bank account information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the bank account", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "account_number": { "description": "The account number or IBAN of the bank account", "examples": [ "11223344" ], "type": "string" }, "currency": { "description": "The currency of the bank account", "examples": [ "GBP" ], "type": "string" }, "country": { "description": "The country of the bank account", "examples": [ "GB" ], "type": "string" }, "status": { "description": "The status of the bank account", "examples": [ "active" ], "anyOf": [ { "const": "active", "type": "string" }, { "const": "archived", "type": "string" } ] }, "created_at": { "format": "date-time", "description": "The creation date of the bank account", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" }, "updated_at": { "format": "date-time", "description": "The last update date of the bank account", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" }, "iban": { "description": "The IBAN of the bank account (for EU market)", "examples": [ "DE89370400440532013000" ], "type": "string" }, "bic": { "description": "The BIC of the bank account (for EU market)", "examples": [ "MARKDEF1100" ], "type": "string" }, "sort_code": { "description": "The sort code of the bank account (for UK market)", "examples": [ "123456" ], "type": "string" }, "routing_number": { "description": "The routing number of the bank account (for US market)", "examples": [ "123456789" ], "type": "string" }, "bban": { "description": "Basic Bank Account Number (e.g., for Norway)", "examples": [ "86011117947" ], "type": "string" }, "plusgiro_number": { "description": "PlusGiro number (for Sweden)", "examples": [ "41054685" ], "type": "string" }, "bsb": { "description": "Bank State Branch code (for Australia)", "examples": [ "062-000" ], "type": "string" }, "account_holder_name": { "description": "Name of the account holder", "examples": [ "John Smith", "Acme Corporation Ltd" ], "type": "string" }, "supported_payment_schemes": { "description": "Payment schemes this account supports", "type": "array", "items": { "title": "Payment Scheme Info", "description": "Payment scheme information for merchant bank account responses", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the payment scheme", "type": "string" }, "type": { "title": "Payment Scheme Type", "description": "The type of payment scheme", "examples": [ "SEPA_CREDIT_TRANSFER", "MULTIBANCO", "FASTER_PAYMENTS", "DANISH_DOMESTIC_CREDIT_TRANSFER" ], "anyOf": [ { "const": "SEPA_CREDIT_TRANSFER", "type": "string" }, { "const": "MULTIBANCO", "type": "string" }, { "const": "DANISH_DOMESTIC_CREDIT_TRANSFER", "type": "string" }, { "const": "FASTER_PAYMENTS", "type": "string" }, { "const": "BACS", "type": "string" } ] }, "name": { "description": "Human-readable name of the payment scheme", "examples": [ "SEPA Credit Transfer", "Multibanco" ], "type": "string" }, "is_active": { "description": "Whether this account actively receives payments for this scheme", "type": "boolean" }, "additional_payment_method": { "description": "Whether this scheme appears as a separate payment option in UI", "type": "boolean" } }, "required": [ "id", "type", "name", "is_active", "additional_payment_method" ] } } } }, "merchantBankAccount_Input": { "title": "Merchant Bank Account Input", "description": "Merchant bank account creation/update input", "additionalProperties": false, "type": "object", "properties": { "account_number": { "description": "The account number or IBAN of the bank account", "examples": [ "11223344" ], "type": "string" }, "currency": { "description": "The currency of the bank account", "examples": [ "GBP" ], "type": "string" }, "country": { "description": "The country of the bank account", "examples": [ "GB" ], "type": "string" }, "iban": { "description": "The IBAN of the bank account (for EU market)", "examples": [ "DE89370400440532013000" ], "type": "string" }, "bic": { "description": "The BIC of the bank account (for EU market)", "examples": [ "MARKDEF1100" ], "type": "string" }, "sort_code": { "description": "The sort code of the bank account (for UK market)", "examples": [ "123456" ], "type": "string" }, "routing_number": { "description": "The routing number of the bank account (for US market)", "examples": [ "123456789" ], "type": "string" }, "bank_id": { "format": "uuid", "description": "The optional unique identifier of the associated bank entity", "examples": [ "123e4567-e89b-12d3-a456-426614174002" ], "type": "string" }, "bban": { "description": "Basic Bank Account Number (e.g., for Norway)", "examples": [ "86011117947" ], "type": "string" }, "plusgiro_number": { "description": "PlusGiro number (for Sweden)", "examples": [ "41054685" ], "type": "string" }, "bsb": { "description": "Bank State Branch code (for Australia)", "examples": [ "062-000" ], "type": "string" }, "account_holder_name": { "description": "Name of the account holder", "examples": [ "John Smith", "Acme Corporation Ltd" ], "type": "string" }, "supported_payment_schemes": { "description": "Optional array of payment schemes with active status. If omitted, no payment schemes will be attached.", "examples": [ [ { "type": "SEPA_CREDIT_TRANSFER", "is_active": true } ], [ { "type": "SEPA_CREDIT_TRANSFER", "is_active": false }, { "type": "MULTIBANCO", "is_active": true } ] ], "minItems": 1, "maxItems": 10, "type": "array", "items": { "type": "object", "properties": { "type": { "title": "Payment Scheme Type", "description": "The type of payment scheme", "examples": [ "SEPA_CREDIT_TRANSFER", "MULTIBANCO", "FASTER_PAYMENTS", "DANISH_DOMESTIC_CREDIT_TRANSFER" ], "anyOf": [ { "const": "SEPA_CREDIT_TRANSFER", "type": "string" }, { "const": "MULTIBANCO", "type": "string" }, { "const": "DANISH_DOMESTIC_CREDIT_TRANSFER", "type": "string" }, { "const": "FASTER_PAYMENTS", "type": "string" }, { "const": "BACS", "type": "string" } ] }, "is_active": { "description": "Whether this account should actively receive payments for this scheme. Defaults to false if not specified.", "type": "boolean" } }, "required": [ "type" ] } } }, "required": [ "currency", "country" ] }, "merchantBankAccount_Response": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "title": "Merchant Bank Account", "description": "Merchant bank account information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the bank account", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "account_number": { "description": "The account number or IBAN of the bank account", "examples": [ "11223344" ], "type": "string" }, "currency": { "description": "The currency of the bank account", "examples": [ "GBP" ], "type": "string" }, "country": { "description": "The country of the bank account", "examples": [ "GB" ], "type": "string" }, "status": { "description": "The status of the bank account", "examples": [ "active" ], "anyOf": [ { "const": "active", "type": "string" }, { "const": "archived", "type": "string" } ] }, "created_at": { "format": "date-time", "description": "The creation date of the bank account", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" }, "updated_at": { "format": "date-time", "description": "The last update date of the bank account", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" }, "iban": { "description": "The IBAN of the bank account (for EU market)", "examples": [ "DE89370400440532013000" ], "type": "string" }, "bic": { "description": "The BIC of the bank account (for EU market)", "examples": [ "MARKDEF1100" ], "type": "string" }, "sort_code": { "description": "The sort code of the bank account (for UK market)", "examples": [ "123456" ], "type": "string" }, "routing_number": { "description": "The routing number of the bank account (for US market)", "examples": [ "123456789" ], "type": "string" }, "bban": { "description": "Basic Bank Account Number (e.g., for Norway)", "examples": [ "86011117947" ], "type": "string" }, "plusgiro_number": { "description": "PlusGiro number (for Sweden)", "examples": [ "41054685" ], "type": "string" }, "bsb": { "description": "Bank State Branch code (for Australia)", "examples": [ "062-000" ], "type": "string" }, "account_holder_name": { "description": "Name of the account holder", "examples": [ "John Smith", "Acme Corporation Ltd" ], "type": "string" }, "supported_payment_schemes": { "description": "Payment schemes this account supports", "type": "array", "items": { "title": "Payment Scheme Info", "description": "Payment scheme information for merchant bank account responses", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the payment scheme", "type": "string" }, "type": { "title": "Payment Scheme Type", "description": "The type of payment scheme", "examples": [ "SEPA_CREDIT_TRANSFER", "MULTIBANCO", "FASTER_PAYMENTS", "DANISH_DOMESTIC_CREDIT_TRANSFER" ], "anyOf": [ { "const": "SEPA_CREDIT_TRANSFER", "type": "string" }, { "const": "MULTIBANCO", "type": "string" }, { "const": "DANISH_DOMESTIC_CREDIT_TRANSFER", "type": "string" }, { "const": "FASTER_PAYMENTS", "type": "string" }, { "const": "BACS", "type": "string" } ] }, "name": { "description": "Human-readable name of the payment scheme", "examples": [ "SEPA Credit Transfer", "Multibanco" ], "type": "string" }, "is_active": { "description": "Whether this account actively receives payments for this scheme", "type": "boolean" }, "additional_payment_method": { "description": "Whether this scheme appears as a separate payment option in UI", "type": "boolean" } }, "required": [ "id", "type", "name", "is_active", "additional_payment_method" ] } } } } }, "required": [ "success", "data" ] }, "merchantBankAccount_ListResponse": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "type": "array", "items": { "title": "Merchant Bank Account", "description": "Merchant bank account information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the bank account", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "account_number": { "description": "The account number or IBAN of the bank account", "examples": [ "11223344" ], "type": "string" }, "currency": { "description": "The currency of the bank account", "examples": [ "GBP" ], "type": "string" }, "country": { "description": "The country of the bank account", "examples": [ "GB" ], "type": "string" }, "status": { "description": "The status of the bank account", "examples": [ "active" ], "anyOf": [ { "const": "active", "type": "string" }, { "const": "archived", "type": "string" } ] }, "created_at": { "format": "date-time", "description": "The creation date of the bank account", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" }, "updated_at": { "format": "date-time", "description": "The last update date of the bank account", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" }, "iban": { "description": "The IBAN of the bank account (for EU market)", "examples": [ "DE89370400440532013000" ], "type": "string" }, "bic": { "description": "The BIC of the bank account (for EU market)", "examples": [ "MARKDEF1100" ], "type": "string" }, "sort_code": { "description": "The sort code of the bank account (for UK market)", "examples": [ "123456" ], "type": "string" }, "routing_number": { "description": "The routing number of the bank account (for US market)", "examples": [ "123456789" ], "type": "string" }, "bban": { "description": "Basic Bank Account Number (e.g., for Norway)", "examples": [ "86011117947" ], "type": "string" }, "plusgiro_number": { "description": "PlusGiro number (for Sweden)", "examples": [ "41054685" ], "type": "string" }, "bsb": { "description": "Bank State Branch code (for Australia)", "examples": [ "062-000" ], "type": "string" }, "account_holder_name": { "description": "Name of the account holder", "examples": [ "John Smith", "Acme Corporation Ltd" ], "type": "string" }, "supported_payment_schemes": { "description": "Payment schemes this account supports", "type": "array", "items": { "title": "Payment Scheme Info", "description": "Payment scheme information for merchant bank account responses", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the payment scheme", "type": "string" }, "type": { "title": "Payment Scheme Type", "description": "The type of payment scheme", "examples": [ "SEPA_CREDIT_TRANSFER", "MULTIBANCO", "FASTER_PAYMENTS", "DANISH_DOMESTIC_CREDIT_TRANSFER" ], "anyOf": [ { "const": "SEPA_CREDIT_TRANSFER", "type": "string" }, { "const": "MULTIBANCO", "type": "string" }, { "const": "DANISH_DOMESTIC_CREDIT_TRANSFER", "type": "string" }, { "const": "FASTER_PAYMENTS", "type": "string" }, { "const": "BACS", "type": "string" } ] }, "name": { "description": "Human-readable name of the payment scheme", "examples": [ "SEPA Credit Transfer", "Multibanco" ], "type": "string" }, "is_active": { "description": "Whether this account actively receives payments for this scheme", "type": "boolean" }, "additional_payment_method": { "description": "Whether this scheme appears as a separate payment option in UI", "type": "boolean" } }, "required": [ "id", "type", "name", "is_active", "additional_payment_method" ] } } } } } }, "required": [ "success", "data" ] }, "merchantBankAccount_GetActiveInput": { "title": "Get Active Merchant Bank Accounts Input", "description": "Query parameters for fetching active merchant bank accounts", "additionalProperties": false, "type": "object", "properties": { "currency": { "description": "Optional currency code (ISO 4217) to filter active accounts", "examples": [ "EUR", "GBP" ], "type": "string" } } }, "legalEntity_Entity": { "title": "Legal Entity", "description": "Legal entity information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the legal entity", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "type": { "description": "The type of legal entity", "examples": [ "company" ], "anyOf": [ { "const": "company", "type": "string" }, { "const": "individual", "type": "string" } ] }, "company_name": { "description": "The name of the company", "examples": [ "Example Company" ], "minLength": 2, "maxLength": 30, "type": "string" }, "company_number": { "description": "The registration number of the company", "examples": [ "12345678" ], "minLength": 4, "maxLength": 20, "type": "string" }, "vat_number": { "description": "The VAT number of the company", "examples": [ "GB123456789" ], "minLength": 4, "maxLength": 20, "type": "string" }, "tax_id": { "description": "The Tax ID of the company", "examples": [ "12345678901" ], "minLength": 11, "maxLength": 11, "type": "string" }, "company_structure": { "description": "The legal structure of the company", "examples": [ "limited_liability_company" ], "anyOf": [ { "const": "limited_liability_company", "type": "string" }, { "const": "private_limited_company", "type": "string" }, { "const": "public_limited_company", "type": "string" }, { "const": "general_partnership", "type": "string" }, { "const": "limited_liability_partnership", "type": "string" } ] }, "country_of_incorporation": { "description": "The country where the company is incorporated - ISO Format", "examples": [ "GB" ], "minLength": 2, "type": "string" }, "incorporation_date": { "format": "date", "description": "The date when the company was incorporated", "examples": [ "2024-01-01" ], "type": "string" }, "registered_office_address": { "title": "Address", "description": "A physical address", "additionalProperties": true, "type": "object", "properties": { "address_line1": { "description": "The first line of the address", "examples": [ "12 West Common Drive" ], "type": "string" }, "address_line2": { "description": "The second line of the address", "examples": [ "Flat 1" ], "type": "string" }, "apartment": { "description": "The apartment, unit, or suite number", "examples": [ "Apt 5B", "Unit 12", "Suite 200" ], "type": "string" }, "city": { "description": "The city", "examples": [ "London" ], "type": "string" }, "state_province": { "description": "The state or province", "examples": [ "Greater London" ], "type": "string" }, "country": { "description": "The country code", "examples": [ "GB" ], "type": "string" }, "postal_code": { "description": "The postal code", "examples": [ "SE1 1AA" ], "type": "string" } }, "required": [ "address_line1", "city", "country", "postal_code" ] }, "company_operating_address": { "title": "Address", "description": "A physical address", "additionalProperties": true, "type": "object", "properties": { "address_line1": { "description": "The first line of the address", "examples": [ "12 West Common Drive" ], "type": "string" }, "address_line2": { "description": "The second line of the address", "examples": [ "Flat 1" ], "type": "string" }, "apartment": { "description": "The apartment, unit, or suite number", "examples": [ "Apt 5B", "Unit 12", "Suite 200" ], "type": "string" }, "city": { "description": "The city", "examples": [ "London" ], "type": "string" }, "state_province": { "description": "The state or province", "examples": [ "Greater London" ], "type": "string" }, "country": { "description": "The country code", "examples": [ "GB" ], "type": "string" }, "postal_code": { "description": "The postal code", "examples": [ "SE1 1AA" ], "type": "string" } }, "required": [ "address_line1", "city", "country", "postal_code" ] }, "contact_name": { "description": "The name of the primary contact", "examples": [ "Jane Doe" ], "minLength": 2, "maxLength": 30, "type": "string" }, "contact_email": { "format": "email", "description": "The email of the primary contact", "examples": [ "jane.doe@example.com" ], "type": "string" }, "contact_phone_number": { "description": "The phone number in format: country_code;number (e.g., 44;7395236209)", "examples": [ "44;7395236209" ], "pattern": "^[0-9]{1,4};[0-9]{6,15}$", "type": "string" }, "annual_revenue_amount": { "description": "The annual revenue amount", "examples": [ 1000000 ], "type": "number" }, "annual_revenue_currency": { "description": "The currency of the annual revenue", "examples": [ "USD", "EUR", "GBP" ], "minLength": 3, "maxLength": 3, "type": "string" }, "employees_number": { "description": "The number of employees category", "examples": [ "small" ], "anyOf": [ { "const": "small", "type": "string" }, { "const": "medium", "type": "string" }, { "const": "large", "type": "string" }, { "const": "enterprise", "type": "string" } ] }, "first_name": { "description": "The first name of the individual", "examples": [ "John" ], "minLength": 1, "maxLength": 30, "type": "string" }, "last_name": { "description": "The last name of the individual", "examples": [ "Alison" ], "minLength": 1, "maxLength": 30, "type": "string" }, "email": { "format": "email", "description": "The email of the individual", "examples": [ "john.alison@example.com" ], "type": "string" }, "phone_number": { "description": "The phone number in format: country_code;number (e.g., 44;7395236209)", "examples": [ "44;7395236209" ], "pattern": "^[0-9]{1,4};[0-9]{6,15}$", "type": "string" }, "dob": { "format": "date", "description": "The date of birth of the individual", "examples": [ "1990-01-01" ], "type": "string" }, "citizenship": { "description": "The Country of citizenship of the individual in ISO Format", "examples": [ "GB" ], "minLength": 2, "type": "string" }, "residency_address": { "title": "Address", "description": "A physical address", "additionalProperties": true, "type": "object", "properties": { "address_line1": { "description": "The first line of the address", "examples": [ "12 West Common Drive" ], "type": "string" }, "address_line2": { "description": "The second line of the address", "examples": [ "Flat 1" ], "type": "string" }, "apartment": { "description": "The apartment, unit, or suite number", "examples": [ "Apt 5B", "Unit 12", "Suite 200" ], "type": "string" }, "city": { "description": "The city", "examples": [ "London" ], "type": "string" }, "state_province": { "description": "The state or province", "examples": [ "Greater London" ], "type": "string" }, "country": { "description": "The country code", "examples": [ "GB" ], "type": "string" }, "postal_code": { "description": "The postal code", "examples": [ "SE1 1AA" ], "type": "string" } }, "required": [ "address_line1", "city", "country", "postal_code" ] }, "verification_required": { "description": "Whether verification is required for this legal entity", "examples": [ true ], "type": "boolean" }, "verification_link": { "description": "The link to verify the legal entity", "examples": [ "https://verify.example.com/entity/123" ], "type": "string" }, "verification_status": { "description": "The verification status of the legal entity", "examples": [ "pending_verification" ], "anyOf": [ { "const": "pending_verification", "type": "string" }, { "const": "in_review", "type": "string" }, { "const": "more_information_required", "type": "string" }, { "const": "verified", "type": "string" }, { "const": "rejected", "type": "string" } ] } }, "required": [ "id", "verification_required", "verification_status" ] }, "legalEntity_Input": { "title": "Legal Entity Input", "description": "Legal entity creation/update input", "additionalProperties": false, "type": "object", "properties": { "type": { "description": "The type of legal entity", "examples": [ "company" ], "anyOf": [ { "const": "company", "type": "string" }, { "const": "individual", "type": "string" } ] }, "company_name": { "description": "The name of the company", "examples": [ "Example Company" ], "minLength": 2, "maxLength": 30, "type": "string" }, "company_number": { "description": "The registration number of the company", "examples": [ "12345678" ], "minLength": 4, "maxLength": 20, "type": "string" }, "vat_number": { "description": "The VAT number of the company", "examples": [ "GB123456789" ], "minLength": 4, "maxLength": 20, "type": "string" }, "tax_id": { "description": "The Tax ID of the company", "examples": [ "12345678901" ], "minLength": 11, "maxLength": 11, "type": "string" }, "company_structure": { "description": "The legal structure of the company", "examples": [ "limited_liability_company" ], "anyOf": [ { "const": "limited_liability_company", "type": "string" }, { "const": "private_limited_company", "type": "string" }, { "const": "public_limited_company", "type": "string" }, { "const": "general_partnership", "type": "string" }, { "const": "limited_liability_partnership", "type": "string" } ] }, "country_of_incorporation": { "description": "The country where the company is incorporated - ISO Format", "examples": [ "GB" ], "minLength": 2, "type": "string" }, "incorporation_date": { "format": "date", "description": "The date when the company was incorporated", "examples": [ "2024-01-01" ], "type": "string" }, "registered_office_address": { "title": "Address", "description": "A physical address", "additionalProperties": true, "type": "object", "properties": { "address_line1": { "description": "The first line of the address", "examples": [ "12 West Common Drive" ], "type": "string" }, "address_line2": { "description": "The second line of the address", "examples": [ "Flat 1" ], "type": "string" }, "apartment": { "description": "The apartment, unit, or suite number", "examples": [ "Apt 5B", "Unit 12", "Suite 200" ], "type": "string" }, "city": { "description": "The city", "examples": [ "London" ], "type": "string" }, "state_province": { "description": "The state or province", "examples": [ "Greater London" ], "type": "string" }, "country": { "description": "The country code", "examples": [ "GB" ], "type": "string" }, "postal_code": { "description": "The postal code", "examples": [ "SE1 1AA" ], "type": "string" } }, "required": [ "address_line1", "city", "country", "postal_code" ] }, "company_operating_address": { "title": "Address", "description": "A physical address", "additionalProperties": true, "type": "object", "properties": { "address_line1": { "description": "The first line of the address", "examples": [ "12 West Common Drive" ], "type": "string" }, "address_line2": { "description": "The second line of the address", "examples": [ "Flat 1" ], "type": "string" }, "apartment": { "description": "The apartment, unit, or suite number", "examples": [ "Apt 5B", "Unit 12", "Suite 200" ], "type": "string" }, "city": { "description": "The city", "examples": [ "London" ], "type": "string" }, "state_province": { "description": "The state or province", "examples": [ "Greater London" ], "type": "string" }, "country": { "description": "The country code", "examples": [ "GB" ], "type": "string" }, "postal_code": { "description": "The postal code", "examples": [ "SE1 1AA" ], "type": "string" } }, "required": [ "address_line1", "city", "country", "postal_code" ] }, "contact_name": { "description": "The name of the primary contact", "examples": [ "Jane Doe" ], "minLength": 2, "maxLength": 30, "type": "string" }, "contact_email": { "format": "email", "description": "The email of the primary contact", "examples": [ "jane.doe@example.com" ], "type": "string" }, "contact_phone_number": { "description": "The phone number in format: country_code;number (e.g., 44;7395236209)", "examples": [ "44;7395236209" ], "pattern": "^[0-9]{1,4};[0-9]{6,15}$", "type": "string" }, "annual_revenue_amount": { "description": "The annual revenue amount", "examples": [ 1000000 ], "type": "number" }, "annual_revenue_currency": { "description": "The currency of the annual revenue", "examples": [ "USD", "EUR", "GBP" ], "minLength": 3, "maxLength": 3, "type": "string" }, "employees_number": { "description": "The number of employees category", "examples": [ "small" ], "anyOf": [ { "const": "small", "type": "string" }, { "const": "medium", "type": "string" }, { "const": "large", "type": "string" }, { "const": "enterprise", "type": "string" } ] }, "first_name": { "description": "The first name of the individual", "examples": [ "John" ], "minLength": 1, "maxLength": 30, "type": "string" }, "last_name": { "description": "The last name of the individual", "examples": [ "Alison" ], "minLength": 1, "maxLength": 30, "type": "string" }, "email": { "format": "email", "description": "The email of the individual", "examples": [ "john.alison@example.com" ], "type": "string" }, "phone_number": { "description": "The phone number in format: country_code;number (e.g., 44;7395236209)", "examples": [ "44;7395236209" ], "pattern": "^[0-9]{1,4};[0-9]{6,15}$", "type": "string" }, "dob": { "format": "date", "description": "The date of birth of the individual", "examples": [ "1990-01-01" ], "type": "string" }, "citizenship": { "description": "The Country of citizenship of the individual in ISO Format", "examples": [ "GB" ], "minLength": 2, "type": "string" }, "residency_address": { "title": "Address", "description": "A physical address", "additionalProperties": true, "type": "object", "properties": { "address_line1": { "description": "The first line of the address", "examples": [ "12 West Common Drive" ], "type": "string" }, "address_line2": { "description": "The second line of the address", "examples": [ "Flat 1" ], "type": "string" }, "apartment": { "description": "The apartment, unit, or suite number", "examples": [ "Apt 5B", "Unit 12", "Suite 200" ], "type": "string" }, "city": { "description": "The city", "examples": [ "London" ], "type": "string" }, "state_province": { "description": "The state or province", "examples": [ "Greater London" ], "type": "string" }, "country": { "description": "The country code", "examples": [ "GB" ], "type": "string" }, "postal_code": { "description": "The postal code", "examples": [ "SE1 1AA" ], "type": "string" } }, "required": [ "address_line1", "city", "country", "postal_code" ] } } }, "legalEntity_Response": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "title": "Legal Entity", "description": "Legal entity information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the legal entity", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "type": { "description": "The type of legal entity", "examples": [ "company" ], "anyOf": [ { "const": "company", "type": "string" }, { "const": "individual", "type": "string" } ] }, "company_name": { "description": "The name of the company", "examples": [ "Example Company" ], "minLength": 2, "maxLength": 30, "type": "string" }, "company_number": { "description": "The registration number of the company", "examples": [ "12345678" ], "minLength": 4, "maxLength": 20, "type": "string" }, "vat_number": { "description": "The VAT number of the company", "examples": [ "GB123456789" ], "minLength": 4, "maxLength": 20, "type": "string" }, "tax_id": { "description": "The Tax ID of the company", "examples": [ "12345678901" ], "minLength": 11, "maxLength": 11, "type": "string" }, "company_structure": { "description": "The legal structure of the company", "examples": [ "limited_liability_company" ], "anyOf": [ { "const": "limited_liability_company", "type": "string" }, { "const": "private_limited_company", "type": "string" }, { "const": "public_limited_company", "type": "string" }, { "const": "general_partnership", "type": "string" }, { "const": "limited_liability_partnership", "type": "string" } ] }, "country_of_incorporation": { "description": "The country where the company is incorporated - ISO Format", "examples": [ "GB" ], "minLength": 2, "type": "string" }, "incorporation_date": { "format": "date", "description": "The date when the company was incorporated", "examples": [ "2024-01-01" ], "type": "string" }, "registered_office_address": { "title": "Address", "description": "A physical address", "additionalProperties": true, "type": "object", "properties": { "address_line1": { "description": "The first line of the address", "examples": [ "12 West Common Drive" ], "type": "string" }, "address_line2": { "description": "The second line of the address", "examples": [ "Flat 1" ], "type": "string" }, "apartment": { "description": "The apartment, unit, or suite number", "examples": [ "Apt 5B", "Unit 12", "Suite 200" ], "type": "string" }, "city": { "description": "The city", "examples": [ "London" ], "type": "string" }, "state_province": { "description": "The state or province", "examples": [ "Greater London" ], "type": "string" }, "country": { "description": "The country code", "examples": [ "GB" ], "type": "string" }, "postal_code": { "description": "The postal code", "examples": [ "SE1 1AA" ], "type": "string" } }, "required": [ "address_line1", "city", "country", "postal_code" ] }, "company_operating_address": { "title": "Address", "description": "A physical address", "additionalProperties": true, "type": "object", "properties": { "address_line1": { "description": "The first line of the address", "examples": [ "12 West Common Drive" ], "type": "string" }, "address_line2": { "description": "The second line of the address", "examples": [ "Flat 1" ], "type": "string" }, "apartment": { "description": "The apartment, unit, or suite number", "examples": [ "Apt 5B", "Unit 12", "Suite 200" ], "type": "string" }, "city": { "description": "The city", "examples": [ "London" ], "type": "string" }, "state_province": { "description": "The state or province", "examples": [ "Greater London" ], "type": "string" }, "country": { "description": "The country code", "examples": [ "GB" ], "type": "string" }, "postal_code": { "description": "The postal code", "examples": [ "SE1 1AA" ], "type": "string" } }, "required": [ "address_line1", "city", "country", "postal_code" ] }, "contact_name": { "description": "The name of the primary contact", "examples": [ "Jane Doe" ], "minLength": 2, "maxLength": 30, "type": "string" }, "contact_email": { "format": "email", "description": "The email of the primary contact", "examples": [ "jane.doe@example.com" ], "type": "string" }, "contact_phone_number": { "description": "The phone number in format: country_code;number (e.g., 44;7395236209)", "examples": [ "44;7395236209" ], "pattern": "^[0-9]{1,4};[0-9]{6,15}$", "type": "string" }, "annual_revenue_amount": { "description": "The annual revenue amount", "examples": [ 1000000 ], "type": "number" }, "annual_revenue_currency": { "description": "The currency of the annual revenue", "examples": [ "USD", "EUR", "GBP" ], "minLength": 3, "maxLength": 3, "type": "string" }, "employees_number": { "description": "The number of employees category", "examples": [ "small" ], "anyOf": [ { "const": "small", "type": "string" }, { "const": "medium", "type": "string" }, { "const": "large", "type": "string" }, { "const": "enterprise", "type": "string" } ] }, "first_name": { "description": "The first name of the individual", "examples": [ "John" ], "minLength": 1, "maxLength": 30, "type": "string" }, "last_name": { "description": "The last name of the individual", "examples": [ "Alison" ], "minLength": 1, "maxLength": 30, "type": "string" }, "email": { "format": "email", "description": "The email of the individual", "examples": [ "john.alison@example.com" ], "type": "string" }, "phone_number": { "description": "The phone number in format: country_code;number (e.g., 44;7395236209)", "examples": [ "44;7395236209" ], "pattern": "^[0-9]{1,4};[0-9]{6,15}$", "type": "string" }, "dob": { "format": "date", "description": "The date of birth of the individual", "examples": [ "1990-01-01" ], "type": "string" }, "citizenship": { "description": "The Country of citizenship of the individual in ISO Format", "examples": [ "GB" ], "minLength": 2, "type": "string" }, "residency_address": { "title": "Address", "description": "A physical address", "additionalProperties": true, "type": "object", "properties": { "address_line1": { "description": "The first line of the address", "examples": [ "12 West Common Drive" ], "type": "string" }, "address_line2": { "description": "The second line of the address", "examples": [ "Flat 1" ], "type": "string" }, "apartment": { "description": "The apartment, unit, or suite number", "examples": [ "Apt 5B", "Unit 12", "Suite 200" ], "type": "string" }, "city": { "description": "The city", "examples": [ "London" ], "type": "string" }, "state_province": { "description": "The state or province", "examples": [ "Greater London" ], "type": "string" }, "country": { "description": "The country code", "examples": [ "GB" ], "type": "string" }, "postal_code": { "description": "The postal code", "examples": [ "SE1 1AA" ], "type": "string" } }, "required": [ "address_line1", "city", "country", "postal_code" ] }, "verification_required": { "description": "Whether verification is required for this legal entity", "examples": [ true ], "type": "boolean" }, "verification_link": { "description": "The link to verify the legal entity", "examples": [ "https://verify.example.com/entity/123" ], "type": "string" }, "verification_status": { "description": "The verification status of the legal entity", "examples": [ "pending_verification" ], "anyOf": [ { "const": "pending_verification", "type": "string" }, { "const": "in_review", "type": "string" }, { "const": "more_information_required", "type": "string" }, { "const": "verified", "type": "string" }, { "const": "rejected", "type": "string" } ] } }, "required": [ "id", "verification_required", "verification_status" ] } }, "required": [ "success", "data" ] }, "shareholder_OwnershipDetails": { "title": "Ownership Details", "description": "The ownership details of the shareholder", "additionalProperties": false, "type": "object", "properties": { "ownership_share": { "minimum": 10, "maximum": 100, "description": "The percentage of ownership share", "examples": [ 25 ], "type": "number" }, "ownership_roles": { "minItems": 1, "description": "The roles of the shareholder", "examples": [ [ "owner", "director" ] ], "type": "array", "items": { "anyOf": [ { "const": "owner", "type": "string" }, { "const": "director", "type": "string" }, { "const": "executive", "type": "string" }, { "const": "representative", "type": "string" }, { "const": "user", "type": "string" } ] } }, "id_type": { "description": "The type of identification document", "examples": [ "passport", "national_id", "drivers_license" ], "type": "string" }, "id_number": { "description": "The identification document number", "examples": [ "AB123456" ], "type": "string" }, "id_issue_country": { "description": "The country that issued the identification document (ISO 2-letter code)", "examples": [ "US", "GB" ], "minLength": 2, "maxLength": 2, "type": "string" } }, "required": [ "ownership_share", "ownership_roles" ] }, "shareholder_Shareholder": { "title": "Shareholder", "description": "Shareholder information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the shareholder", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "ownership_details": { "description": "The ownership details of the shareholder", "required": [ "ownership_share", "ownership_roles" ], "type": "object", "properties": { "ownership_share": { "minimum": 10, "maximum": 100, "description": "The percentage of ownership share", "examples": [ 25 ], "type": "number" }, "ownership_roles": { "minItems": 1, "description": "The roles of the shareholder", "examples": [ [ "owner", "director" ] ], "type": "array", "items": { "anyOf": [ { "const": "owner", "type": "string" }, { "const": "director", "type": "string" }, { "const": "executive", "type": "string" }, { "const": "representative", "type": "string" }, { "const": "user", "type": "string" } ] } }, "id_type": { "description": "The type of identification document", "examples": [ "passport", "national_id", "drivers_license" ], "type": "string" }, "id_number": { "description": "The identification document number", "examples": [ "AB123456" ], "type": "string" }, "id_issue_country": { "description": "The country that issued the identification document (ISO 2-letter code)", "examples": [ "US", "GB" ], "minLength": 2, "maxLength": 2, "type": "string" } } }, "legal_entity": { "description": "The legal entity details of the shareholder", "type": "object", "properties": { "type": { "description": "The type of legal entity", "examples": [ "company" ], "anyOf": [ { "const": "company", "type": "string" }, { "const": "individual", "type": "string" } ] }, "company_name": { "description": "The name of the company", "examples": [ "Example Company" ], "minLength": 2, "maxLength": 30, "type": "string" }, "company_number": { "description": "The registration number of the company", "examples": [ "12345678" ], "minLength": 4, "maxLength": 20, "type": "string" }, "vat_number": { "description": "The VAT number of the company", "examples": [ "GB123456789" ], "minLength": 4, "maxLength": 20, "type": "string" }, "tax_id": { "description": "The Tax ID of the company", "examples": [ "12345678901" ], "minLength": 11, "maxLength": 11, "type": "string" }, "company_structure": { "description": "The legal structure of the company", "examples": [ "limited_liability_company" ], "anyOf": [ { "const": "limited_liability_company", "type": "string" }, { "const": "private_limited_company", "type": "string" }, { "const": "public_limited_company", "type": "string" }, { "const": "general_partnership", "type": "string" }, { "const": "limited_liability_partnership", "type": "string" } ] }, "country_of_incorporation": { "description": "The country where the company is incorporated - ISO Format", "examples": [ "GB" ], "minLength": 2, "type": "string" }, "incorporation_date": { "format": "date", "description": "The date when the company was incorporated", "examples": [ "2024-01-01" ], "type": "string" }, "registered_office_address": { "title": "Address", "description": "A physical address", "additionalProperties": true, "type": "object", "properties": { "address_line1": { "description": "The first line of the address", "examples": [ "12 West Common Drive" ], "type": "string" }, "address_line2": { "description": "The second line of the address", "examples": [ "Flat 1" ], "type": "string" }, "apartment": { "description": "The apartment, unit, or suite number", "examples": [ "Apt 5B", "Unit 12", "Suite 200" ], "type": "string" }, "city": { "description": "The city", "examples": [ "London" ], "type": "string" }, "state_province": { "description": "The state or province", "examples": [ "Greater London" ], "type": "string" }, "country": { "description": "The country code", "examples": [ "GB" ], "type": "string" }, "postal_code": { "description": "The postal code", "examples": [ "SE1 1AA" ], "type": "string" } }, "required": [ "address_line1", "city", "country", "postal_code" ] }, "company_operating_address": { "title": "Address", "description": "A physical address", "additionalProperties": true, "type": "object", "properties": { "address_line1": { "description": "The first line of the address", "examples": [ "12 West Common Drive" ], "type": "string" }, "address_line2": { "description": "The second line of the address", "examples": [ "Flat 1" ], "type": "string" }, "apartment": { "description": "The apartment, unit, or suite number", "examples": [ "Apt 5B", "Unit 12", "Suite 200" ], "type": "string" }, "city": { "description": "The city", "examples": [ "London" ], "type": "string" }, "state_province": { "description": "The state or province", "examples": [ "Greater London" ], "type": "string" }, "country": { "description": "The country code", "examples": [ "GB" ], "type": "string" }, "postal_code": { "description": "The postal code", "examples": [ "SE1 1AA" ], "type": "string" } }, "required": [ "address_line1", "city", "country", "postal_code" ] }, "contact_name": { "description": "The name of the primary contact", "examples": [ "Jane Doe" ], "minLength": 2, "maxLength": 30, "type": "string" }, "contact_email": { "format": "email", "description": "The email of the primary contact", "examples": [ "jane.doe@example.com" ], "type": "string" }, "contact_phone_number": { "description": "The phone number in format: country_code;number (e.g., 44;7395236209)", "examples": [ "44;7395236209" ], "pattern": "^[0-9]{1,4};[0-9]{6,15}$", "type": "string" }, "annual_revenue_amount": { "description": "The annual revenue amount", "examples": [ 1000000 ], "type": "number" }, "annual_revenue_currency": { "description": "The currency of the annual revenue", "examples": [ "USD", "EUR", "GBP" ], "minLength": 3, "maxLength": 3, "type": "string" }, "employees_number": { "description": "The number of employees category", "examples": [ "small" ], "anyOf": [ { "const": "small", "type": "string" }, { "const": "medium", "type": "string" }, { "const": "large", "type": "string" }, { "const": "enterprise", "type": "string" } ] }, "first_name": { "description": "The first name of the individual", "examples": [ "John" ], "minLength": 1, "maxLength": 30, "type": "string" }, "last_name": { "description": "The last name of the individual", "examples": [ "Alison" ], "minLength": 1, "maxLength": 30, "type": "string" }, "email": { "format": "email", "description": "The email of the individual", "examples": [ "john.alison@example.com" ], "type": "string" }, "phone_number": { "description": "The phone number in format: country_code;number (e.g., 44;7395236209)", "examples": [ "44;7395236209" ], "pattern": "^[0-9]{1,4};[0-9]{6,15}$", "type": "string" }, "dob": { "format": "date", "description": "The date of birth of the individual", "examples": [ "1990-01-01" ], "type": "string" }, "citizenship": { "description": "The Country of citizenship of the individual in ISO Format", "examples": [ "GB" ], "minLength": 2, "type": "string" }, "residency_address": { "title": "Address", "description": "A physical address", "additionalProperties": true, "type": "object", "properties": { "address_line1": { "description": "The first line of the address", "examples": [ "12 West Common Drive" ], "type": "string" }, "address_line2": { "description": "The second line of the address", "examples": [ "Flat 1" ], "type": "string" }, "apartment": { "description": "The apartment, unit, or suite number", "examples": [ "Apt 5B", "Unit 12", "Suite 200" ], "type": "string" }, "city": { "description": "The city", "examples": [ "London" ], "type": "string" }, "state_province": { "description": "The state or province", "examples": [ "Greater London" ], "type": "string" }, "country": { "description": "The country code", "examples": [ "GB" ], "type": "string" }, "postal_code": { "description": "The postal code", "examples": [ "SE1 1AA" ], "type": "string" } }, "required": [ "address_line1", "city", "country", "postal_code" ] } } } }, "required": [ "id", "ownership_details", "legal_entity" ] }, "shareholder_Input": { "title": "Shareholder Input", "description": "Shareholder creation input", "additionalProperties": false, "type": "object", "properties": { "ownership_details": { "description": "The ownership details of the shareholder", "required": [ "ownership_share", "ownership_roles" ], "type": "object", "properties": { "ownership_share": { "minimum": 10, "maximum": 100, "description": "The percentage of ownership share", "examples": [ 25 ], "type": "number" }, "ownership_roles": { "minItems": 1, "description": "The roles of the shareholder", "examples": [ [ "owner", "director" ] ], "type": "array", "items": { "anyOf": [ { "const": "owner", "type": "string" }, { "const": "director", "type": "string" }, { "const": "executive", "type": "string" }, { "const": "representative", "type": "string" }, { "const": "user", "type": "string" } ] } }, "id_type": { "description": "The type of identification document", "examples": [ "passport", "national_id", "drivers_license" ], "type": "string" }, "id_number": { "description": "The identification document number", "examples": [ "AB123456" ], "type": "string" }, "id_issue_country": { "description": "The country that issued the identification document (ISO 2-letter code)", "examples": [ "US", "GB" ], "minLength": 2, "maxLength": 2, "type": "string" } } }, "legal_entity": { "description": "The legal entity details of the shareholder", "type": "object", "properties": { "type": { "description": "The type of legal entity", "examples": [ "company" ], "anyOf": [ { "const": "company", "type": "string" }, { "const": "individual", "type": "string" } ] }, "company_name": { "description": "The name of the company", "examples": [ "Example Company" ], "minLength": 2, "maxLength": 30, "type": "string" }, "company_number": { "description": "The registration number of the company", "examples": [ "12345678" ], "minLength": 4, "maxLength": 20, "type": "string" }, "vat_number": { "description": "The VAT number of the company", "examples": [ "GB123456789" ], "minLength": 4, "maxLength": 20, "type": "string" }, "tax_id": { "description": "The Tax ID of the company", "examples": [ "12345678901" ], "minLength": 11, "maxLength": 11, "type": "string" }, "company_structure": { "description": "The legal structure of the company", "examples": [ "limited_liability_company" ], "anyOf": [ { "const": "limited_liability_company", "type": "string" }, { "const": "private_limited_company", "type": "string" }, { "const": "public_limited_company", "type": "string" }, { "const": "general_partnership", "type": "string" }, { "const": "limited_liability_partnership", "type": "string" } ] }, "country_of_incorporation": { "description": "The country where the company is incorporated - ISO Format", "examples": [ "GB" ], "minLength": 2, "type": "string" }, "incorporation_date": { "format": "date", "description": "The date when the company was incorporated", "examples": [ "2024-01-01" ], "type": "string" }, "registered_office_address": { "title": "Address", "description": "A physical address", "additionalProperties": true, "type": "object", "properties": { "address_line1": { "description": "The first line of the address", "examples": [ "12 West Common Drive" ], "type": "string" }, "address_line2": { "description": "The second line of the address", "examples": [ "Flat 1" ], "type": "string" }, "apartment": { "description": "The apartment, unit, or suite number", "examples": [ "Apt 5B", "Unit 12", "Suite 200" ], "type": "string" }, "city": { "description": "The city", "examples": [ "London" ], "type": "string" }, "state_province": { "description": "The state or province", "examples": [ "Greater London" ], "type": "string" }, "country": { "description": "The country code", "examples": [ "GB" ], "type": "string" }, "postal_code": { "description": "The postal code", "examples": [ "SE1 1AA" ], "type": "string" } }, "required": [ "address_line1", "city", "country", "postal_code" ] }, "company_operating_address": { "title": "Address", "description": "A physical address", "additionalProperties": true, "type": "object", "properties": { "address_line1": { "description": "The first line of the address", "examples": [ "12 West Common Drive" ], "type": "string" }, "address_line2": { "description": "The second line of the address", "examples": [ "Flat 1" ], "type": "string" }, "apartment": { "description": "The apartment, unit, or suite number", "examples": [ "Apt 5B", "Unit 12", "Suite 200" ], "type": "string" }, "city": { "description": "The city", "examples": [ "London" ], "type": "string" }, "state_province": { "description": "The state or province", "examples": [ "Greater London" ], "type": "string" }, "country": { "description": "The country code", "examples": [ "GB" ], "type": "string" }, "postal_code": { "description": "The postal code", "examples": [ "SE1 1AA" ], "type": "string" } }, "required": [ "address_line1", "city", "country", "postal_code" ] }, "contact_name": { "description": "The name of the primary contact", "examples": [ "Jane Doe" ], "minLength": 2, "maxLength": 30, "type": "string" }, "contact_email": { "format": "email", "description": "The email of the primary contact", "examples": [ "jane.doe@example.com" ], "type": "string" }, "contact_phone_number": { "description": "The phone number in format: country_code;number (e.g., 44;7395236209)", "examples": [ "44;7395236209" ], "pattern": "^[0-9]{1,4};[0-9]{6,15}$", "type": "string" }, "annual_revenue_amount": { "description": "The annual revenue amount", "examples": [ 1000000 ], "type": "number" }, "annual_revenue_currency": { "description": "The currency of the annual revenue", "examples": [ "USD", "EUR", "GBP" ], "minLength": 3, "maxLength": 3, "type": "string" }, "employees_number": { "description": "The number of employees category", "examples": [ "small" ], "anyOf": [ { "const": "small", "type": "string" }, { "const": "medium", "type": "string" }, { "const": "large", "type": "string" }, { "const": "enterprise", "type": "string" } ] }, "first_name": { "description": "The first name of the individual", "examples": [ "John" ], "minLength": 1, "maxLength": 30, "type": "string" }, "last_name": { "description": "The last name of the individual", "examples": [ "Alison" ], "minLength": 1, "maxLength": 30, "type": "string" }, "email": { "format": "email", "description": "The email of the individual", "examples": [ "john.alison@example.com" ], "type": "string" }, "phone_number": { "description": "The phone number in format: country_code;number (e.g., 44;7395236209)", "examples": [ "44;7395236209" ], "pattern": "^[0-9]{1,4};[0-9]{6,15}$", "type": "string" }, "dob": { "format": "date", "description": "The date of birth of the individual", "examples": [ "1990-01-01" ], "type": "string" }, "citizenship": { "description": "The Country of citizenship of the individual in ISO Format", "examples": [ "GB" ], "minLength": 2, "type": "string" }, "residency_address": { "title": "Address", "description": "A physical address", "additionalProperties": true, "type": "object", "properties": { "address_line1": { "description": "The first line of the address", "examples": [ "12 West Common Drive" ], "type": "string" }, "address_line2": { "description": "The second line of the address", "examples": [ "Flat 1" ], "type": "string" }, "apartment": { "description": "The apartment, unit, or suite number", "examples": [ "Apt 5B", "Unit 12", "Suite 200" ], "type": "string" }, "city": { "description": "The city", "examples": [ "London" ], "type": "string" }, "state_province": { "description": "The state or province", "examples": [ "Greater London" ], "type": "string" }, "country": { "description": "The country code", "examples": [ "GB" ], "type": "string" }, "postal_code": { "description": "The postal code", "examples": [ "SE1 1AA" ], "type": "string" } }, "required": [ "address_line1", "city", "country", "postal_code" ] } } } }, "required": [ "ownership_details", "legal_entity" ] }, "shareholder_Response": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "title": "Shareholder", "description": "Shareholder information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the shareholder", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "ownership_details": { "description": "The ownership details of the shareholder", "required": [ "ownership_share", "ownership_roles" ], "type": "object", "properties": { "ownership_share": { "minimum": 10, "maximum": 100, "description": "The percentage of ownership share", "examples": [ 25 ], "type": "number" }, "ownership_roles": { "minItems": 1, "description": "The roles of the shareholder", "examples": [ [ "owner", "director" ] ], "type": "array", "items": { "anyOf": [ { "const": "owner", "type": "string" }, { "const": "director", "type": "string" }, { "const": "executive", "type": "string" }, { "const": "representative", "type": "string" }, { "const": "user", "type": "string" } ] } }, "id_type": { "description": "The type of identification document", "examples": [ "passport", "national_id", "drivers_license" ], "type": "string" }, "id_number": { "description": "The identification document number", "examples": [ "AB123456" ], "type": "string" }, "id_issue_country": { "description": "The country that issued the identification document (ISO 2-letter code)", "examples": [ "US", "GB" ], "minLength": 2, "maxLength": 2, "type": "string" } } }, "legal_entity": { "description": "The legal entity details of the shareholder", "type": "object", "properties": { "type": { "description": "The type of legal entity", "examples": [ "company" ], "anyOf": [ { "const": "company", "type": "string" }, { "const": "individual", "type": "string" } ] }, "company_name": { "description": "The name of the company", "examples": [ "Example Company" ], "minLength": 2, "maxLength": 30, "type": "string" }, "company_number": { "description": "The registration number of the company", "examples": [ "12345678" ], "minLength": 4, "maxLength": 20, "type": "string" }, "vat_number": { "description": "The VAT number of the company", "examples": [ "GB123456789" ], "minLength": 4, "maxLength": 20, "type": "string" }, "tax_id": { "description": "The Tax ID of the company", "examples": [ "12345678901" ], "minLength": 11, "maxLength": 11, "type": "string" }, "company_structure": { "description": "The legal structure of the company", "examples": [ "limited_liability_company" ], "anyOf": [ { "const": "limited_liability_company", "type": "string" }, { "const": "private_limited_company", "type": "string" }, { "const": "public_limited_company", "type": "string" }, { "const": "general_partnership", "type": "string" }, { "const": "limited_liability_partnership", "type": "string" } ] }, "country_of_incorporation": { "description": "The country where the company is incorporated - ISO Format", "examples": [ "GB" ], "minLength": 2, "type": "string" }, "incorporation_date": { "format": "date", "description": "The date when the company was incorporated", "examples": [ "2024-01-01" ], "type": "string" }, "registered_office_address": { "title": "Address", "description": "A physical address", "additionalProperties": true, "type": "object", "properties": { "address_line1": { "description": "The first line of the address", "examples": [ "12 West Common Drive" ], "type": "string" }, "address_line2": { "description": "The second line of the address", "examples": [ "Flat 1" ], "type": "string" }, "apartment": { "description": "The apartment, unit, or suite number", "examples": [ "Apt 5B", "Unit 12", "Suite 200" ], "type": "string" }, "city": { "description": "The city", "examples": [ "London" ], "type": "string" }, "state_province": { "description": "The state or province", "examples": [ "Greater London" ], "type": "string" }, "country": { "description": "The country code", "examples": [ "GB" ], "type": "string" }, "postal_code": { "description": "The postal code", "examples": [ "SE1 1AA" ], "type": "string" } }, "required": [ "address_line1", "city", "country", "postal_code" ] }, "company_operating_address": { "title": "Address", "description": "A physical address", "additionalProperties": true, "type": "object", "properties": { "address_line1": { "description": "The first line of the address", "examples": [ "12 West Common Drive" ], "type": "string" }, "address_line2": { "description": "The second line of the address", "examples": [ "Flat 1" ], "type": "string" }, "apartment": { "description": "The apartment, unit, or suite number", "examples": [ "Apt 5B", "Unit 12", "Suite 200" ], "type": "string" }, "city": { "description": "The city", "examples": [ "London" ], "type": "string" }, "state_province": { "description": "The state or province", "examples": [ "Greater London" ], "type": "string" }, "country": { "description": "The country code", "examples": [ "GB" ], "type": "string" }, "postal_code": { "description": "The postal code", "examples": [ "SE1 1AA" ], "type": "string" } }, "required": [ "address_line1", "city", "country", "postal_code" ] }, "contact_name": { "description": "The name of the primary contact", "examples": [ "Jane Doe" ], "minLength": 2, "maxLength": 30, "type": "string" }, "contact_email": { "format": "email", "description": "The email of the primary contact", "examples": [ "jane.doe@example.com" ], "type": "string" }, "contact_phone_number": { "description": "The phone number in format: country_code;number (e.g., 44;7395236209)", "examples": [ "44;7395236209" ], "pattern": "^[0-9]{1,4};[0-9]{6,15}$", "type": "string" }, "annual_revenue_amount": { "description": "The annual revenue amount", "examples": [ 1000000 ], "type": "number" }, "annual_revenue_currency": { "description": "The currency of the annual revenue", "examples": [ "USD", "EUR", "GBP" ], "minLength": 3, "maxLength": 3, "type": "string" }, "employees_number": { "description": "The number of employees category", "examples": [ "small" ], "anyOf": [ { "const": "small", "type": "string" }, { "const": "medium", "type": "string" }, { "const": "large", "type": "string" }, { "const": "enterprise", "type": "string" } ] }, "first_name": { "description": "The first name of the individual", "examples": [ "John" ], "minLength": 1, "maxLength": 30, "type": "string" }, "last_name": { "description": "The last name of the individual", "examples": [ "Alison" ], "minLength": 1, "maxLength": 30, "type": "string" }, "email": { "format": "email", "description": "The email of the individual", "examples": [ "john.alison@example.com" ], "type": "string" }, "phone_number": { "description": "The phone number in format: country_code;number (e.g., 44;7395236209)", "examples": [ "44;7395236209" ], "pattern": "^[0-9]{1,4};[0-9]{6,15}$", "type": "string" }, "dob": { "format": "date", "description": "The date of birth of the individual", "examples": [ "1990-01-01" ], "type": "string" }, "citizenship": { "description": "The Country of citizenship of the individual in ISO Format", "examples": [ "GB" ], "minLength": 2, "type": "string" }, "residency_address": { "title": "Address", "description": "A physical address", "additionalProperties": true, "type": "object", "properties": { "address_line1": { "description": "The first line of the address", "examples": [ "12 West Common Drive" ], "type": "string" }, "address_line2": { "description": "The second line of the address", "examples": [ "Flat 1" ], "type": "string" }, "apartment": { "description": "The apartment, unit, or suite number", "examples": [ "Apt 5B", "Unit 12", "Suite 200" ], "type": "string" }, "city": { "description": "The city", "examples": [ "London" ], "type": "string" }, "state_province": { "description": "The state or province", "examples": [ "Greater London" ], "type": "string" }, "country": { "description": "The country code", "examples": [ "GB" ], "type": "string" }, "postal_code": { "description": "The postal code", "examples": [ "SE1 1AA" ], "type": "string" } }, "required": [ "address_line1", "city", "country", "postal_code" ] } } } }, "required": [ "id", "ownership_details", "legal_entity" ] } }, "required": [ "success", "data" ] }, "shareholder_ListResponse": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "type": "array", "items": { "title": "Shareholder", "description": "Shareholder information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the shareholder", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "ownership_details": { "description": "The ownership details of the shareholder", "required": [ "ownership_share", "ownership_roles" ], "type": "object", "properties": { "ownership_share": { "minimum": 10, "maximum": 100, "description": "The percentage of ownership share", "examples": [ 25 ], "type": "number" }, "ownership_roles": { "minItems": 1, "description": "The roles of the shareholder", "examples": [ [ "owner", "director" ] ], "type": "array", "items": { "anyOf": [ { "const": "owner", "type": "string" }, { "const": "director", "type": "string" }, { "const": "executive", "type": "string" }, { "const": "representative", "type": "string" }, { "const": "user", "type": "string" } ] } }, "id_type": { "description": "The type of identification document", "examples": [ "passport", "national_id", "drivers_license" ], "type": "string" }, "id_number": { "description": "The identification document number", "examples": [ "AB123456" ], "type": "string" }, "id_issue_country": { "description": "The country that issued the identification document (ISO 2-letter code)", "examples": [ "US", "GB" ], "minLength": 2, "maxLength": 2, "type": "string" } } }, "legal_entity": { "description": "The legal entity details of the shareholder", "type": "object", "properties": { "type": { "description": "The type of legal entity", "examples": [ "company" ], "anyOf": [ { "const": "company", "type": "string" }, { "const": "individual", "type": "string" } ] }, "company_name": { "description": "The name of the company", "examples": [ "Example Company" ], "minLength": 2, "maxLength": 30, "type": "string" }, "company_number": { "description": "The registration number of the company", "examples": [ "12345678" ], "minLength": 4, "maxLength": 20, "type": "string" }, "vat_number": { "description": "The VAT number of the company", "examples": [ "GB123456789" ], "minLength": 4, "maxLength": 20, "type": "string" }, "tax_id": { "description": "The Tax ID of the company", "examples": [ "12345678901" ], "minLength": 11, "maxLength": 11, "type": "string" }, "company_structure": { "description": "The legal structure of the company", "examples": [ "limited_liability_company" ], "anyOf": [ { "const": "limited_liability_company", "type": "string" }, { "const": "private_limited_company", "type": "string" }, { "const": "public_limited_company", "type": "string" }, { "const": "general_partnership", "type": "string" }, { "const": "limited_liability_partnership", "type": "string" } ] }, "country_of_incorporation": { "description": "The country where the company is incorporated - ISO Format", "examples": [ "GB" ], "minLength": 2, "type": "string" }, "incorporation_date": { "format": "date", "description": "The date when the company was incorporated", "examples": [ "2024-01-01" ], "type": "string" }, "registered_office_address": { "title": "Address", "description": "A physical address", "additionalProperties": true, "type": "object", "properties": { "address_line1": { "description": "The first line of the address", "examples": [ "12 West Common Drive" ], "type": "string" }, "address_line2": { "description": "The second line of the address", "examples": [ "Flat 1" ], "type": "string" }, "apartment": { "description": "The apartment, unit, or suite number", "examples": [ "Apt 5B", "Unit 12", "Suite 200" ], "type": "string" }, "city": { "description": "The city", "examples": [ "London" ], "type": "string" }, "state_province": { "description": "The state or province", "examples": [ "Greater London" ], "type": "string" }, "country": { "description": "The country code", "examples": [ "GB" ], "type": "string" }, "postal_code": { "description": "The postal code", "examples": [ "SE1 1AA" ], "type": "string" } }, "required": [ "address_line1", "city", "country", "postal_code" ] }, "company_operating_address": { "title": "Address", "description": "A physical address", "additionalProperties": true, "type": "object", "properties": { "address_line1": { "description": "The first line of the address", "examples": [ "12 West Common Drive" ], "type": "string" }, "address_line2": { "description": "The second line of the address", "examples": [ "Flat 1" ], "type": "string" }, "apartment": { "description": "The apartment, unit, or suite number", "examples": [ "Apt 5B", "Unit 12", "Suite 200" ], "type": "string" }, "city": { "description": "The city", "examples": [ "London" ], "type": "string" }, "state_province": { "description": "The state or province", "examples": [ "Greater London" ], "type": "string" }, "country": { "description": "The country code", "examples": [ "GB" ], "type": "string" }, "postal_code": { "description": "The postal code", "examples": [ "SE1 1AA" ], "type": "string" } }, "required": [ "address_line1", "city", "country", "postal_code" ] }, "contact_name": { "description": "The name of the primary contact", "examples": [ "Jane Doe" ], "minLength": 2, "maxLength": 30, "type": "string" }, "contact_email": { "format": "email", "description": "The email of the primary contact", "examples": [ "jane.doe@example.com" ], "type": "string" }, "contact_phone_number": { "description": "The phone number in format: country_code;number (e.g., 44;7395236209)", "examples": [ "44;7395236209" ], "pattern": "^[0-9]{1,4};[0-9]{6,15}$", "type": "string" }, "annual_revenue_amount": { "description": "The annual revenue amount", "examples": [ 1000000 ], "type": "number" }, "annual_revenue_currency": { "description": "The currency of the annual revenue", "examples": [ "USD", "EUR", "GBP" ], "minLength": 3, "maxLength": 3, "type": "string" }, "employees_number": { "description": "The number of employees category", "examples": [ "small" ], "anyOf": [ { "const": "small", "type": "string" }, { "const": "medium", "type": "string" }, { "const": "large", "type": "string" }, { "const": "enterprise", "type": "string" } ] }, "first_name": { "description": "The first name of the individual", "examples": [ "John" ], "minLength": 1, "maxLength": 30, "type": "string" }, "last_name": { "description": "The last name of the individual", "examples": [ "Alison" ], "minLength": 1, "maxLength": 30, "type": "string" }, "email": { "format": "email", "description": "The email of the individual", "examples": [ "john.alison@example.com" ], "type": "string" }, "phone_number": { "description": "The phone number in format: country_code;number (e.g., 44;7395236209)", "examples": [ "44;7395236209" ], "pattern": "^[0-9]{1,4};[0-9]{6,15}$", "type": "string" }, "dob": { "format": "date", "description": "The date of birth of the individual", "examples": [ "1990-01-01" ], "type": "string" }, "citizenship": { "description": "The Country of citizenship of the individual in ISO Format", "examples": [ "GB" ], "minLength": 2, "type": "string" }, "residency_address": { "title": "Address", "description": "A physical address", "additionalProperties": true, "type": "object", "properties": { "address_line1": { "description": "The first line of the address", "examples": [ "12 West Common Drive" ], "type": "string" }, "address_line2": { "description": "The second line of the address", "examples": [ "Flat 1" ], "type": "string" }, "apartment": { "description": "The apartment, unit, or suite number", "examples": [ "Apt 5B", "Unit 12", "Suite 200" ], "type": "string" }, "city": { "description": "The city", "examples": [ "London" ], "type": "string" }, "state_province": { "description": "The state or province", "examples": [ "Greater London" ], "type": "string" }, "country": { "description": "The country code", "examples": [ "GB" ], "type": "string" }, "postal_code": { "description": "The postal code", "examples": [ "SE1 1AA" ], "type": "string" } }, "required": [ "address_line1", "city", "country", "postal_code" ] } } } }, "required": [ "id", "ownership_details", "legal_entity" ] } } }, "required": [ "success", "data" ] }, "customer_Customer": { "title": "Customer", "description": "Customer information", "additionalProperties": false, "anyOf": [ { "required": [ "email" ] }, { "required": [ "phone_number" ] } ], "type": "object", "properties": { "id": { "format": "uuid", "description": "Customer's unique identifier", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "name": { "description": "Customer's full name", "examples": [ "John Doe" ], "type": "string" }, "email": { "format": "email", "description": "Customer's email address", "examples": [ "john.doe@example.com" ], "type": "string" }, "phone_number": { "description": "Customer's phone number in E.164 format", "examples": [ "+491234567890" ], "type": "string" }, "created_at": { "format": "date-time", "description": "Timestamp when the customer was created", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" }, "updated_at": { "format": "date-time", "description": "Timestamp when the customer was last updated", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" } } }, "customer_Input": { "title": "Customer Input", "description": "Customer creation/update input", "additionalProperties": false, "type": "object", "properties": { "name": { "description": "Customer's full name", "examples": [ "John Doe" ], "type": "string" }, "email": { "format": "email", "description": "Customer's email address", "examples": [ "john.doe@example.com" ], "type": "string" }, "phone_number": { "description": "Customer's phone number in E.164 format", "examples": [ "+491234567890" ], "type": "string" } }, "required": [ "name", "email", "phone_number" ] }, "customer_Response": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "title": "Customer", "description": "Customer information", "additionalProperties": false, "anyOf": [ { "required": [ "email" ] }, { "required": [ "phone_number" ] } ], "type": "object", "properties": { "id": { "format": "uuid", "description": "Customer's unique identifier", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "name": { "description": "Customer's full name", "examples": [ "John Doe" ], "type": "string" }, "email": { "format": "email", "description": "Customer's email address", "examples": [ "john.doe@example.com" ], "type": "string" }, "phone_number": { "description": "Customer's phone number in E.164 format", "examples": [ "+491234567890" ], "type": "string" }, "created_at": { "format": "date-time", "description": "Timestamp when the customer was created", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" }, "updated_at": { "format": "date-time", "description": "Timestamp when the customer was last updated", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" } } } }, "required": [ "success", "data" ] }, "customer_ListResponse": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "type": "array", "items": { "title": "Customer", "description": "Customer information", "additionalProperties": false, "anyOf": [ { "required": [ "email" ] }, { "required": [ "phone_number" ] } ], "type": "object", "properties": { "id": { "format": "uuid", "description": "Customer's unique identifier", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "name": { "description": "Customer's full name", "examples": [ "John Doe" ], "type": "string" }, "email": { "format": "email", "description": "Customer's email address", "examples": [ "john.doe@example.com" ], "type": "string" }, "phone_number": { "description": "Customer's phone number in E.164 format", "examples": [ "+491234567890" ], "type": "string" }, "created_at": { "format": "date-time", "description": "Timestamp when the customer was created", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" }, "updated_at": { "format": "date-time", "description": "Timestamp when the customer was last updated", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" } } } } }, "required": [ "success", "data" ] }, "bank_Bank": { "title": "Bank", "description": "A financial institution", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the bank", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "name": { "description": "The name of the bank", "examples": [ "Santander" ], "type": "string" }, "market": { "description": "The market of the bank", "examples": [ "GB" ], "type": "string" }, "currency": { "description": "The currency supported by the bank", "examples": [ "GBP" ], "type": "string" }, "displayName": { "description": "The display name of the bank", "examples": [ "Santander" ], "type": "string" }, "logoUrl": { "format": "uri", "description": "The URL of the bank's logo", "examples": [ "https://example.com/logo.png" ], "type": "string" }, "topInMarket": { "description": "Indicates if the bank is top in the market", "examples": [ true ], "type": "boolean" } } }, "bank_Response": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "title": "Bank", "description": "A financial institution", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the bank", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "name": { "description": "The name of the bank", "examples": [ "Santander" ], "type": "string" }, "market": { "description": "The market of the bank", "examples": [ "GB" ], "type": "string" }, "currency": { "description": "The currency supported by the bank", "examples": [ "GBP" ], "type": "string" }, "displayName": { "description": "The display name of the bank", "examples": [ "Santander" ], "type": "string" }, "logoUrl": { "format": "uri", "description": "The URL of the bank's logo", "examples": [ "https://example.com/logo.png" ], "type": "string" }, "topInMarket": { "description": "Indicates if the bank is top in the market", "examples": [ true ], "type": "boolean" } } } }, "required": [ "success", "data" ] }, "bankActivation_Input": { "title": "Bank Activation Input", "description": "Input for updating bank activation status", "additionalProperties": false, "type": "object", "properties": { "isActive": { "description": "Whether the bank should be active (true) or inactive (false)", "examples": [ true ], "type": "boolean" } }, "required": [ "isActive" ] }, "bankActivation_Result": { "title": "Bank Activation Result", "description": "Result of bank activation/deactivation operation", "additionalProperties": false, "type": "object", "properties": { "bank": { "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the bank", "examples": [ "550e8400-e29b-41d4-a716-446655440000" ], "type": "string" }, "name": { "description": "The name of the bank", "examples": [ "Santander" ], "type": "string" }, "market": { "description": "The market of the bank", "examples": [ "GB" ], "type": "string" }, "currency": { "description": "The currency of the bank", "examples": [ "GBP" ], "type": "string" }, "isActive": { "description": "Current activation status of the bank", "examples": [ true ], "type": "boolean" }, "previousStatus": { "description": "Previous activation status before this update", "examples": [ false ], "type": "boolean" } }, "required": [ "id", "name", "market", "currency", "isActive", "previousStatus" ] }, "message": { "description": "Success message describing the operation", "examples": [ "Bank activated successfully", "Bank deactivated successfully" ], "type": "string" } }, "required": [ "bank", "message" ] }, "bankActivation_Response": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "title": "Bank Activation Result", "description": "Result of bank activation/deactivation operation", "additionalProperties": false, "type": "object", "properties": { "bank": { "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the bank", "examples": [ "550e8400-e29b-41d4-a716-446655440000" ], "type": "string" }, "name": { "description": "The name of the bank", "examples": [ "Santander" ], "type": "string" }, "market": { "description": "The market of the bank", "examples": [ "GB" ], "type": "string" }, "currency": { "description": "The currency of the bank", "examples": [ "GBP" ], "type": "string" }, "isActive": { "description": "Current activation status of the bank", "examples": [ true ], "type": "boolean" }, "previousStatus": { "description": "Previous activation status before this update", "examples": [ false ], "type": "boolean" } }, "required": [ "id", "name", "market", "currency", "isActive", "previousStatus" ] }, "message": { "description": "Success message describing the operation", "examples": [ "Bank activated successfully", "Bank deactivated successfully" ], "type": "string" } }, "required": [ "bank", "message" ] } }, "required": [ "success", "data" ] }, "bankActivation_StatusDetail": { "title": "Bank Status Detail", "description": "Detailed bank information including activation status", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the bank", "examples": [ "550e8400-e29b-41d4-a716-446655440000" ], "type": "string" }, "name": { "description": "The name of the bank", "examples": [ "Santander" ], "type": "string" }, "market": { "description": "The market of the bank", "examples": [ "GB" ], "type": "string" }, "currency": { "description": "The currency of the bank", "examples": [ "GBP" ], "type": "string" }, "displayName": { "description": "The display name of the bank", "examples": [ "Santander" ], "type": "string" }, "logoUrl": { "format": "uri", "description": "The URL of the bank logo", "examples": [ "https://example.com/logo.png" ], "type": "string" }, "topInMarket": { "description": "Whether the bank is top in the market", "examples": [ true ], "type": "boolean" }, "isActive": { "description": "Whether the bank is currently active", "examples": [ true ], "type": "boolean" }, "tinkProvider": { "anyOf": [ { "type": "object", "properties": { "id": { "description": "The Tink provider ID", "examples": [ "tink-provider-123" ], "type": "string" }, "popular": { "description": "Whether this is a popular provider", "examples": [ true ], "type": "boolean" } }, "required": [ "id", "popular" ] }, { "type": "null" } ] }, "created_at": { "format": "date-time", "description": "When the bank was created", "examples": [ "2024-01-01T00:00:00Z" ], "type": "string" }, "updated_at": { "format": "date-time", "description": "When the bank was last updated", "examples": [ "2024-01-01T00:00:00Z" ], "type": "string" } }, "required": [ "id", "name", "market", "currency", "displayName", "logoUrl", "topInMarket", "isActive", "tinkProvider", "created_at", "updated_at" ] }, "bankActivation_StatusResponse": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "title": "Bank Status Detail", "description": "Detailed bank information including activation status", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the bank", "examples": [ "550e8400-e29b-41d4-a716-446655440000" ], "type": "string" }, "name": { "description": "The name of the bank", "examples": [ "Santander" ], "type": "string" }, "market": { "description": "The market of the bank", "examples": [ "GB" ], "type": "string" }, "currency": { "description": "The currency of the bank", "examples": [ "GBP" ], "type": "string" }, "displayName": { "description": "The display name of the bank", "examples": [ "Santander" ], "type": "string" }, "logoUrl": { "format": "uri", "description": "The URL of the bank logo", "examples": [ "https://example.com/logo.png" ], "type": "string" }, "topInMarket": { "description": "Whether the bank is top in the market", "examples": [ true ], "type": "boolean" }, "isActive": { "description": "Whether the bank is currently active", "examples": [ true ], "type": "boolean" }, "tinkProvider": { "anyOf": [ { "type": "object", "properties": { "id": { "description": "The Tink provider ID", "examples": [ "tink-provider-123" ], "type": "string" }, "popular": { "description": "Whether this is a popular provider", "examples": [ true ], "type": "boolean" } }, "required": [ "id", "popular" ] }, { "type": "null" } ] }, "created_at": { "format": "date-time", "description": "When the bank was created", "examples": [ "2024-01-01T00:00:00Z" ], "type": "string" }, "updated_at": { "format": "date-time", "description": "When the bank was last updated", "examples": [ "2024-01-01T00:00:00Z" ], "type": "string" } }, "required": [ "id", "name", "market", "currency", "displayName", "logoUrl", "topInMarket", "isActive", "tinkProvider", "created_at", "updated_at" ] } }, "required": [ "success", "data" ] }, "bankActivation_Query": { "title": "Admin Banks Query", "description": "Query parameters for filtering banks", "additionalProperties": false, "type": "object", "properties": { "market": { "description": "Filter by market (optional)", "examples": [ "GB" ], "type": "string" }, "isActive": { "description": "Filter by activation status (optional)", "examples": [ "true" ], "type": "string" } } }, "bankActivation_ListResponse": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "type": "array", "items": { "title": "Bank Status Detail", "description": "Detailed bank information including activation status", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the bank", "examples": [ "550e8400-e29b-41d4-a716-446655440000" ], "type": "string" }, "name": { "description": "The name of the bank", "examples": [ "Santander" ], "type": "string" }, "market": { "description": "The market of the bank", "examples": [ "GB" ], "type": "string" }, "currency": { "description": "The currency of the bank", "examples": [ "GBP" ], "type": "string" }, "displayName": { "description": "The display name of the bank", "examples": [ "Santander" ], "type": "string" }, "logoUrl": { "format": "uri", "description": "The URL of the bank logo", "examples": [ "https://example.com/logo.png" ], "type": "string" }, "topInMarket": { "description": "Whether the bank is top in the market", "examples": [ true ], "type": "boolean" }, "isActive": { "description": "Whether the bank is currently active", "examples": [ true ], "type": "boolean" }, "tinkProvider": { "anyOf": [ { "type": "object", "properties": { "id": { "description": "The Tink provider ID", "examples": [ "tink-provider-123" ], "type": "string" }, "popular": { "description": "Whether this is a popular provider", "examples": [ true ], "type": "boolean" } }, "required": [ "id", "popular" ] }, { "type": "null" } ] }, "created_at": { "format": "date-time", "description": "When the bank was created", "examples": [ "2024-01-01T00:00:00Z" ], "type": "string" }, "updated_at": { "format": "date-time", "description": "When the bank was last updated", "examples": [ "2024-01-01T00:00:00Z" ], "type": "string" } }, "required": [ "id", "name", "market", "currency", "displayName", "logoUrl", "topInMarket", "isActive", "tinkProvider", "created_at", "updated_at" ] } } }, "required": [ "success", "data" ] }, "bankActivation_Params": { "type": "object", "properties": { "bankId": { "format": "uuid", "description": "The unique identifier of the bank", "examples": [ "550e8400-e29b-41d4-a716-446655440000" ], "type": "string" } }, "required": [ "bankId" ] }, "partner_Partner": { "title": "Partner", "description": "Partner information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the partner", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "name": { "description": "The name of the partner", "examples": [ "Barclaycard" ], "type": "string" }, "email": { "format": "email", "description": "The email of the partner", "examples": [ "argo@barclaycard.com" ], "type": "string" }, "client_id": { "description": "The client ID of the partner", "examples": [ "partner_123" ], "type": "string" }, "client_secret": { "description": "The hashed client secret of the partner", "examples": [ "$2b$10$..." ], "type": "string" }, "created_at": { "format": "date-time", "description": "The creation date of the partner", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" }, "updated_at": { "format": "date-time", "description": "The last update date of the partner", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" } }, "required": [ "id", "name", "email", "client_id" ] }, "partner_Input": { "title": "Partner Input", "description": "Partner creation input", "additionalProperties": false, "type": "object", "properties": { "name": { "description": "The name of the partner", "examples": [ "Barclaycard" ], "type": "string" }, "email": { "format": "email", "description": "The email of the partner", "examples": [ "argo@barclaycard.com" ], "type": "string" } }, "required": [ "name", "email" ] }, "partner_Update": { "title": "Partner Update", "description": "Partner update input", "additionalProperties": false, "type": "object", "properties": { "name": { "description": "The updated name of the partner", "examples": [ "BarclayCard International" ], "type": "string" }, "email": { "format": "email", "description": "The updated email of the partner", "examples": [ "argo.international@barclaycard.com" ], "type": "string" } } }, "partner_CreateResponse": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the created partner", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "name": { "description": "The name of the created partner", "examples": [ "Barclaycard" ], "type": "string" }, "email": { "format": "email", "description": "The email of the created partner", "examples": [ "argo@barclaycard.com" ], "type": "string" }, "client_id": { "description": "The client ID of the created partner", "examples": [ "partner_123" ], "type": "string" }, "client_secret": { "description": "The unhashed client secret (only returned once upon creation)", "examples": [ "secret_abc123" ], "type": "string" } }, "required": [ "id", "name", "email", "client_id", "client_secret" ] } }, "required": [ "success", "data" ] }, "partner_Response": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "title": "Partner", "description": "Partner information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the partner", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "name": { "description": "The name of the partner", "examples": [ "Barclaycard" ], "type": "string" }, "email": { "format": "email", "description": "The email of the partner", "examples": [ "argo@barclaycard.com" ], "type": "string" }, "client_id": { "description": "The client ID of the partner", "examples": [ "partner_123" ], "type": "string" }, "client_secret": { "description": "The hashed client secret of the partner", "examples": [ "$2b$10$..." ], "type": "string" }, "created_at": { "format": "date-time", "description": "The creation date of the partner", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" }, "updated_at": { "format": "date-time", "description": "The last update date of the partner", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" } }, "required": [ "id", "name", "email", "client_id" ] } }, "required": [ "success", "data" ] }, "partner_ListResponse": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "type": "array", "items": { "title": "Partner", "description": "Partner information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the partner", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "name": { "description": "The name of the partner", "examples": [ "Barclaycard" ], "type": "string" }, "email": { "format": "email", "description": "The email of the partner", "examples": [ "argo@barclaycard.com" ], "type": "string" }, "client_id": { "description": "The client ID of the partner", "examples": [ "partner_123" ], "type": "string" }, "client_secret": { "description": "The hashed client secret of the partner", "examples": [ "$2b$10$..." ], "type": "string" }, "created_at": { "format": "date-time", "description": "The creation date of the partner", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" }, "updated_at": { "format": "date-time", "description": "The last update date of the partner", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" } }, "required": [ "id", "name", "email", "client_id" ] } } }, "required": [ "success", "data" ] }, "paymentInitiation_Input": { "required": [ "bankId" ], "type": "object", "properties": { "bankId": { "format": "uuid", "description": "The selected bank ID", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "paymentScheme": { "description": "Payment scheme selected by user. null = use default scheme for customer country, explicit value = user choice", "examples": [ null, "SEPA_CREDIT_TRANSFER", "MULTIBANCO" ], "anyOf": [ { "type": "null" }, { "title": "Payment Scheme Type", "description": "The type of payment scheme", "examples": [ "SEPA_CREDIT_TRANSFER", "MULTIBANCO", "FASTER_PAYMENTS", "DANISH_DOMESTIC_CREDIT_TRANSFER" ], "anyOf": [ { "const": "SEPA_CREDIT_TRANSFER", "type": "string" }, { "const": "MULTIBANCO", "type": "string" }, { "const": "DANISH_DOMESTIC_CREDIT_TRANSFER", "type": "string" }, { "const": "FASTER_PAYMENTS", "type": "string" }, { "const": "BACS", "type": "string" } ] } ] } } }, "paymentInitiation_Data": { "title": "Payment Initiation Data", "description": "Payment initiation response data", "additionalProperties": false, "type": "object", "properties": { "order_id": { "description": "The unique identifier of the order of the payment request", "examples": [ "123" ], "type": "string" } } }, "paymentInitiation_Response": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "title": "Payment Initiation Data", "description": "Payment initiation response data", "additionalProperties": false, "type": "object", "properties": { "order_id": { "description": "The unique identifier of the order of the payment request", "examples": [ "123" ], "type": "string" } } } }, "required": [ "success", "data" ] }, "paymentRequest_CustomerInput": { "title": "Customer Input", "description": "Customer information for payment request", "additionalProperties": true, "type": "object", "properties": { "name": { "description": "The name of the customer", "examples": [ "John Doe" ], "type": "string" }, "email": { "description": "The email of the customer (either email or phone_number must be provided)", "anyOf": [ { "format": "email", "description": "The email of the customer (either email or phone_number must be provided)", "examples": [ "john.doe@example.com" ], "type": "string" }, { "const": "", "type": "string" }, { "type": "null" } ] }, "phone_number": { "description": "The phone number of the customer (either email or phone_number must be provided)", "examples": [ "07123456789" ], "type": "string" } }, "required": [ "name", "email" ] }, "paymentRequest_BillingAddressInput": { "type": "object", "properties": { "address_line1": { "description": "The first line of the address", "examples": [ "12 West Common Drive" ], "type": "string" }, "address_line2": { "description": "The second line of the address", "examples": [ "Flat 1" ], "type": "string" }, "apartment": { "description": "The apartment, unit, or suite number", "examples": [ "Apt 5B", "Unit 12", "Suite 200" ], "type": "string" }, "city": { "description": "The city", "examples": [ "London" ], "type": "string" }, "state_province": { "description": "The state or province", "examples": [ "Greater London" ], "type": "string" }, "country": { "description": "The country code", "examples": [ "GB" ], "type": "string" }, "postal_code": { "description": "The postal code", "examples": [ "SE1 1AA" ], "type": "string" }, "company_name": { "description": "The company name (if applicable)", "examples": [ "" ], "type": "string" } }, "required": [ "address_line1", "city", "country", "postal_code" ] }, "paymentRequest_Input": { "title": "Payment Request Input", "description": "Payment request input parameters", "additionalProperties": true, "type": "object", "properties": { "customer": { "description": "The customer details", "required": [ "name", "email" ], "type": "object", "properties": { "name": { "description": "The name of the customer", "examples": [ "John Doe" ], "type": "string" }, "email": { "description": "The email of the customer (either email or phone_number must be provided)", "anyOf": [ { "format": "email", "description": "The email of the customer (either email or phone_number must be provided)", "examples": [ "john.doe@example.com" ], "type": "string" }, { "const": "", "type": "string" }, { "type": "null" } ] }, "phone_number": { "description": "The phone number of the customer (either email or phone_number must be provided)", "examples": [ "07123456789" ], "type": "string" } } }, "billingAddress": { "description": "The billing address details", "required": [ "address_line1", "city", "country", "postal_code" ], "type": "object", "properties": { "address_line1": { "description": "The first line of the address", "examples": [ "12 West Common Drive" ], "type": "string" }, "address_line2": { "description": "The second line of the address", "examples": [ "Flat 1" ], "type": "string" }, "apartment": { "description": "The apartment, unit, or suite number", "examples": [ "Apt 5B", "Unit 12", "Suite 200" ], "type": "string" }, "city": { "description": "The city", "examples": [ "London" ], "type": "string" }, "state_province": { "description": "The state or province", "examples": [ "Greater London" ], "type": "string" }, "country": { "description": "The country code", "examples": [ "GB" ], "type": "string" }, "postal_code": { "description": "The postal code", "examples": [ "SE1 1AA" ], "type": "string" }, "company_name": { "description": "The company name (if applicable)", "examples": [ "" ], "type": "string" } } }, "amount": { "description": "The amount of the payment request", "examples": [ 100 ], "type": "number" }, "currency": { "description": "The currency of the payment request", "examples": [ "GBP" ], "type": "string" }, "payment_reference": { "description": "Payment reference to appear on the payer’s bank statement (max 18 alphanumeric characters)", "examples": [ "ORDER123" ], "maxLength": 18, "pattern": "^[A-Za-z0-9]{1,18}$", "type": "string" }, "order_id": { "description": "The unique identifier for the merchant's order", "examples": [ "1140" ], "type": "string" }, "locale": { "description": "The locale of the payment request", "examples": [ "en_GB" ], "type": "string" }, "platform": { "description": "The platform used for the payment request", "examples": [ "WooCommerce" ], "type": "string" }, "device_type": { "description": "The type of device used for the payment request", "examples": [ "mobile" ], "type": "string" }, "external_payment_request_id": { "description": "External payment reference", "examples": [ "u0nwmSrNntjIWozmNslK5Tlq" ], "type": "string" }, "test_transaction": { "description": "Flag for test transactions", "examples": [ false ], "type": "boolean" }, "group": { "description": "For grouping related transactions", "examples": [ "rZNvy+1jH6Z+BcPqA5U5BSIcnUavBha3C63xBalm+xE=" ], "type": "string" }, "gid": { "description": "Global identifier", "examples": [ "gid://shopify/PaymentSession/u0nwmSrNntjIWozmNslK5Tlq" ], "type": "string" }, "selected_bank_id": { "description": "Selected bank reference", "examples": [ "38c39d03-8df3-4980-b0a8-7e283c8c62dd" ], "type": "string" }, "session_id": { "description": "Session tracking", "examples": [ "4B2dxmle3vGgimS4deUX3+2PgLF2+/0ZWnNsNSZcgdU=" ], "type": "string" }, "success_url_redirect": { "description": "URL to redirect on successful payment", "examples": [ "https://storename.com/success" ], "type": "string" }, "fail_url_redirect": { "description": "URL to redirect on failed payment", "examples": [ "https://storename.com/failure" ], "type": "string" } }, "required": [ "customer", "billingAddress", "amount", "currency", "locale", "platform" ] }, "paymentRequest_Response": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "title": "Payment Request Data", "description": "Payment request response data", "additionalProperties": true, "type": "object", "properties": { "redirect_url": { "description": "URL to redirect the user to", "examples": [ "https://example.com/redirect" ], "type": "string" } }, "required": [ "redirect_url" ] } }, "required": [ "success", "data" ] }, "paymentRequest_Data": { "title": "Payment Request Data", "description": "Payment request response data", "additionalProperties": true, "type": "object", "properties": { "redirect_url": { "description": "URL to redirect the user to", "examples": [ "https://example.com/redirect" ], "type": "string" } }, "required": [ "redirect_url" ] }, "embeddedPaymentRequest_Input": { "type": "object", "properties": { "customer": { "type": "object", "properties": { "name": { "minLength": 1, "examples": [ "Jack Haversham" ], "description": "Full name of the customer", "type": "string" }, "email": { "format": "email", "examples": [ "jack@example.com" ], "description": "Email address of the customer", "type": "string" }, "phone": { "minLength": 3, "examples": [ "+4917646793347" ], "description": "E.164-formatted phone number", "type": "string" }, "country": { "minLength": 2, "maxLength": 2, "description": "ISO-3166 alpha-2 country code", "examples": [ "DE" ], "type": "string" } }, "required": [ "name", "email", "phone", "country" ] }, "order": { "type": "object", "properties": { "order_id": { "minLength": 1, "examples": [ "ORD-123456" ], "description": "Merchant's order identifier", "type": "string" }, "amount": { "minimum": 1, "examples": [ 9300 ], "description": "Minor-unit amount (e.g. cents)", "type": "integer" }, "currency": { "minLength": 3, "maxLength": 3, "examples": [ "EUR" ], "description": "ISO-4217 currency code", "type": "string" }, "payment_reference": { "maxLength": 18, "examples": [ "Barcelona Tryp" ], "description": "Up to 18 chars, appears on customer bank statement", "type": "string" }, "locale": { "minLength": 2, "examples": [ "en-GB" ], "description": "BCP-47 locale tag", "type": "string" }, "test_transaction": { "examples": [ true ], "description": "Flag to force sandbox mode", "type": "boolean" }, "rewards": { "additionalProperties": false, "description": "Optional reward information for the customer", "type": "object", "properties": { "extra_rewards": { "minimum": 0, "examples": [ 150 ], "description": "Reward points for this transaction", "type": "number" }, "total_rewards": { "minimum": 0, "examples": [ 300 ], "description": "Total reward points including base and extra rewards (optional)", "type": "number" }, "description": { "maxLength": 255, "examples": [ "Loyalty bonus + base rewards" ], "description": "Optional description of the reward offer", "type": "string" } }, "required": [ "extra_rewards" ] } }, "required": [ "order_id", "amount", "currency", "payment_reference", "locale" ] }, "device_type": { "enum": [ "web", "ios", "android" ], "default": "web", "examples": [ "ios" ], "description": "Platform/device type for the payment request", "type": "string" }, "redirect_urls": { "type": "object", "properties": { "success_url": { "format": "uri", "examples": [ "https://tryp.com/checkout/success" ], "type": "string" }, "failure_url": { "format": "uri", "examples": [ "https://tryp.com/checkout/error" ], "type": "string" } }, "required": [ "success_url", "failure_url" ] } }, "required": [ "customer", "order", "redirect_urls" ] }, "embeddedPaymentRequest_Response": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "type": "object", "properties": { "payment_token": { "examples": [ "ptok_efghijklm..." ], "description": "Opaque token to be embedded into iframe src", "type": "string" }, "expires_in": { "description": "Seconds until token expiry", "minimum": 1, "examples": [ 900 ], "type": "integer" } }, "required": [ "payment_token", "expires_in" ] } }, "required": [ "success", "data" ] }, "embeddedPaymentRequestUpdate_Input": { "type": "object", "properties": { "payment_token": { "examples": [ "ptok_abcd1234" ], "description": "Payment token identifying the request to update", "type": "string" }, "amount": { "minimum": 1, "description": "Minor-unit amount (e.g. cents)", "examples": [ 1530 ], "type": "integer" }, "rewards": { "additionalProperties": false, "type": "object", "properties": { "extra_rewards": { "minimum": 0, "examples": [ 150 ], "description": "Reward points for this transaction", "type": "number" }, "total_rewards": { "minimum": 0, "examples": [ 300 ], "description": "Total reward points including base and extra rewards", "type": "number" }, "description": { "maxLength": 255, "examples": [ "Updated loyalty bonus" ], "description": "Optional description of the reward offer", "type": "string" } }, "required": [ "extra_rewards" ] } }, "required": [ "payment_token" ] }, "embeddedPaymentRequestUpdate_Response": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "type": "object", "properties": { "payment_token": { "examples": [ "ptok_abcd1234" ], "description": "Same payment token (unchanged)", "type": "string" }, "amount": { "examples": [ 1530 ], "description": "Updated amount", "type": "integer" }, "rewards": { "additionalProperties": false, "type": "object", "properties": { "extra_rewards": { "minimum": 0, "examples": [ 150 ], "description": "Updated reward points for this transaction", "type": "number" }, "total_rewards": { "minimum": 0, "examples": [ 300 ], "description": "Updated total reward points including base and extra rewards", "type": "number" }, "description": { "maxLength": 255, "examples": [ "Updated loyalty bonus" ], "description": "Updated description of the reward offer", "type": "string" } }, "required": [ "extra_rewards" ] }, "expires_in": { "examples": [ 750 ], "description": "Remaining TTL in seconds", "type": "integer" } }, "required": [ "payment_token", "amount", "expires_in" ] } }, "required": [ "success", "data" ] }, "seed_Data": { "title": "Seed Data", "description": "Database seeding operation data", "additionalProperties": false, "type": "object", "properties": { "message": { "description": "A message indicating the seeds were created successfully", "examples": [ "Seeds created successfully" ], "type": "string" } }, "required": [ "message" ] }, "seed_Response": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "title": "Seed Data", "description": "Database seeding operation data", "additionalProperties": false, "type": "object", "properties": { "message": { "description": "A message indicating the seeds were created successfully", "examples": [ "Seeds created successfully" ], "type": "string" } }, "required": [ "message" ] } }, "required": [ "success", "data" ] }, "webhook_Webhook": { "title": "Webhook", "description": "Webhook configuration", "additionalProperties": false, "type": "object", "properties": { "webhook_url": { "format": "uri", "description": "The URL where webhook notifications will be sent", "examples": [ "https://example.com/webhook" ], "type": "string" }, "message": { "description": "Success message", "examples": [ "Webhook URL successfully configured" ], "type": "string" } } }, "webhook_Input": { "title": "Webhook Input", "description": "Webhook configuration input", "additionalProperties": false, "type": "object", "properties": { "webhook_url": { "format": "uri", "description": "The URL where webhook notifications will be sent", "examples": [ "https://example.com/webhook" ], "type": "string" } }, "required": [ "webhook_url" ] }, "webhook_Response": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "title": "Webhook", "description": "Webhook configuration", "additionalProperties": false, "type": "object", "properties": { "webhook_url": { "format": "uri", "description": "The URL where webhook notifications will be sent", "examples": [ "https://example.com/webhook" ], "type": "string" }, "message": { "description": "Success message", "examples": [ "Webhook URL successfully configured" ], "type": "string" } } } }, "required": [ "success", "data" ] }, "webhook_GenerateWebhookSecretResponse": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "additionalProperties": false, "type": "object", "properties": { "webhook_secret": { "description": "The newly generated webhook signing secret", "examples": [ "whsec_a1b2c3d4e5f6…" ], "type": "string" } }, "required": [ "webhook_secret" ] } }, "required": [ "success", "data" ] }, "webhook_RevokeWebhookSecretResponse": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "additionalProperties": false, "type": "object", "properties": { "message": { "description": "A message confirming the webhook secret was revoked", "examples": [ "Webhook secret successfully revoked" ], "type": "string" } }, "required": [ "message" ] } }, "required": [ "success", "data" ] }, "rate_Schema": { "title": "Rate", "description": "Rate information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the rate", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "defaultRatesId": { "anyOf": [ { "format": "uuid", "description": "The ID of the default rates this rate belongs to", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, { "type": "null" } ] }, "merchantRatesId": { "anyOf": [ { "format": "uuid", "description": "The ID of the merchant rates this rate belongs to", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, { "type": "null" } ] }, "type": { "enum": [ "domestic_percent_fee", "fixed_transaction_fee" ], "description": "The type of rate (e.g., domestic_percent_fee, fixed_transaction_fee)", "examples": [ "domestic_percent_fee" ], "type": "string" }, "value": { "description": "The numeric value of the rate", "examples": [ 1, 0.2 ], "type": "number" }, "unit": { "enum": [ "%", "currency" ], "description": "The unit of the rate (% for percentage, currency for fixed amounts)", "examples": [ "%" ], "type": "string" }, "base": { "enum": [ "gross_amount", "gbp", "eur", "usd" ], "description": "The base on which the rate is applied", "examples": [ "gross_amount" ], "type": "string" }, "notes": { "description": "Optional notes about the rate", "examples": [ "Standard domestic fee" ], "type": "string" } }, "required": [ "id", "defaultRatesId", "merchantRatesId", "type", "value", "unit", "base" ] }, "rate_Input": { "title": "Rate Input", "description": "Rate creation input", "additionalProperties": false, "type": "object", "properties": { "type": { "enum": [ "domestic_percent_fee", "fixed_transaction_fee" ], "description": "The type of rate", "examples": [ "domestic_percent_fee" ], "type": "string" }, "value": { "description": "The numeric value of the rate", "examples": [ 1, 0.2 ], "type": "number" }, "unit": { "enum": [ "%", "currency" ], "description": "The unit of the rate", "examples": [ "%" ], "type": "string" }, "base": { "enum": [ "gross_amount", "gbp", "eur", "usd" ], "description": "The base on which the rate is applied", "examples": [ "gross_amount" ], "type": "string" }, "notes": { "description": "Optional notes about the rate", "examples": [ "Standard domestic fee" ], "type": "string" } }, "required": [ "type", "value", "unit", "base" ] }, "rate_Response": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "title": "Rate", "description": "Rate information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the rate", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "defaultRatesId": { "anyOf": [ { "format": "uuid", "description": "The ID of the default rates this rate belongs to", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, { "type": "null" } ] }, "merchantRatesId": { "anyOf": [ { "format": "uuid", "description": "The ID of the merchant rates this rate belongs to", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, { "type": "null" } ] }, "type": { "enum": [ "domestic_percent_fee", "fixed_transaction_fee" ], "description": "The type of rate (e.g., domestic_percent_fee, fixed_transaction_fee)", "examples": [ "domestic_percent_fee" ], "type": "string" }, "value": { "description": "The numeric value of the rate", "examples": [ 1, 0.2 ], "type": "number" }, "unit": { "enum": [ "%", "currency" ], "description": "The unit of the rate (% for percentage, currency for fixed amounts)", "examples": [ "%" ], "type": "string" }, "base": { "enum": [ "gross_amount", "gbp", "eur", "usd" ], "description": "The base on which the rate is applied", "examples": [ "gross_amount" ], "type": "string" }, "notes": { "description": "Optional notes about the rate", "examples": [ "Standard domestic fee" ], "type": "string" } }, "required": [ "id", "defaultRatesId", "merchantRatesId", "type", "value", "unit", "base" ] } }, "required": [ "success", "data" ] }, "defaultRates_Schema": { "title": "Default Rates", "description": "Default rates information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the default rates", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "version": { "description": "Version identifier for the rates", "examples": [ "v1-2024-01-13T15:00:00Z" ], "type": "string" }, "is_active": { "description": "Whether these rates are currently active", "examples": [ true ], "type": "boolean" }, "created_by": { "description": "Identifier of the user/system that created these rates", "examples": [ "system_seed", "admin_user" ], "type": "string" }, "created_at": { "format": "date-time", "description": "The creation timestamp", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" }, "updated_at": { "format": "date-time", "description": "The last update timestamp", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" }, "rates": { "type": "array", "items": { "title": "Rate", "description": "Rate information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the rate", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "defaultRatesId": { "anyOf": [ { "format": "uuid", "description": "The ID of the default rates this rate belongs to", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, { "type": "null" } ] }, "merchantRatesId": { "anyOf": [ { "format": "uuid", "description": "The ID of the merchant rates this rate belongs to", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, { "type": "null" } ] }, "type": { "enum": [ "domestic_percent_fee", "fixed_transaction_fee" ], "description": "The type of rate (e.g., domestic_percent_fee, fixed_transaction_fee)", "examples": [ "domestic_percent_fee" ], "type": "string" }, "value": { "description": "The numeric value of the rate", "examples": [ 1, 0.2 ], "type": "number" }, "unit": { "enum": [ "%", "currency" ], "description": "The unit of the rate (% for percentage, currency for fixed amounts)", "examples": [ "%" ], "type": "string" }, "base": { "enum": [ "gross_amount", "gbp", "eur", "usd" ], "description": "The base on which the rate is applied", "examples": [ "gross_amount" ], "type": "string" }, "notes": { "description": "Optional notes about the rate", "examples": [ "Standard domestic fee" ], "type": "string" } }, "required": [ "id", "defaultRatesId", "merchantRatesId", "type", "value", "unit", "base" ] } } }, "required": [ "id", "version", "is_active", "created_by", "created_at", "updated_at", "rates" ] }, "defaultRates_Input": { "title": "Default Rates Input", "description": "Default rates creation input", "additionalProperties": false, "type": "object", "properties": { "rates": { "description": "Array of rates to be created", "examples": [ [ { "type": "domestic_percent_fee", "value": 1, "unit": "%", "base": "gross_amount", "notes": "Standard domestic percentage fee" }, { "type": "fixed_transaction_fee", "value": 0.2, "unit": "currency", "base": "gbp", "notes": "Standard fixed GBP fee" }, { "type": "fixed_transaction_fee", "value": 0.27, "unit": "currency", "base": "eur", "notes": "Standard fixed EUR fee" } ] ], "type": "array", "items": { "title": "Rate Input", "description": "Rate creation input", "additionalProperties": false, "type": "object", "properties": { "type": { "enum": [ "domestic_percent_fee", "fixed_transaction_fee" ], "description": "The type of rate", "examples": [ "domestic_percent_fee" ], "type": "string" }, "value": { "description": "The numeric value of the rate", "examples": [ 1, 0.2 ], "type": "number" }, "unit": { "enum": [ "%", "currency" ], "description": "The unit of the rate", "examples": [ "%" ], "type": "string" }, "base": { "enum": [ "gross_amount", "gbp", "eur", "usd" ], "description": "The base on which the rate is applied", "examples": [ "gross_amount" ], "type": "string" }, "notes": { "description": "Optional notes about the rate", "examples": [ "Standard domestic fee" ], "type": "string" } }, "required": [ "type", "value", "unit", "base" ] } } }, "required": [ "rates" ] }, "defaultRates_Response": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "title": "Default Rates", "description": "Default rates information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the default rates", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "version": { "description": "Version identifier for the rates", "examples": [ "v1-2024-01-13T15:00:00Z" ], "type": "string" }, "is_active": { "description": "Whether these rates are currently active", "examples": [ true ], "type": "boolean" }, "created_by": { "description": "Identifier of the user/system that created these rates", "examples": [ "system_seed", "admin_user" ], "type": "string" }, "created_at": { "format": "date-time", "description": "The creation timestamp", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" }, "updated_at": { "format": "date-time", "description": "The last update timestamp", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" }, "rates": { "type": "array", "items": { "title": "Rate", "description": "Rate information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the rate", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "defaultRatesId": { "anyOf": [ { "format": "uuid", "description": "The ID of the default rates this rate belongs to", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, { "type": "null" } ] }, "merchantRatesId": { "anyOf": [ { "format": "uuid", "description": "The ID of the merchant rates this rate belongs to", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, { "type": "null" } ] }, "type": { "enum": [ "domestic_percent_fee", "fixed_transaction_fee" ], "description": "The type of rate (e.g., domestic_percent_fee, fixed_transaction_fee)", "examples": [ "domestic_percent_fee" ], "type": "string" }, "value": { "description": "The numeric value of the rate", "examples": [ 1, 0.2 ], "type": "number" }, "unit": { "enum": [ "%", "currency" ], "description": "The unit of the rate (% for percentage, currency for fixed amounts)", "examples": [ "%" ], "type": "string" }, "base": { "enum": [ "gross_amount", "gbp", "eur", "usd" ], "description": "The base on which the rate is applied", "examples": [ "gross_amount" ], "type": "string" }, "notes": { "description": "Optional notes about the rate", "examples": [ "Standard domestic fee" ], "type": "string" } }, "required": [ "id", "defaultRatesId", "merchantRatesId", "type", "value", "unit", "base" ] } } }, "required": [ "id", "version", "is_active", "created_by", "created_at", "updated_at", "rates" ] } }, "required": [ "success", "data" ] }, "defaultRates_ListResponse": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "type": "array", "items": { "title": "Default Rates", "description": "Default rates information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the default rates", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "version": { "description": "Version identifier for the rates", "examples": [ "v1-2024-01-13T15:00:00Z" ], "type": "string" }, "is_active": { "description": "Whether these rates are currently active", "examples": [ true ], "type": "boolean" }, "created_by": { "description": "Identifier of the user/system that created these rates", "examples": [ "system_seed", "admin_user" ], "type": "string" }, "created_at": { "format": "date-time", "description": "The creation timestamp", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" }, "updated_at": { "format": "date-time", "description": "The last update timestamp", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" }, "rates": { "type": "array", "items": { "title": "Rate", "description": "Rate information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the rate", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "defaultRatesId": { "anyOf": [ { "format": "uuid", "description": "The ID of the default rates this rate belongs to", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, { "type": "null" } ] }, "merchantRatesId": { "anyOf": [ { "format": "uuid", "description": "The ID of the merchant rates this rate belongs to", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, { "type": "null" } ] }, "type": { "enum": [ "domestic_percent_fee", "fixed_transaction_fee" ], "description": "The type of rate (e.g., domestic_percent_fee, fixed_transaction_fee)", "examples": [ "domestic_percent_fee" ], "type": "string" }, "value": { "description": "The numeric value of the rate", "examples": [ 1, 0.2 ], "type": "number" }, "unit": { "enum": [ "%", "currency" ], "description": "The unit of the rate (% for percentage, currency for fixed amounts)", "examples": [ "%" ], "type": "string" }, "base": { "enum": [ "gross_amount", "gbp", "eur", "usd" ], "description": "The base on which the rate is applied", "examples": [ "gross_amount" ], "type": "string" }, "notes": { "description": "Optional notes about the rate", "examples": [ "Standard domestic fee" ], "type": "string" } }, "required": [ "id", "defaultRatesId", "merchantRatesId", "type", "value", "unit", "base" ] } } }, "required": [ "id", "version", "is_active", "created_by", "created_at", "updated_at", "rates" ] } } }, "required": [ "success", "data" ] }, "merchantRates_Schema": { "title": "Merchant Rates", "description": "Merchant rates information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the merchant rates", "examples": [ "123e4567-e89b-12d3-a456-426614174002" ], "type": "string" }, "version": { "description": "Version identifier for the rates", "examples": [ "v1-2024-01-13T15:00:00Z" ], "type": "string" }, "is_active": { "description": "Whether these rates are currently active", "examples": [ true ], "type": "boolean" }, "merchantId": { "format": "uuid", "description": "The unique identifier of the merchant", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "created_by": { "description": "Identifier of the user/system that created these rates", "examples": [ "system_seed", "admin_user" ], "type": "string" }, "created_at": { "format": "date-time", "description": "The creation timestamp", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" }, "updated_at": { "format": "date-time", "description": "The last update timestamp", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" }, "rates": { "type": "array", "items": { "title": "Rate", "description": "Rate information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the rate", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "defaultRatesId": { "anyOf": [ { "format": "uuid", "description": "The ID of the default rates this rate belongs to", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, { "type": "null" } ] }, "merchantRatesId": { "anyOf": [ { "format": "uuid", "description": "The ID of the merchant rates this rate belongs to", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, { "type": "null" } ] }, "type": { "enum": [ "domestic_percent_fee", "fixed_transaction_fee" ], "description": "The type of rate (e.g., domestic_percent_fee, fixed_transaction_fee)", "examples": [ "domestic_percent_fee" ], "type": "string" }, "value": { "description": "The numeric value of the rate", "examples": [ 1, 0.2 ], "type": "number" }, "unit": { "enum": [ "%", "currency" ], "description": "The unit of the rate (% for percentage, currency for fixed amounts)", "examples": [ "%" ], "type": "string" }, "base": { "enum": [ "gross_amount", "gbp", "eur", "usd" ], "description": "The base on which the rate is applied", "examples": [ "gross_amount" ], "type": "string" }, "notes": { "description": "Optional notes about the rate", "examples": [ "Standard domestic fee" ], "type": "string" } }, "required": [ "id", "defaultRatesId", "merchantRatesId", "type", "value", "unit", "base" ] } } }, "required": [ "id", "version", "is_active", "merchantId", "created_by", "created_at", "updated_at", "rates" ] }, "merchantRates_Input": { "title": "Merchant Rates Input", "description": "Merchant rates creation input", "additionalProperties": false, "type": "object", "properties": { "rates": { "description": "Array of rates to be created", "examples": [ [ { "type": "domestic_percent_fee", "value": 1, "unit": "%", "base": "gross_amount", "notes": "Standard domestic percentage fee" }, { "type": "fixed_transaction_fee", "value": 0.2, "unit": "currency", "base": "gbp", "notes": "Standard fixed GBP fee" }, { "type": "fixed_transaction_fee", "value": 0.27, "unit": "currency", "base": "eur", "notes": "Standard fixed EUR fee" } ] ], "type": "array", "items": { "title": "Rate Input", "description": "Rate creation input", "additionalProperties": false, "type": "object", "properties": { "type": { "enum": [ "domestic_percent_fee", "fixed_transaction_fee" ], "description": "The type of rate", "examples": [ "domestic_percent_fee" ], "type": "string" }, "value": { "description": "The numeric value of the rate", "examples": [ 1, 0.2 ], "type": "number" }, "unit": { "enum": [ "%", "currency" ], "description": "The unit of the rate", "examples": [ "%" ], "type": "string" }, "base": { "enum": [ "gross_amount", "gbp", "eur", "usd" ], "description": "The base on which the rate is applied", "examples": [ "gross_amount" ], "type": "string" }, "notes": { "description": "Optional notes about the rate", "examples": [ "Standard domestic fee" ], "type": "string" } }, "required": [ "type", "value", "unit", "base" ] } } }, "required": [ "rates" ] }, "merchantRates_Response": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "title": "Merchant Rates", "description": "Merchant rates information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the merchant rates", "examples": [ "123e4567-e89b-12d3-a456-426614174002" ], "type": "string" }, "version": { "description": "Version identifier for the rates", "examples": [ "v1-2024-01-13T15:00:00Z" ], "type": "string" }, "is_active": { "description": "Whether these rates are currently active", "examples": [ true ], "type": "boolean" }, "merchantId": { "format": "uuid", "description": "The unique identifier of the merchant", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "created_by": { "description": "Identifier of the user/system that created these rates", "examples": [ "system_seed", "admin_user" ], "type": "string" }, "created_at": { "format": "date-time", "description": "The creation timestamp", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" }, "updated_at": { "format": "date-time", "description": "The last update timestamp", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" }, "rates": { "type": "array", "items": { "title": "Rate", "description": "Rate information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the rate", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "defaultRatesId": { "anyOf": [ { "format": "uuid", "description": "The ID of the default rates this rate belongs to", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, { "type": "null" } ] }, "merchantRatesId": { "anyOf": [ { "format": "uuid", "description": "The ID of the merchant rates this rate belongs to", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, { "type": "null" } ] }, "type": { "enum": [ "domestic_percent_fee", "fixed_transaction_fee" ], "description": "The type of rate (e.g., domestic_percent_fee, fixed_transaction_fee)", "examples": [ "domestic_percent_fee" ], "type": "string" }, "value": { "description": "The numeric value of the rate", "examples": [ 1, 0.2 ], "type": "number" }, "unit": { "enum": [ "%", "currency" ], "description": "The unit of the rate (% for percentage, currency for fixed amounts)", "examples": [ "%" ], "type": "string" }, "base": { "enum": [ "gross_amount", "gbp", "eur", "usd" ], "description": "The base on which the rate is applied", "examples": [ "gross_amount" ], "type": "string" }, "notes": { "description": "Optional notes about the rate", "examples": [ "Standard domestic fee" ], "type": "string" } }, "required": [ "id", "defaultRatesId", "merchantRatesId", "type", "value", "unit", "base" ] } } }, "required": [ "id", "version", "is_active", "merchantId", "created_by", "created_at", "updated_at", "rates" ] } }, "required": [ "success", "data" ] }, "merchantRates_ListResponse": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "type": "array", "items": { "title": "Merchant Rates", "description": "Merchant rates information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the merchant rates", "examples": [ "123e4567-e89b-12d3-a456-426614174002" ], "type": "string" }, "version": { "description": "Version identifier for the rates", "examples": [ "v1-2024-01-13T15:00:00Z" ], "type": "string" }, "is_active": { "description": "Whether these rates are currently active", "examples": [ true ], "type": "boolean" }, "merchantId": { "format": "uuid", "description": "The unique identifier of the merchant", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "created_by": { "description": "Identifier of the user/system that created these rates", "examples": [ "system_seed", "admin_user" ], "type": "string" }, "created_at": { "format": "date-time", "description": "The creation timestamp", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" }, "updated_at": { "format": "date-time", "description": "The last update timestamp", "examples": [ "2024-03-19T12:00:00Z" ], "type": "string" }, "rates": { "type": "array", "items": { "title": "Rate", "description": "Rate information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the rate", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "defaultRatesId": { "anyOf": [ { "format": "uuid", "description": "The ID of the default rates this rate belongs to", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, { "type": "null" } ] }, "merchantRatesId": { "anyOf": [ { "format": "uuid", "description": "The ID of the merchant rates this rate belongs to", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, { "type": "null" } ] }, "type": { "enum": [ "domestic_percent_fee", "fixed_transaction_fee" ], "description": "The type of rate (e.g., domestic_percent_fee, fixed_transaction_fee)", "examples": [ "domestic_percent_fee" ], "type": "string" }, "value": { "description": "The numeric value of the rate", "examples": [ 1, 0.2 ], "type": "number" }, "unit": { "enum": [ "%", "currency" ], "description": "The unit of the rate (% for percentage, currency for fixed amounts)", "examples": [ "%" ], "type": "string" }, "base": { "enum": [ "gross_amount", "gbp", "eur", "usd" ], "description": "The base on which the rate is applied", "examples": [ "gross_amount" ], "type": "string" }, "notes": { "description": "Optional notes about the rate", "examples": [ "Standard domestic fee" ], "type": "string" } }, "required": [ "id", "defaultRatesId", "merchantRatesId", "type", "value", "unit", "base" ] } } }, "required": [ "id", "version", "is_active", "merchantId", "created_by", "created_at", "updated_at", "rates" ] } } }, "required": [ "success", "data" ] }, "bankPrediction_Request": { "additionalProperties": false, "type": "object", "properties": { "customer_country": { "description": "Two-letter country code", "examples": [ "GB", "DE" ], "type": "string" }, "phone_number": { "description": "Customer phone number in international format", "examples": [ "+447395263205" ], "type": "string" }, "email": { "description": "Customer email address", "examples": [ "customer@example.com" ], "format": "email", "type": "string" }, "payment_request_id": { "description": "Payment request ID for Shopify", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "format": "uuid", "type": "string" }, "session_id": { "description": "Session ID for WooCommerce", "examples": [ "wca23456789abcdef" ], "type": "string" } }, "required": [ "customer_country" ] }, "bankPrediction_Response": { "type": "object", "properties": { "success": { "type": "boolean" }, "data": { "type": "object", "properties": { "banks": { "type": "array", "items": {} } }, "required": [ "banks" ] } }, "required": [ "success", "data" ] }, "transaction_Schema": { "type": "object", "properties": { "id": { "type": "string" }, "transaction_number": { "type": "string" }, "amount": { "description": "Transaction amount in decimal format", "type": "number" }, "currency": { "type": "object", "properties": { "code": { "description": "ISO 4217 currency code", "examples": [ "EUR", "GBP", "USD" ], "type": "string" }, "symbol": { "description": "Currency symbol", "examples": [ "€", "£", "$" ], "type": "string" }, "name": { "description": "Currency name", "examples": [ "Euro", "British Pound", "US Dollar" ], "type": "string" }, "minor_unit": { "description": "Number of decimal places", "examples": [ 2 ], "type": "number" } }, "required": [ "code", "symbol", "name", "minor_unit" ] }, "transaction_type": { "enum": [ "payment", "refund" ], "type": "string" }, "status": { "enum": [ "completed", "failed", "cancelled", "pending", "processing", "error" ], "type": "string" }, "cross_border": { "type": "boolean" }, "deposit_country": { "type": "string" }, "payout_country": { "type": "string" }, "test": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ] }, "created_at": { "format": "date-time", "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "settled_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ] }, "payment_request": { "anyOf": [ { "type": "object", "properties": { "id": { "format": "uuid", "type": "string" }, "order_id": { "description": "Merchant order ID", "examples": [ "ORD-2025-00123", "ORDER-456" ], "type": "string" }, "customer": { "anyOf": [ { "type": "object", "properties": { "name": { "type": "string" }, "email": { "type": "string" } }, "required": [ "name", "email" ] }, { "type": "null" } ] }, "payment_token": { "description": "Payment token", "examples": [ "tok_abc123def456" ], "type": "string" } }, "required": [ "id", "order_id", "customer", "payment_token" ] }, { "type": "null" } ] } }, "required": [ "id", "transaction_number", "amount", "currency", "transaction_type", "status", "cross_border", "deposit_country", "payout_country", "test", "created_at", "updated_at", "settled_at", "payment_request" ] }, "transaction_DetailedSchema": { "type": "object", "properties": { "id": { "type": "string" }, "transaction_number": { "type": "string" }, "amount": { "description": "Transaction amount in decimal format", "type": "number" }, "currency": { "type": "object", "properties": { "code": { "description": "ISO 4217 currency code", "examples": [ "EUR", "GBP", "USD" ], "type": "string" }, "symbol": { "description": "Currency symbol", "examples": [ "€", "£", "$" ], "type": "string" }, "name": { "description": "Currency name", "examples": [ "Euro", "British Pound", "US Dollar" ], "type": "string" }, "minor_unit": { "description": "Number of decimal places", "examples": [ 2 ], "type": "number" } }, "required": [ "code", "symbol", "name", "minor_unit" ] }, "transaction_type": { "enum": [ "payment", "refund" ], "type": "string" }, "status": { "enum": [ "completed", "failed", "cancelled", "pending", "processing", "error" ], "type": "string" }, "status_message": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "cross_border": { "type": "boolean" }, "deposit_country": { "type": "string" }, "payout_country": { "type": "string" }, "test": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ] }, "created_at": { "format": "date-time", "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "settled_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ] }, "payment_request": { "anyOf": [ { "type": "object", "properties": { "id": { "format": "uuid", "type": "string" }, "order_id": { "description": "Merchant order ID", "examples": [ "ORD-2025-00123", "ORDER-456" ], "type": "string" }, "merchant": { "anyOf": [ { "type": "object", "properties": { "id": { "format": "uuid", "type": "string" }, "partner": { "anyOf": [ { "type": "object", "properties": { "id": { "format": "uuid", "type": "string" } }, "required": [ "id" ] }, { "type": "null" } ] } }, "required": [ "id", "partner" ] }, { "type": "null" } ] }, "customer": { "anyOf": [ { "type": "object", "properties": { "id": { "format": "uuid", "type": "string" }, "name": { "type": "string" }, "email": { "type": "string" } }, "required": [ "id", "name", "email" ] }, { "type": "null" } ] }, "payment_token": { "description": "Payment token", "examples": [ "tok_abc123def456" ], "type": "string" } }, "required": [ "id", "order_id", "merchant", "customer", "payment_token" ] }, { "type": "null" } ] }, "destination_account": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "destination_account_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "remittance_information": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "payment_scheme": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "related_transaction": { "anyOf": [ { "type": "object", "properties": { "id": { "format": "uuid", "type": "string" }, "transaction_number": { "type": "string" } }, "required": [ "id", "transaction_number" ] }, { "type": "null" } ] }, "fees": { "type": "object", "properties": { "total": { "description": "Total fees in decimal format", "type": "number" }, "currency": { "type": "object", "properties": { "code": { "description": "ISO 4217 currency code", "examples": [ "EUR", "GBP", "USD" ], "type": "string" }, "symbol": { "description": "Currency symbol", "examples": [ "€", "£", "$" ], "type": "string" }, "name": { "description": "Currency name", "examples": [ "Euro", "British Pound", "US Dollar" ], "type": "string" }, "minor_unit": { "description": "Number of decimal places", "examples": [ 2 ], "type": "number" } }, "required": [ "code", "symbol", "name", "minor_unit" ] }, "items": { "type": "array", "items": { "type": "object", "properties": { "id": { "format": "uuid", "type": "string" }, "amount": { "description": "Fee amount in decimal format", "type": "number" }, "currency": { "type": "object", "properties": { "code": { "description": "ISO 4217 currency code", "examples": [ "EUR", "GBP", "USD" ], "type": "string" }, "symbol": { "description": "Currency symbol", "examples": [ "€", "£", "$" ], "type": "string" }, "name": { "description": "Currency name", "examples": [ "Euro", "British Pound", "US Dollar" ], "type": "string" }, "minor_unit": { "description": "Number of decimal places", "examples": [ 2 ], "type": "number" } }, "required": [ "code", "symbol", "name", "minor_unit" ] }, "fee_type": { "type": "string" }, "rate_type": { "type": "string" }, "rate_value": { "type": "string" }, "rate_unit": { "type": "string" }, "rate_base": { "type": "string" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "settlement_status": { "type": "string" }, "invoice_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ] }, "settled_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ] }, "created_at": { "format": "date-time", "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "required": [ "id", "amount", "currency", "fee_type", "rate_type", "rate_value", "rate_unit", "rate_base", "notes", "settlement_status", "invoice_id", "settled_at", "created_at", "updated_at" ] } } }, "required": [ "total", "currency", "items" ] } }, "required": [ "id", "transaction_number", "amount", "currency", "transaction_type", "status", "status_message", "cross_border", "deposit_country", "payout_country", "test", "created_at", "updated_at", "settled_at", "payment_request", "destination_account", "destination_account_type", "remittance_information", "payment_scheme", "related_transaction", "fees" ] }, "transaction_Response": { "type": "object", "properties": { "success": { "type": "boolean" }, "data": { "type": "object", "properties": { "id": { "type": "string" }, "transaction_number": { "type": "string" }, "amount": { "description": "Transaction amount in decimal format", "type": "number" }, "currency": { "type": "object", "properties": { "code": { "description": "ISO 4217 currency code", "examples": [ "EUR", "GBP", "USD" ], "type": "string" }, "symbol": { "description": "Currency symbol", "examples": [ "€", "£", "$" ], "type": "string" }, "name": { "description": "Currency name", "examples": [ "Euro", "British Pound", "US Dollar" ], "type": "string" }, "minor_unit": { "description": "Number of decimal places", "examples": [ 2 ], "type": "number" } }, "required": [ "code", "symbol", "name", "minor_unit" ] }, "transaction_type": { "enum": [ "payment", "refund" ], "type": "string" }, "status": { "enum": [ "completed", "failed", "cancelled", "pending", "processing", "error" ], "type": "string" }, "status_message": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "cross_border": { "type": "boolean" }, "deposit_country": { "type": "string" }, "payout_country": { "type": "string" }, "test": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ] }, "created_at": { "format": "date-time", "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "settled_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ] }, "payment_request": { "anyOf": [ { "type": "object", "properties": { "id": { "format": "uuid", "type": "string" }, "order_id": { "description": "Merchant order ID", "examples": [ "ORD-2025-00123", "ORDER-456" ], "type": "string" }, "merchant": { "anyOf": [ { "type": "object", "properties": { "id": { "format": "uuid", "type": "string" }, "partner": { "anyOf": [ { "type": "object", "properties": { "id": { "format": "uuid", "type": "string" } }, "required": [ "id" ] }, { "type": "null" } ] } }, "required": [ "id", "partner" ] }, { "type": "null" } ] }, "customer": { "anyOf": [ { "type": "object", "properties": { "id": { "format": "uuid", "type": "string" }, "name": { "type": "string" }, "email": { "type": "string" } }, "required": [ "id", "name", "email" ] }, { "type": "null" } ] }, "payment_token": { "description": "Payment token", "examples": [ "tok_abc123def456" ], "type": "string" } }, "required": [ "id", "order_id", "merchant", "customer", "payment_token" ] }, { "type": "null" } ] }, "destination_account": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "destination_account_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "remittance_information": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "payment_scheme": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "related_transaction": { "anyOf": [ { "type": "object", "properties": { "id": { "format": "uuid", "type": "string" }, "transaction_number": { "type": "string" } }, "required": [ "id", "transaction_number" ] }, { "type": "null" } ] }, "fees": { "type": "object", "properties": { "total": { "description": "Total fees in decimal format", "type": "number" }, "currency": { "type": "object", "properties": { "code": { "description": "ISO 4217 currency code", "examples": [ "EUR", "GBP", "USD" ], "type": "string" }, "symbol": { "description": "Currency symbol", "examples": [ "€", "£", "$" ], "type": "string" }, "name": { "description": "Currency name", "examples": [ "Euro", "British Pound", "US Dollar" ], "type": "string" }, "minor_unit": { "description": "Number of decimal places", "examples": [ 2 ], "type": "number" } }, "required": [ "code", "symbol", "name", "minor_unit" ] }, "items": { "type": "array", "items": { "type": "object", "properties": { "id": { "format": "uuid", "type": "string" }, "amount": { "description": "Fee amount in decimal format", "type": "number" }, "currency": { "type": "object", "properties": { "code": { "description": "ISO 4217 currency code", "examples": [ "EUR", "GBP", "USD" ], "type": "string" }, "symbol": { "description": "Currency symbol", "examples": [ "€", "£", "$" ], "type": "string" }, "name": { "description": "Currency name", "examples": [ "Euro", "British Pound", "US Dollar" ], "type": "string" }, "minor_unit": { "description": "Number of decimal places", "examples": [ 2 ], "type": "number" } }, "required": [ "code", "symbol", "name", "minor_unit" ] }, "fee_type": { "type": "string" }, "rate_type": { "type": "string" }, "rate_value": { "type": "string" }, "rate_unit": { "type": "string" }, "rate_base": { "type": "string" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "settlement_status": { "type": "string" }, "invoice_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ] }, "settled_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ] }, "created_at": { "format": "date-time", "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "required": [ "id", "amount", "currency", "fee_type", "rate_type", "rate_value", "rate_unit", "rate_base", "notes", "settlement_status", "invoice_id", "settled_at", "created_at", "updated_at" ] } } }, "required": [ "total", "currency", "items" ] } }, "required": [ "id", "transaction_number", "amount", "currency", "transaction_type", "status", "status_message", "cross_border", "deposit_country", "payout_country", "test", "created_at", "updated_at", "settled_at", "payment_request", "destination_account", "destination_account_type", "remittance_information", "payment_scheme", "related_transaction", "fees" ] } }, "required": [ "success", "data" ] }, "transaction_SearchResponse": { "title": "Transaction Search Response", "description": "Response for transaction search with filtering, sorting, and currency totals", "type": "object", "properties": { "success": { "type": "boolean" }, "data": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "transaction_number": { "type": "string" }, "amount": { "description": "Transaction amount in decimal format", "type": "number" }, "currency": { "type": "object", "properties": { "code": { "description": "ISO 4217 currency code", "examples": [ "EUR", "GBP", "USD" ], "type": "string" }, "symbol": { "description": "Currency symbol", "examples": [ "€", "£", "$" ], "type": "string" }, "name": { "description": "Currency name", "examples": [ "Euro", "British Pound", "US Dollar" ], "type": "string" }, "minor_unit": { "description": "Number of decimal places", "examples": [ 2 ], "type": "number" } }, "required": [ "code", "symbol", "name", "minor_unit" ] }, "transaction_type": { "enum": [ "payment", "refund" ], "type": "string" }, "status": { "enum": [ "completed", "failed", "cancelled", "pending", "processing", "error" ], "type": "string" }, "cross_border": { "type": "boolean" }, "deposit_country": { "type": "string" }, "payout_country": { "type": "string" }, "test": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ] }, "created_at": { "format": "date-time", "type": "string" }, "updated_at": { "format": "date-time", "type": "string" }, "settled_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ] }, "payment_request": { "anyOf": [ { "type": "object", "properties": { "id": { "format": "uuid", "type": "string" }, "order_id": { "description": "Merchant order ID", "examples": [ "ORD-2025-00123", "ORDER-456" ], "type": "string" }, "customer": { "anyOf": [ { "type": "object", "properties": { "name": { "type": "string" }, "email": { "type": "string" } }, "required": [ "name", "email" ] }, { "type": "null" } ] }, "payment_token": { "description": "Payment token", "examples": [ "tok_abc123def456" ], "type": "string" } }, "required": [ "id", "order_id", "customer", "payment_token" ] }, { "type": "null" } ] } }, "required": [ "id", "transaction_number", "amount", "currency", "transaction_type", "status", "cross_border", "deposit_country", "payout_country", "test", "created_at", "updated_at", "settled_at", "payment_request" ] } }, "pagination": { "type": "object", "properties": { "total": { "type": "number" }, "page": { "type": "number" }, "limit": { "type": "number" }, "totalPages": { "type": "number" }, "hasNextPage": { "type": "boolean" }, "hasPreviousPage": { "type": "boolean" } }, "required": [ "total", "page", "limit", "totalPages", "hasNextPage", "hasPreviousPage" ] }, "search_metadata": { "description": "Metadata about the search operation", "type": "object", "properties": { "filters_applied": { "description": "List of filters that were applied", "type": "array", "items": { "type": "string" } }, "sort_applied": { "description": "Sort criteria that were applied", "type": "array", "items": { "title": "Sort Field", "description": "Sort field configuration for transaction search", "examples": [ { "field": "created_at", "direction": "desc" }, { "field": "amount", "direction": "asc" }, { "field": "status", "direction": "desc" } ], "type": "object", "properties": { "field": { "enum": [ "created_at", "updated_at", "amount", "status", "transaction_type" ], "description": "Field to sort by", "examples": [ "created_at", "amount", "status" ], "type": "string" }, "direction": { "enum": [ "asc", "desc" ], "description": "Sort direction", "examples": [ "desc", "asc" ], "type": "string" } }, "required": [ "field", "direction" ] } }, "query_execution_time": { "description": "Query execution time in milliseconds", "type": "number" }, "total_records_scanned": { "description": "Total number of records scanned", "type": "number" } }, "required": [ "filters_applied", "sort_applied", "query_execution_time", "total_records_scanned" ] }, "totals": { "description": "Currency-based totals for filtered transactions", "examples": [ [ { "currency": "EUR", "total_amount": 3034 }, { "currency": "GBP", "total_amount": 534 }, { "currency": "DKK", "total_amount": 2034 } ] ], "type": "array", "items": { "title": "Currency Total", "description": "Total amount for a specific currency with thousands separator formatting", "type": "object", "properties": { "currency": { "pattern": "^[A-Z]{3}$", "description": "ISO 4217 currency code", "examples": [ "EUR", "GBP", "USD", "DKK" ], "type": "string" }, "total_amount": { "description": "Total amount formatted with thousands separator (e.g., \"2,299.15\")", "examples": [ "3,034.00", "534.00", "2,034.50", "10,000.00" ], "type": "string" } }, "required": [ "currency", "total_amount" ] } } }, "required": [ "success", "data", "pagination", "totals" ] }, "search_AmountFilter": { "title": "Amount Filter", "description": "Amount filter with range operations", "examples": [ { "gte": 100, "lte": 1000 }, { "gt": 500 }, { "between": [ 100, 1000 ] } ], "additionalProperties": false, "type": "object", "properties": { "gt": { "minimum": 0, "description": "Greater than this amount", "examples": [ 100 ], "type": "number" }, "lt": { "minimum": 0, "description": "Less than this amount", "examples": [ 1000 ], "type": "number" }, "gte": { "minimum": 0, "description": "Greater than or equal to this amount", "examples": [ 100 ], "type": "number" }, "lte": { "minimum": 0, "description": "Less than or equal to this amount", "examples": [ 1000 ], "type": "number" }, "between": { "minItems": 2, "maxItems": 2, "description": "Amount range [min, max]", "examples": [ [ 100, 1000 ] ], "type": "array", "items": { "minimum": 0, "type": "number" } } } }, "search_StatusFilter": { "title": "Status Filter", "description": "Status filter for exact matching", "examples": [ { "eq": "completed" }, { "eq": "failed" } ], "type": "object", "properties": { "eq": { "enum": [ "completed", "failed", "cancelled", "pending", "processing", "error" ], "description": "Exact match for transaction status", "examples": [ "completed" ], "type": "string" } }, "required": [ "eq" ] }, "search_TransactionTypeFilter": { "title": "Transaction Type Filter", "description": "Transaction type filter for exact matching", "examples": [ { "eq": "payment" }, { "eq": "refund" } ], "type": "object", "properties": { "eq": { "enum": [ "payment", "refund" ], "description": "Exact match for transaction type", "examples": [ "payment" ], "type": "string" } }, "required": [ "eq" ] }, "search_StringContainsFilter": { "title": "String Contains Filter", "description": "String contains filter for partial text matching", "examples": [ { "contains": "gmail" }, { "contains": "test" } ], "type": "object", "properties": { "contains": { "minLength": 1, "maxLength": 255, "description": "Text to search for within the field", "examples": [ "gmail", "test", "john" ], "type": "string" } }, "required": [ "contains" ] }, "search_UUIDFilter": { "title": "UUID Filter", "description": "UUID filter for exact matching of payment request IDs", "examples": [ { "eq": "123e4567-e89b-12d3-a456-426614174000" } ], "type": "object", "properties": { "eq": { "format": "uuid", "description": "Exact match for payment request ID", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" } }, "required": [ "eq" ] }, "search_ExactStringFilter": { "title": "Exact String Filter", "description": "Exact string filter for payment tokens", "examples": [ { "eq": "tok_abc123def456" }, { "eq": "tok_xyz789ghi012" } ], "type": "object", "properties": { "eq": { "minLength": 1, "maxLength": 255, "description": "Exact match for payment token", "examples": [ "tok_abc123def456", "tok_xyz789ghi012" ], "type": "string" } }, "required": [ "eq" ] }, "search_DateFilter": { "title": "Date Filter", "description": "Date filter with range operations", "examples": [ { "eq": "2024-06-02T00:00:00Z" }, { "gte": "2024-01-01T00:00:00Z" }, { "between": [ "2024-01-01T00:00:00Z", "2024-12-31T23:59:59Z" ] } ], "type": "object", "properties": { "eq": { "format": "date-time", "description": "Exact date match (matches entire day if time is 00:00:00)", "examples": [ "2024-06-02T00:00:00Z", "2024-06-02" ], "type": "string" }, "gte": { "format": "date-time", "description": "Greater than or equal to this date", "examples": [ "2024-01-01T00:00:00Z" ], "type": "string" }, "lte": { "format": "date-time", "description": "Less than or equal to this date", "examples": [ "2024-12-31T23:59:59Z" ], "type": "string" }, "between": { "minItems": 2, "maxItems": 2, "description": "Date range [start, end]", "examples": [ [ "2024-01-01T00:00:00Z", "2024-12-31T23:59:59Z" ] ], "type": "array", "items": { "format": "date-time", "type": "string" } } } }, "search_CurrencyFilter": { "title": "Currency Filter", "description": "Currency filter for exact matching of ISO currency codes", "examples": [ { "eq": "EUR" }, { "eq": "GBP" }, { "eq": "DKK" } ], "additionalProperties": false, "type": "object", "properties": { "eq": { "pattern": "^[A-Z]{3}$", "description": "Exact match for ISO 4217 currency code", "examples": [ "EUR", "GBP", "USD", "DKK" ], "type": "string" } }, "required": [ "eq" ] }, "search_OrderIdFilter": { "title": "Order ID Filter", "description": "Order ID filter for partial text matching", "examples": [ { "contains": "c16d" }, { "contains": "ORDER-123" } ], "additionalProperties": false, "type": "object", "properties": { "contains": { "minLength": 1, "maxLength": 255, "description": "Text to search for within order ID", "examples": [ "c16d", "ORDER-123", "2025" ], "type": "string" } }, "required": [ "contains" ] }, "search_CurrencyTotal": { "title": "Currency Total", "description": "Total amount for a specific currency with thousands separator formatting", "type": "object", "properties": { "currency": { "pattern": "^[A-Z]{3}$", "description": "ISO 4217 currency code", "examples": [ "EUR", "GBP", "USD", "DKK" ], "type": "string" }, "total_amount": { "description": "Total amount formatted with thousands separator (e.g., \"2,299.15\")", "examples": [ "3,034.00", "534.00", "2,034.50", "10,000.00" ], "type": "string" } }, "required": [ "currency", "total_amount" ] }, "search_SortField": { "title": "Sort Field", "description": "Sort field configuration for transaction search", "examples": [ { "field": "created_at", "direction": "desc" }, { "field": "amount", "direction": "asc" }, { "field": "status", "direction": "desc" } ], "type": "object", "properties": { "field": { "enum": [ "created_at", "updated_at", "amount", "status", "transaction_type" ], "description": "Field to sort by", "examples": [ "created_at", "amount", "status" ], "type": "string" }, "direction": { "enum": [ "asc", "desc" ], "description": "Sort direction", "examples": [ "desc", "asc" ], "type": "string" } }, "required": [ "field", "direction" ] }, "search_Pagination": { "title": "Search Pagination", "description": "Pagination parameters for transaction search", "examples": [ { "page": 1, "limit": 25 }, { "page": 2, "limit": 50 }, { "limit": 10 }, { "page": 3 } ], "type": "object", "properties": { "page": { "minimum": 1, "default": 1, "description": "Page number (1-based)", "examples": [ 1, 2, 5 ], "type": "number" }, "limit": { "minimum": 1, "maximum": 100, "default": 25, "description": "Number of items per page (max 100)", "examples": [ 10, 25, 50, 100 ], "type": "number" } } }, "search_Request": { "title": "Transaction Search Request", "description": "Phase 1 transaction search with currency totals and enhanced filtering", "examples": [ { "search": { "amount": { "gte": 1000, "lte": 5000 }, "status": { "eq": "completed" }, "customer_email": { "contains": "gmail" } }, "pagination": { "page": 1, "limit": 25 }, "sort": [ { "field": "created_at", "direction": "desc" } ] }, { "search": { "transaction_type": { "eq": "payment" }, "created_at": { "gte": "2024-01-01T00:00:00Z" } }, "pagination": { "page": 1, "limit": 50 }, "sort": [ { "field": "amount", "direction": "desc" }, { "field": "created_at", "direction": "asc" } ] }, { "search": { "currency": { "eq": "EUR" }, "order_id": { "contains": "ORDER" }, "status": { "eq": "completed" } }, "pagination": { "page": 1, "limit": 25 }, "sort": [ { "field": "created_at", "direction": "desc" } ] } ], "type": "object", "properties": { "search": { "description": "Search criteria for filtering transactions", "additionalProperties": true, "type": "object", "properties": { "amount": { "title": "Amount Filter", "description": "Amount filter with range operations", "examples": [ { "gte": 100, "lte": 1000 }, { "gt": 500 }, { "between": [ 100, 1000 ] } ], "additionalProperties": false, "type": "object", "properties": { "gt": { "minimum": 0, "description": "Greater than this amount", "examples": [ 100 ], "type": "number" }, "lt": { "minimum": 0, "description": "Less than this amount", "examples": [ 1000 ], "type": "number" }, "gte": { "minimum": 0, "description": "Greater than or equal to this amount", "examples": [ 100 ], "type": "number" }, "lte": { "minimum": 0, "description": "Less than or equal to this amount", "examples": [ 1000 ], "type": "number" }, "between": { "minItems": 2, "maxItems": 2, "description": "Amount range [min, max]", "examples": [ [ 100, 1000 ] ], "type": "array", "items": { "minimum": 0, "type": "number" } } } }, "status": { "title": "Status Filter", "description": "Status filter for exact matching", "examples": [ { "eq": "completed" }, { "eq": "failed" } ], "type": "object", "properties": { "eq": { "enum": [ "completed", "failed", "cancelled", "pending", "processing", "error" ], "description": "Exact match for transaction status", "examples": [ "completed" ], "type": "string" } }, "required": [ "eq" ] }, "transaction_type": { "title": "Transaction Type Filter", "description": "Transaction type filter for exact matching", "examples": [ { "eq": "payment" }, { "eq": "refund" } ], "type": "object", "properties": { "eq": { "enum": [ "payment", "refund" ], "description": "Exact match for transaction type", "examples": [ "payment" ], "type": "string" } }, "required": [ "eq" ] }, "payment_request_id": { "title": "UUID Filter", "description": "UUID filter for exact matching of payment request IDs", "examples": [ { "eq": "123e4567-e89b-12d3-a456-426614174000" } ], "type": "object", "properties": { "eq": { "format": "uuid", "description": "Exact match for payment request ID", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" } }, "required": [ "eq" ] }, "payment_token": { "title": "Exact String Filter", "description": "Exact string filter for payment tokens", "examples": [ { "eq": "tok_abc123def456" }, { "eq": "tok_xyz789ghi012" } ], "type": "object", "properties": { "eq": { "minLength": 1, "maxLength": 255, "description": "Exact match for payment token", "examples": [ "tok_abc123def456", "tok_xyz789ghi012" ], "type": "string" } }, "required": [ "eq" ] }, "customer_email": { "title": "String Contains Filter", "description": "String contains filter for partial text matching", "examples": [ { "contains": "gmail" }, { "contains": "test" } ], "type": "object", "properties": { "contains": { "minLength": 1, "maxLength": 255, "description": "Text to search for within the field", "examples": [ "gmail", "test", "john" ], "type": "string" } }, "required": [ "contains" ] }, "created_at": { "title": "Date Filter", "description": "Date filter with range operations", "examples": [ { "eq": "2024-06-02T00:00:00Z" }, { "gte": "2024-01-01T00:00:00Z" }, { "between": [ "2024-01-01T00:00:00Z", "2024-12-31T23:59:59Z" ] } ], "type": "object", "properties": { "eq": { "format": "date-time", "description": "Exact date match (matches entire day if time is 00:00:00)", "examples": [ "2024-06-02T00:00:00Z", "2024-06-02" ], "type": "string" }, "gte": { "format": "date-time", "description": "Greater than or equal to this date", "examples": [ "2024-01-01T00:00:00Z" ], "type": "string" }, "lte": { "format": "date-time", "description": "Less than or equal to this date", "examples": [ "2024-12-31T23:59:59Z" ], "type": "string" }, "between": { "minItems": 2, "maxItems": 2, "description": "Date range [start, end]", "examples": [ [ "2024-01-01T00:00:00Z", "2024-12-31T23:59:59Z" ] ], "type": "array", "items": { "format": "date-time", "type": "string" } } } }, "currency": { "title": "Currency Filter", "description": "Currency filter for exact matching of ISO currency codes", "examples": [ { "eq": "EUR" }, { "eq": "GBP" }, { "eq": "DKK" } ], "additionalProperties": false, "type": "object", "properties": { "eq": { "pattern": "^[A-Z]{3}$", "description": "Exact match for ISO 4217 currency code", "examples": [ "EUR", "GBP", "USD", "DKK" ], "type": "string" } }, "required": [ "eq" ] }, "order_id": { "title": "Order ID Filter", "description": "Order ID filter for partial text matching", "examples": [ { "contains": "c16d" }, { "contains": "ORDER-123" } ], "additionalProperties": false, "type": "object", "properties": { "contains": { "minLength": 1, "maxLength": 255, "description": "Text to search for within order ID", "examples": [ "c16d", "ORDER-123", "2025" ], "type": "string" } }, "required": [ "contains" ] } } }, "pagination": { "title": "Search Pagination", "description": "Pagination parameters for transaction search", "examples": [ { "page": 1, "limit": 25 }, { "page": 2, "limit": 50 }, { "limit": 10 }, { "page": 3 } ], "type": "object", "properties": { "page": { "minimum": 1, "default": 1, "description": "Page number (1-based)", "examples": [ 1, 2, 5 ], "type": "number" }, "limit": { "minimum": 1, "maximum": 100, "default": 25, "description": "Number of items per page (max 100)", "examples": [ 10, 25, 50, 100 ], "type": "number" } } }, "sort": { "maxItems": 2, "description": "Sort criteria (max 2 fields for Phase 1)", "type": "array", "items": { "title": "Sort Field", "description": "Sort field configuration for transaction search", "examples": [ { "field": "created_at", "direction": "desc" }, { "field": "amount", "direction": "asc" }, { "field": "status", "direction": "desc" } ], "type": "object", "properties": { "field": { "enum": [ "created_at", "updated_at", "amount", "status", "transaction_type" ], "description": "Field to sort by", "examples": [ "created_at", "amount", "status" ], "type": "string" }, "direction": { "enum": [ "asc", "desc" ], "description": "Sort direction", "examples": [ "desc", "asc" ], "type": "string" } }, "required": [ "field", "direction" ] } } } }, "search_Metadata": { "description": "Metadata about the search operation", "type": "object", "properties": { "filters_applied": { "description": "List of filters that were applied", "type": "array", "items": { "type": "string" } }, "sort_applied": { "description": "Sort criteria that were applied", "type": "array", "items": { "title": "Sort Field", "description": "Sort field configuration for transaction search", "examples": [ { "field": "created_at", "direction": "desc" }, { "field": "amount", "direction": "asc" }, { "field": "status", "direction": "desc" } ], "type": "object", "properties": { "field": { "enum": [ "created_at", "updated_at", "amount", "status", "transaction_type" ], "description": "Field to sort by", "examples": [ "created_at", "amount", "status" ], "type": "string" }, "direction": { "enum": [ "asc", "desc" ], "description": "Sort direction", "examples": [ "desc", "asc" ], "type": "string" } }, "required": [ "field", "direction" ] } }, "query_execution_time": { "description": "Query execution time in milliseconds", "type": "number" }, "total_records_scanned": { "description": "Total number of records scanned", "type": "number" } }, "required": [ "filters_applied", "sort_applied", "query_execution_time", "total_records_scanned" ] }, "fee_Schema": { "title": "Fee", "description": "Fee information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the fee", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "amount": { "description": "The amount of the fee", "examples": [ 1, 0.2 ], "type": "number" }, "currency": { "description": "The currency of the fee", "examples": [ "GBP", "EUR" ], "type": "string" }, "fee_type": { "enum": [ "percentage", "fixed" ], "description": "The type of fee (percentage or fixed)", "examples": [ "percentage" ], "type": "string" }, "rate_type": { "enum": [ "domestic_percent_fee", "fixed_transaction_fee" ], "description": "The type of rate used to calculate the fee", "examples": [ "domestic_percent_fee" ], "type": "string" }, "rate_value": { "description": "The value of the rate used to calculate the fee", "examples": [ 1, 0.2 ], "type": "number" }, "rate_unit": { "enum": [ "%", "currency" ], "description": "The unit of the rate used to calculate the fee", "examples": [ "%" ], "type": "string" }, "rate_base": { "enum": [ "gross_amount", "gbp", "eur", "usd" ], "description": "The base on which the rate was applied", "examples": [ "gross_amount" ], "type": "string" }, "notes": { "description": "Optional notes about the fee", "examples": [ "Standard domestic fee" ], "type": "string" }, "created_at": { "format": "date-time", "description": "When the fee was created", "type": "string" }, "updated_at": { "format": "date-time", "description": "When the fee was last updated", "type": "string" }, "settlement_status": { "enum": [ "pending", "invoiced", "settled", "failed" ], "description": "The settlement status of the fee", "examples": [ "pending" ], "type": "string" }, "invoice_id": { "format": "uuid", "description": "The ID of the invoice this fee is included in", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "settled_at": { "format": "date-time", "description": "When the fee was settled", "type": "string" } }, "required": [ "id", "amount", "currency", "fee_type", "rate_type", "rate_value", "rate_unit", "rate_base", "created_at", "updated_at", "settlement_status" ] }, "fee_Response": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "title": "Fee", "description": "Fee information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the fee", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "amount": { "description": "The amount of the fee", "examples": [ 1, 0.2 ], "type": "number" }, "currency": { "description": "The currency of the fee", "examples": [ "GBP", "EUR" ], "type": "string" }, "fee_type": { "enum": [ "percentage", "fixed" ], "description": "The type of fee (percentage or fixed)", "examples": [ "percentage" ], "type": "string" }, "rate_type": { "enum": [ "domestic_percent_fee", "fixed_transaction_fee" ], "description": "The type of rate used to calculate the fee", "examples": [ "domestic_percent_fee" ], "type": "string" }, "rate_value": { "description": "The value of the rate used to calculate the fee", "examples": [ 1, 0.2 ], "type": "number" }, "rate_unit": { "enum": [ "%", "currency" ], "description": "The unit of the rate used to calculate the fee", "examples": [ "%" ], "type": "string" }, "rate_base": { "enum": [ "gross_amount", "gbp", "eur", "usd" ], "description": "The base on which the rate was applied", "examples": [ "gross_amount" ], "type": "string" }, "notes": { "description": "Optional notes about the fee", "examples": [ "Standard domestic fee" ], "type": "string" }, "created_at": { "format": "date-time", "description": "When the fee was created", "type": "string" }, "updated_at": { "format": "date-time", "description": "When the fee was last updated", "type": "string" }, "settlement_status": { "enum": [ "pending", "invoiced", "settled", "failed" ], "description": "The settlement status of the fee", "examples": [ "pending" ], "type": "string" }, "invoice_id": { "format": "uuid", "description": "The ID of the invoice this fee is included in", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "settled_at": { "format": "date-time", "description": "When the fee was settled", "type": "string" } }, "required": [ "id", "amount", "currency", "fee_type", "rate_type", "rate_value", "rate_unit", "rate_base", "created_at", "updated_at", "settlement_status" ] } }, "required": [ "success", "data" ] }, "fee_ListResponse": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "description": "List of fees", "type": "array", "items": { "title": "Fee", "description": "Fee information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the fee", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "amount": { "description": "The amount of the fee", "examples": [ 1, 0.2 ], "type": "number" }, "currency": { "description": "The currency of the fee", "examples": [ "GBP", "EUR" ], "type": "string" }, "fee_type": { "enum": [ "percentage", "fixed" ], "description": "The type of fee (percentage or fixed)", "examples": [ "percentage" ], "type": "string" }, "rate_type": { "enum": [ "domestic_percent_fee", "fixed_transaction_fee" ], "description": "The type of rate used to calculate the fee", "examples": [ "domestic_percent_fee" ], "type": "string" }, "rate_value": { "description": "The value of the rate used to calculate the fee", "examples": [ 1, 0.2 ], "type": "number" }, "rate_unit": { "enum": [ "%", "currency" ], "description": "The unit of the rate used to calculate the fee", "examples": [ "%" ], "type": "string" }, "rate_base": { "enum": [ "gross_amount", "gbp", "eur", "usd" ], "description": "The base on which the rate was applied", "examples": [ "gross_amount" ], "type": "string" }, "notes": { "description": "Optional notes about the fee", "examples": [ "Standard domestic fee" ], "type": "string" }, "created_at": { "format": "date-time", "description": "When the fee was created", "type": "string" }, "updated_at": { "format": "date-time", "description": "When the fee was last updated", "type": "string" }, "settlement_status": { "enum": [ "pending", "invoiced", "settled", "failed" ], "description": "The settlement status of the fee", "examples": [ "pending" ], "type": "string" }, "invoice_id": { "format": "uuid", "description": "The ID of the invoice this fee is included in", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "settled_at": { "format": "date-time", "description": "When the fee was settled", "type": "string" } }, "required": [ "id", "amount", "currency", "fee_type", "rate_type", "rate_value", "rate_unit", "rate_base", "created_at", "updated_at", "settlement_status" ] } } }, "required": [ "success", "data" ] }, "refundSession_Schema": { "title": "Refund Session", "description": "Refund session information", "additionalProperties": false, "type": "object", "properties": { "id": { "description": "Refund session ID", "examples": [ "JM1YXF4yUe0vmo-FHsgVK3ZC" ], "type": "string" }, "gid": { "description": "Global identifier", "examples": [ "gid://shopify/RefundSession/JM1YXF4yUe0vmo-FHsgVK3ZC" ], "type": "string" }, "payment_id": { "description": "Original payment ID", "examples": [ "rSOX4QcIGECb4ZEydY8GgMTfO" ], "type": "string" }, "amount": { "description": "Refund amount", "examples": [ "1.00" ], "type": "string" }, "currency": { "description": "Currency code", "examples": [ "GBP" ], "type": "string" }, "merchant_locale": { "description": "Merchant locale", "examples": [ "en" ], "type": "string" }, "platform": { "description": "Platform initiating the refund", "examples": [ "shopify" ], "anyOf": [ { "const": "shopify", "type": "string" }, { "const": "woocommerce", "type": "string" } ] }, "proposed_at": { "description": "When the refund was proposed", "examples": [ "2025-02-21T11:17:05Z" ], "type": "string" }, "test": { "description": "Whether this is a test refund", "examples": [ true ], "type": "boolean" }, "status": { "description": "Status of the refund session", "examples": [ "pending", "completed", "failed" ], "type": "string" }, "created_at": { "format": "date-time", "description": "When the refund session was created", "type": "string" }, "updated_at": { "format": "date-time", "description": "When the refund session was last updated", "type": "string" } }, "required": [ "id", "payment_id", "amount", "currency", "platform", "status", "created_at", "updated_at" ] }, "refundSession_Input": { "type": "object", "properties": { "id": { "description": "Shopify refund session ID", "examples": [ "JM1YXF4yUe0vmo-FHsgVK3ZC" ], "type": "string" }, "gid": { "description": "Global identifier", "examples": [ "gid://shopify/RefundSession/JM1YXF4yUe0vmo-FHsgVK3ZC" ], "type": "string" }, "payment_id": { "description": "Original payment ID", "examples": [ "rSOX4QcIGECb4ZEydY8GgMTfO" ], "type": "string" }, "amount": { "description": "Refund amount", "examples": [ "1.00" ], "type": "string" }, "currency": { "description": "Currency code", "examples": [ "GBP" ], "type": "string" }, "merchant_locale": { "description": "Merchant locale", "examples": [ "en" ], "type": "string" }, "platform": { "description": "Platform initiating the refund", "examples": [ "shopify" ], "anyOf": [ { "const": "shopify", "type": "string" }, { "const": "woocommerce", "type": "string" } ] }, "proposed_at": { "description": "When the refund was proposed", "examples": [ "2025-02-21T11:17:05Z" ], "type": "string" }, "test": { "description": "Whether this is a test refund", "examples": [ true ], "type": "boolean" } }, "required": [ "payment_id", "amount", "currency", "platform" ] }, "refundSession_Response": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "title": "Refund Session", "description": "Refund session information", "additionalProperties": false, "type": "object", "properties": { "id": { "description": "Refund session ID", "examples": [ "JM1YXF4yUe0vmo-FHsgVK3ZC" ], "type": "string" }, "gid": { "description": "Global identifier", "examples": [ "gid://shopify/RefundSession/JM1YXF4yUe0vmo-FHsgVK3ZC" ], "type": "string" }, "payment_id": { "description": "Original payment ID", "examples": [ "rSOX4QcIGECb4ZEydY8GgMTfO" ], "type": "string" }, "amount": { "description": "Refund amount", "examples": [ "1.00" ], "type": "string" }, "currency": { "description": "Currency code", "examples": [ "GBP" ], "type": "string" }, "merchant_locale": { "description": "Merchant locale", "examples": [ "en" ], "type": "string" }, "platform": { "description": "Platform initiating the refund", "examples": [ "shopify" ], "anyOf": [ { "const": "shopify", "type": "string" }, { "const": "woocommerce", "type": "string" } ] }, "proposed_at": { "description": "When the refund was proposed", "examples": [ "2025-02-21T11:17:05Z" ], "type": "string" }, "test": { "description": "Whether this is a test refund", "examples": [ true ], "type": "boolean" }, "status": { "description": "Status of the refund session", "examples": [ "pending", "completed", "failed" ], "type": "string" }, "created_at": { "format": "date-time", "description": "When the refund session was created", "type": "string" }, "updated_at": { "format": "date-time", "description": "When the refund session was last updated", "type": "string" } }, "required": [ "id", "payment_id", "amount", "currency", "platform", "status", "created_at", "updated_at" ] } }, "required": [ "success", "data" ] }, "refundSession_ListResponse": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "type": "array", "items": { "title": "Refund Session", "description": "Refund session information", "additionalProperties": false, "type": "object", "properties": { "id": { "description": "Refund session ID", "examples": [ "JM1YXF4yUe0vmo-FHsgVK3ZC" ], "type": "string" }, "gid": { "description": "Global identifier", "examples": [ "gid://shopify/RefundSession/JM1YXF4yUe0vmo-FHsgVK3ZC" ], "type": "string" }, "payment_id": { "description": "Original payment ID", "examples": [ "rSOX4QcIGECb4ZEydY8GgMTfO" ], "type": "string" }, "amount": { "description": "Refund amount", "examples": [ "1.00" ], "type": "string" }, "currency": { "description": "Currency code", "examples": [ "GBP" ], "type": "string" }, "merchant_locale": { "description": "Merchant locale", "examples": [ "en" ], "type": "string" }, "platform": { "description": "Platform initiating the refund", "examples": [ "shopify" ], "anyOf": [ { "const": "shopify", "type": "string" }, { "const": "woocommerce", "type": "string" } ] }, "proposed_at": { "description": "When the refund was proposed", "examples": [ "2025-02-21T11:17:05Z" ], "type": "string" }, "test": { "description": "Whether this is a test refund", "examples": [ true ], "type": "boolean" }, "status": { "description": "Status of the refund session", "examples": [ "pending", "completed", "failed" ], "type": "string" }, "created_at": { "format": "date-time", "description": "When the refund session was created", "type": "string" }, "updated_at": { "format": "date-time", "description": "When the refund session was last updated", "type": "string" } }, "required": [ "id", "payment_id", "amount", "currency", "platform", "status", "created_at", "updated_at" ] } } }, "required": [ "success", "data" ] }, "merchant_MultiAccountSettingUpdate": { "title": "Merchant Multi-Account Setting Update", "description": "Input for updating the merchant multi-account setting", "additionalProperties": false, "type": "object", "properties": { "allowed": { "description": "The desired state for the multi-account setting", "examples": [ true, false ], "type": "boolean" } }, "required": [ "allowed" ] }, "merchantTestData_Options": { "title": "Test Data Options", "description": "Options for test data generation", "additionalProperties": false, "type": "object", "properties": { "paymentRequestCount": { "minimum": 1, "maximum": 150, "default": 120, "description": "Number of payment requests to generate", "examples": [ 120, 50, 100, 150 ], "type": "integer" }, "customerCount": { "minimum": 1, "maximum": 20, "default": 15, "description": "Number of unique customers to create/use", "examples": [ 15, 8, 20 ], "type": "integer" }, "dateRangeInDays": { "minimum": 1, "maximum": 730, "default": 730, "description": "Spread transactions over this many days (up to 2 years)", "examples": [ 730, 365, 180, 90 ], "type": "integer" }, "includeRefunds": { "default": true, "description": "Whether to include refund transactions", "examples": [ true, false ], "type": "boolean" }, "includeFailures": { "default": true, "description": "Whether to include failed and cancelled transactions", "examples": [ true, false ], "type": "boolean" }, "scenarioProfile": { "default": "standard", "description": "Predefined scenario profile", "examples": [ "standard", "high-volume", "cross-border", "failure-testing" ], "anyOf": [ { "const": "standard", "type": "string" }, { "const": "high-volume", "type": "string" }, { "const": "cross-border", "type": "string" }, { "const": "failure-testing", "type": "string" } ] } } }, "merchantTestData_Request": { "title": "Merchant Test Data Request", "description": "Request body for generating test data for a merchant", "additionalProperties": false, "type": "object", "properties": { "options": { "title": "Test Data Options", "description": "Options for test data generation", "additionalProperties": false, "type": "object", "properties": { "paymentRequestCount": { "minimum": 1, "maximum": 150, "default": 120, "description": "Number of payment requests to generate", "examples": [ 120, 50, 100, 150 ], "type": "integer" }, "customerCount": { "minimum": 1, "maximum": 20, "default": 15, "description": "Number of unique customers to create/use", "examples": [ 15, 8, 20 ], "type": "integer" }, "dateRangeInDays": { "minimum": 1, "maximum": 730, "default": 730, "description": "Spread transactions over this many days (up to 2 years)", "examples": [ 730, 365, 180, 90 ], "type": "integer" }, "includeRefunds": { "default": true, "description": "Whether to include refund transactions", "examples": [ true, false ], "type": "boolean" }, "includeFailures": { "default": true, "description": "Whether to include failed and cancelled transactions", "examples": [ true, false ], "type": "boolean" }, "scenarioProfile": { "default": "standard", "description": "Predefined scenario profile", "examples": [ "standard", "high-volume", "cross-border", "failure-testing" ], "anyOf": [ { "const": "standard", "type": "string" }, { "const": "high-volume", "type": "string" }, { "const": "cross-border", "type": "string" }, { "const": "failure-testing", "type": "string" } ] } } } } }, "merchantTestData_Summary": { "title": "Test Data Summary", "description": "Summary of test data generation", "additionalProperties": false, "examples": [ { "merchantId": "934eef9d-2ea7-4a83-9646-cb8ecdc54947", "paymentRequestsCreated": 120, "transactionsCreated": 120, "customersCreated": 15, "timeElapsed": "5.5s" }, { "merchantId": "123e4567-e89b-12d3-a456-426614174000", "paymentRequestsCreated": 50, "transactionsCreated": 50, "customersCreated": 8, "timeElapsed": "2.3s" } ], "type": "object", "properties": { "merchantId": { "format": "uuid", "description": "The merchant ID for which test data was generated", "examples": [ "934eef9d-2ea7-4a83-9646-cb8ecdc54947", "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "paymentRequestsCreated": { "description": "Number of payment requests created", "examples": [ 120, 50, 100 ], "type": "integer" }, "transactionsCreated": { "description": "Number of transactions created", "examples": [ 120, 50, 100 ], "type": "integer" }, "customersCreated": { "description": "Number of customers created", "examples": [ 15, 8, 12 ], "type": "integer" }, "timeElapsed": { "description": "Time taken to generate test data", "examples": [ "3.2s", "2.3s", "1.5s" ], "type": "string" } }, "required": [ "merchantId", "paymentRequestsCreated", "transactionsCreated", "customersCreated", "timeElapsed" ] }, "merchantTestData_Details": { "title": "Test Data Details", "description": "Detailed breakdown of generated test data", "additionalProperties": false, "examples": [ { "paymentRequestsByStatus": { "completed": 84, "pending": 18, "failed": 12, "cancelled": 6 }, "transactionsByType": { "payment": 120, "refund": 0 }, "transactionsByStatus": { "completed": 84, "pending": 18, "failed": 12, "cancelled": 6 }, "amountDistribution": { "small": 48, "medium": 48, "large": 24 }, "currencyDistribution": { "EUR": 60, "GBP": 30, "USD": 18, "DKK": 12 } }, { "paymentRequestsByStatus": { "completed": 35, "pending": 8, "failed": 5, "cancelled": 2 }, "transactionsByType": { "payment": 50, "refund": 0 }, "transactionsByStatus": { "completed": 35, "pending": 8, "failed": 5, "cancelled": 2 }, "amountDistribution": { "small": 20, "medium": 20, "large": 10 }, "currencyDistribution": { "EUR": 25, "GBP": 13, "USD": 8, "DKK": 4 } } ], "type": "object", "properties": { "paymentRequestsByStatus": { "description": "Breakdown of payment requests by status", "additionalProperties": false, "examples": [ { "completed": 35, "pending": 8, "failed": 5, "cancelled": 2 }, { "completed": 18, "pending": 4, "failed": 2, "cancelled": 1 } ], "type": "object", "properties": { "completed": { "description": "Number of completed payment requests", "examples": [ 35, 25, 18 ], "type": "integer" }, "pending": { "description": "Number of pending payment requests", "examples": [ 8, 4, 6 ], "type": "integer" }, "failed": { "description": "Number of failed payment requests", "examples": [ 5, 2, 3 ], "type": "integer" }, "cancelled": { "description": "Number of cancelled payment requests", "examples": [ 2, 1, 1 ], "type": "integer" } }, "required": [ "completed", "pending", "failed", "cancelled" ] }, "transactionsByType": { "description": "Breakdown of transactions by type", "additionalProperties": false, "examples": [ { "payment": 50, "refund": 0 }, { "payment": 25, "refund": 3 } ], "type": "object", "properties": { "payment": { "description": "Number of payment transactions", "examples": [ 50, 25, 35 ], "type": "integer" }, "refund": { "description": "Number of refund transactions", "examples": [ 0, 5, 2 ], "type": "integer" } }, "required": [ "payment", "refund" ] }, "transactionsByStatus": { "description": "Breakdown of transactions by status", "additionalProperties": false, "examples": [ { "completed": 35, "pending": 8, "failed": 5, "cancelled": 2 }, { "completed": 18, "pending": 4, "failed": 2, "cancelled": 1 } ], "type": "object", "properties": { "completed": { "description": "Number of completed transactions", "examples": [ 35, 25, 18 ], "type": "integer" }, "pending": { "description": "Number of pending transactions", "examples": [ 8, 4, 6 ], "type": "integer" }, "failed": { "description": "Number of failed transactions", "examples": [ 5, 2, 3 ], "type": "integer" }, "cancelled": { "description": "Number of cancelled transactions", "examples": [ 2, 1, 1 ], "type": "integer" } }, "required": [ "completed", "pending", "failed", "cancelled" ] }, "amountDistribution": { "description": "Distribution of transaction amounts", "additionalProperties": false, "examples": [ { "small": 20, "medium": 20, "large": 10 }, { "small": 10, "medium": 10, "large": 5 } ], "type": "object", "properties": { "small": { "description": "Number of small amount transactions (10-100)", "examples": [ 20, 10, 15 ], "type": "integer" }, "medium": { "description": "Number of medium amount transactions (100-1000)", "examples": [ 20, 10, 15 ], "type": "integer" }, "large": { "description": "Number of large amount transactions (1000+)", "examples": [ 10, 5, 8 ], "type": "integer" } }, "required": [ "small", "medium", "large" ] }, "currencyDistribution": { "description": "Number of transactions per currency code", "examples": [ { "EUR": 40, "GBP": 7, "USD": 3 }, { "EUR": 38, "GBP": 8, "USD": 4 } ], "type": "object", "patternProperties": { "^(.*)$": { "type": "integer" } } } }, "required": [ "paymentRequestsByStatus", "transactionsByType", "transactionsByStatus", "amountDistribution", "currencyDistribution" ] }, "merchantTestData_Data": { "title": "Merchant Test Data", "description": "Test data generation result", "additionalProperties": false, "examples": [ { "message": "Test data generated successfully for merchant", "summary": { "merchantId": "934eef9d-2ea7-4a83-9646-cb8ecdc54947", "paymentRequestsCreated": 120, "transactionsCreated": 120, "customersCreated": 15, "timeElapsed": "5.5s" }, "details": { "paymentRequestsByStatus": { "completed": 84, "pending": 18, "failed": 12, "cancelled": 6 }, "transactionsByType": { "payment": 120, "refund": 0 }, "transactionsByStatus": { "completed": 84, "pending": 18, "failed": 12, "cancelled": 6 }, "amountDistribution": { "small": 48, "medium": 48, "large": 24 }, "currencyDistribution": { "EUR": 60, "GBP": 30, "USD": 18, "DKK": 12 } } } ], "type": "object", "properties": { "message": { "description": "Success message", "examples": [ "Test data generated successfully for merchant" ], "type": "string" }, "summary": { "title": "Test Data Summary", "description": "Summary of test data generation", "additionalProperties": false, "examples": [ { "merchantId": "934eef9d-2ea7-4a83-9646-cb8ecdc54947", "paymentRequestsCreated": 120, "transactionsCreated": 120, "customersCreated": 15, "timeElapsed": "5.5s" }, { "merchantId": "123e4567-e89b-12d3-a456-426614174000", "paymentRequestsCreated": 50, "transactionsCreated": 50, "customersCreated": 8, "timeElapsed": "2.3s" } ], "type": "object", "properties": { "merchantId": { "format": "uuid", "description": "The merchant ID for which test data was generated", "examples": [ "934eef9d-2ea7-4a83-9646-cb8ecdc54947", "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "paymentRequestsCreated": { "description": "Number of payment requests created", "examples": [ 120, 50, 100 ], "type": "integer" }, "transactionsCreated": { "description": "Number of transactions created", "examples": [ 120, 50, 100 ], "type": "integer" }, "customersCreated": { "description": "Number of customers created", "examples": [ 15, 8, 12 ], "type": "integer" }, "timeElapsed": { "description": "Time taken to generate test data", "examples": [ "3.2s", "2.3s", "1.5s" ], "type": "string" } }, "required": [ "merchantId", "paymentRequestsCreated", "transactionsCreated", "customersCreated", "timeElapsed" ] }, "details": { "title": "Test Data Details", "description": "Detailed breakdown of generated test data", "additionalProperties": false, "examples": [ { "paymentRequestsByStatus": { "completed": 84, "pending": 18, "failed": 12, "cancelled": 6 }, "transactionsByType": { "payment": 120, "refund": 0 }, "transactionsByStatus": { "completed": 84, "pending": 18, "failed": 12, "cancelled": 6 }, "amountDistribution": { "small": 48, "medium": 48, "large": 24 }, "currencyDistribution": { "EUR": 60, "GBP": 30, "USD": 18, "DKK": 12 } }, { "paymentRequestsByStatus": { "completed": 35, "pending": 8, "failed": 5, "cancelled": 2 }, "transactionsByType": { "payment": 50, "refund": 0 }, "transactionsByStatus": { "completed": 35, "pending": 8, "failed": 5, "cancelled": 2 }, "amountDistribution": { "small": 20, "medium": 20, "large": 10 }, "currencyDistribution": { "EUR": 25, "GBP": 13, "USD": 8, "DKK": 4 } } ], "type": "object", "properties": { "paymentRequestsByStatus": { "description": "Breakdown of payment requests by status", "additionalProperties": false, "examples": [ { "completed": 35, "pending": 8, "failed": 5, "cancelled": 2 }, { "completed": 18, "pending": 4, "failed": 2, "cancelled": 1 } ], "type": "object", "properties": { "completed": { "description": "Number of completed payment requests", "examples": [ 35, 25, 18 ], "type": "integer" }, "pending": { "description": "Number of pending payment requests", "examples": [ 8, 4, 6 ], "type": "integer" }, "failed": { "description": "Number of failed payment requests", "examples": [ 5, 2, 3 ], "type": "integer" }, "cancelled": { "description": "Number of cancelled payment requests", "examples": [ 2, 1, 1 ], "type": "integer" } }, "required": [ "completed", "pending", "failed", "cancelled" ] }, "transactionsByType": { "description": "Breakdown of transactions by type", "additionalProperties": false, "examples": [ { "payment": 50, "refund": 0 }, { "payment": 25, "refund": 3 } ], "type": "object", "properties": { "payment": { "description": "Number of payment transactions", "examples": [ 50, 25, 35 ], "type": "integer" }, "refund": { "description": "Number of refund transactions", "examples": [ 0, 5, 2 ], "type": "integer" } }, "required": [ "payment", "refund" ] }, "transactionsByStatus": { "description": "Breakdown of transactions by status", "additionalProperties": false, "examples": [ { "completed": 35, "pending": 8, "failed": 5, "cancelled": 2 }, { "completed": 18, "pending": 4, "failed": 2, "cancelled": 1 } ], "type": "object", "properties": { "completed": { "description": "Number of completed transactions", "examples": [ 35, 25, 18 ], "type": "integer" }, "pending": { "description": "Number of pending transactions", "examples": [ 8, 4, 6 ], "type": "integer" }, "failed": { "description": "Number of failed transactions", "examples": [ 5, 2, 3 ], "type": "integer" }, "cancelled": { "description": "Number of cancelled transactions", "examples": [ 2, 1, 1 ], "type": "integer" } }, "required": [ "completed", "pending", "failed", "cancelled" ] }, "amountDistribution": { "description": "Distribution of transaction amounts", "additionalProperties": false, "examples": [ { "small": 20, "medium": 20, "large": 10 }, { "small": 10, "medium": 10, "large": 5 } ], "type": "object", "properties": { "small": { "description": "Number of small amount transactions (10-100)", "examples": [ 20, 10, 15 ], "type": "integer" }, "medium": { "description": "Number of medium amount transactions (100-1000)", "examples": [ 20, 10, 15 ], "type": "integer" }, "large": { "description": "Number of large amount transactions (1000+)", "examples": [ 10, 5, 8 ], "type": "integer" } }, "required": [ "small", "medium", "large" ] }, "currencyDistribution": { "description": "Number of transactions per currency code", "examples": [ { "EUR": 40, "GBP": 7, "USD": 3 }, { "EUR": 38, "GBP": 8, "USD": 4 } ], "type": "object", "patternProperties": { "^(.*)$": { "type": "integer" } } } }, "required": [ "paymentRequestsByStatus", "transactionsByType", "transactionsByStatus", "amountDistribution", "currencyDistribution" ] } }, "required": [ "message", "summary", "details" ] }, "merchantTestData_Response": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "title": "Merchant Test Data", "description": "Test data generation result", "additionalProperties": false, "examples": [ { "message": "Test data generated successfully for merchant", "summary": { "merchantId": "934eef9d-2ea7-4a83-9646-cb8ecdc54947", "paymentRequestsCreated": 120, "transactionsCreated": 120, "customersCreated": 15, "timeElapsed": "5.5s" }, "details": { "paymentRequestsByStatus": { "completed": 84, "pending": 18, "failed": 12, "cancelled": 6 }, "transactionsByType": { "payment": 120, "refund": 0 }, "transactionsByStatus": { "completed": 84, "pending": 18, "failed": 12, "cancelled": 6 }, "amountDistribution": { "small": 48, "medium": 48, "large": 24 }, "currencyDistribution": { "EUR": 60, "GBP": 30, "USD": 18, "DKK": 12 } } } ], "type": "object", "properties": { "message": { "description": "Success message", "examples": [ "Test data generated successfully for merchant" ], "type": "string" }, "summary": { "title": "Test Data Summary", "description": "Summary of test data generation", "additionalProperties": false, "examples": [ { "merchantId": "934eef9d-2ea7-4a83-9646-cb8ecdc54947", "paymentRequestsCreated": 120, "transactionsCreated": 120, "customersCreated": 15, "timeElapsed": "5.5s" }, { "merchantId": "123e4567-e89b-12d3-a456-426614174000", "paymentRequestsCreated": 50, "transactionsCreated": 50, "customersCreated": 8, "timeElapsed": "2.3s" } ], "type": "object", "properties": { "merchantId": { "format": "uuid", "description": "The merchant ID for which test data was generated", "examples": [ "934eef9d-2ea7-4a83-9646-cb8ecdc54947", "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "paymentRequestsCreated": { "description": "Number of payment requests created", "examples": [ 120, 50, 100 ], "type": "integer" }, "transactionsCreated": { "description": "Number of transactions created", "examples": [ 120, 50, 100 ], "type": "integer" }, "customersCreated": { "description": "Number of customers created", "examples": [ 15, 8, 12 ], "type": "integer" }, "timeElapsed": { "description": "Time taken to generate test data", "examples": [ "3.2s", "2.3s", "1.5s" ], "type": "string" } }, "required": [ "merchantId", "paymentRequestsCreated", "transactionsCreated", "customersCreated", "timeElapsed" ] }, "details": { "title": "Test Data Details", "description": "Detailed breakdown of generated test data", "additionalProperties": false, "examples": [ { "paymentRequestsByStatus": { "completed": 84, "pending": 18, "failed": 12, "cancelled": 6 }, "transactionsByType": { "payment": 120, "refund": 0 }, "transactionsByStatus": { "completed": 84, "pending": 18, "failed": 12, "cancelled": 6 }, "amountDistribution": { "small": 48, "medium": 48, "large": 24 }, "currencyDistribution": { "EUR": 60, "GBP": 30, "USD": 18, "DKK": 12 } }, { "paymentRequestsByStatus": { "completed": 35, "pending": 8, "failed": 5, "cancelled": 2 }, "transactionsByType": { "payment": 50, "refund": 0 }, "transactionsByStatus": { "completed": 35, "pending": 8, "failed": 5, "cancelled": 2 }, "amountDistribution": { "small": 20, "medium": 20, "large": 10 }, "currencyDistribution": { "EUR": 25, "GBP": 13, "USD": 8, "DKK": 4 } } ], "type": "object", "properties": { "paymentRequestsByStatus": { "description": "Breakdown of payment requests by status", "additionalProperties": false, "examples": [ { "completed": 35, "pending": 8, "failed": 5, "cancelled": 2 }, { "completed": 18, "pending": 4, "failed": 2, "cancelled": 1 } ], "type": "object", "properties": { "completed": { "description": "Number of completed payment requests", "examples": [ 35, 25, 18 ], "type": "integer" }, "pending": { "description": "Number of pending payment requests", "examples": [ 8, 4, 6 ], "type": "integer" }, "failed": { "description": "Number of failed payment requests", "examples": [ 5, 2, 3 ], "type": "integer" }, "cancelled": { "description": "Number of cancelled payment requests", "examples": [ 2, 1, 1 ], "type": "integer" } }, "required": [ "completed", "pending", "failed", "cancelled" ] }, "transactionsByType": { "description": "Breakdown of transactions by type", "additionalProperties": false, "examples": [ { "payment": 50, "refund": 0 }, { "payment": 25, "refund": 3 } ], "type": "object", "properties": { "payment": { "description": "Number of payment transactions", "examples": [ 50, 25, 35 ], "type": "integer" }, "refund": { "description": "Number of refund transactions", "examples": [ 0, 5, 2 ], "type": "integer" } }, "required": [ "payment", "refund" ] }, "transactionsByStatus": { "description": "Breakdown of transactions by status", "additionalProperties": false, "examples": [ { "completed": 35, "pending": 8, "failed": 5, "cancelled": 2 }, { "completed": 18, "pending": 4, "failed": 2, "cancelled": 1 } ], "type": "object", "properties": { "completed": { "description": "Number of completed transactions", "examples": [ 35, 25, 18 ], "type": "integer" }, "pending": { "description": "Number of pending transactions", "examples": [ 8, 4, 6 ], "type": "integer" }, "failed": { "description": "Number of failed transactions", "examples": [ 5, 2, 3 ], "type": "integer" }, "cancelled": { "description": "Number of cancelled transactions", "examples": [ 2, 1, 1 ], "type": "integer" } }, "required": [ "completed", "pending", "failed", "cancelled" ] }, "amountDistribution": { "description": "Distribution of transaction amounts", "additionalProperties": false, "examples": [ { "small": 20, "medium": 20, "large": 10 }, { "small": 10, "medium": 10, "large": 5 } ], "type": "object", "properties": { "small": { "description": "Number of small amount transactions (10-100)", "examples": [ 20, 10, 15 ], "type": "integer" }, "medium": { "description": "Number of medium amount transactions (100-1000)", "examples": [ 20, 10, 15 ], "type": "integer" }, "large": { "description": "Number of large amount transactions (1000+)", "examples": [ 10, 5, 8 ], "type": "integer" } }, "required": [ "small", "medium", "large" ] }, "currencyDistribution": { "description": "Number of transactions per currency code", "examples": [ { "EUR": 40, "GBP": 7, "USD": 3 }, { "EUR": 38, "GBP": 8, "USD": 4 } ], "type": "object", "patternProperties": { "^(.*)$": { "type": "integer" } } } }, "required": [ "paymentRequestsByStatus", "transactionsByType", "transactionsByStatus", "amountDistribution", "currencyDistribution" ] } }, "required": [ "message", "summary", "details" ] } }, "required": [ "success", "data" ] }, "paymentScheme_Schema": { "title": "Payment Scheme", "description": "Payment scheme information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the payment scheme", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "type": { "title": "Payment Scheme Type", "description": "The type of payment scheme", "examples": [ "SEPA_CREDIT_TRANSFER", "MULTIBANCO", "FASTER_PAYMENTS", "DANISH_DOMESTIC_CREDIT_TRANSFER" ], "anyOf": [ { "const": "SEPA_CREDIT_TRANSFER", "type": "string" }, { "const": "MULTIBANCO", "type": "string" }, { "const": "DANISH_DOMESTIC_CREDIT_TRANSFER", "type": "string" }, { "const": "FASTER_PAYMENTS", "type": "string" }, { "const": "BACS", "type": "string" } ] }, "name": { "description": "The human-readable name of the payment scheme", "examples": [ "SEPA Credit Transfer", "Multibanco", "Faster Payments" ], "type": "string" }, "is_default": { "description": "Whether this is the default payment scheme for the country", "examples": [ true, false ], "type": "boolean" }, "additional_payment_method": { "description": "Whether this scheme should be shown as a separate payment option in the UI", "examples": [ false, true ], "type": "boolean" } }, "required": [ "id", "type", "name", "is_default", "additional_payment_method" ] }, "paymentScheme_List": { "title": "Payment Schemes List", "description": "List of payment schemes", "additionalProperties": false, "type": "object", "properties": { "payment_schemes": { "description": "List of available payment schemes for the country", "type": "array", "items": { "title": "Payment Scheme", "description": "Payment scheme information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the payment scheme", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "type": { "title": "Payment Scheme Type", "description": "The type of payment scheme", "examples": [ "SEPA_CREDIT_TRANSFER", "MULTIBANCO", "FASTER_PAYMENTS", "DANISH_DOMESTIC_CREDIT_TRANSFER" ], "anyOf": [ { "const": "SEPA_CREDIT_TRANSFER", "type": "string" }, { "const": "MULTIBANCO", "type": "string" }, { "const": "DANISH_DOMESTIC_CREDIT_TRANSFER", "type": "string" }, { "const": "FASTER_PAYMENTS", "type": "string" }, { "const": "BACS", "type": "string" } ] }, "name": { "description": "The human-readable name of the payment scheme", "examples": [ "SEPA Credit Transfer", "Multibanco", "Faster Payments" ], "type": "string" }, "is_default": { "description": "Whether this is the default payment scheme for the country", "examples": [ true, false ], "type": "boolean" }, "additional_payment_method": { "description": "Whether this scheme should be shown as a separate payment option in the UI", "examples": [ false, true ], "type": "boolean" } }, "required": [ "id", "type", "name", "is_default", "additional_payment_method" ] } } }, "required": [ "payment_schemes" ] }, "paymentScheme_DiscoveryQuery": { "required": [ "country" ], "additionalProperties": false, "title": "Payment Scheme Discovery Query", "description": "Query parameters for discovering payment schemes", "type": "object", "properties": { "country": { "pattern": "^[A-Za-z]{2}$", "description": "ISO-2 country code", "examples": [ "PT", "DE", "GB" ], "type": "string" } } }, "paymentScheme_DiscoveryResponse": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "title": "Payment Schemes List", "description": "List of payment schemes", "additionalProperties": false, "type": "object", "properties": { "payment_schemes": { "description": "List of available payment schemes for the country", "type": "array", "items": { "title": "Payment Scheme", "description": "Payment scheme information", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the payment scheme", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "type": { "title": "Payment Scheme Type", "description": "The type of payment scheme", "examples": [ "SEPA_CREDIT_TRANSFER", "MULTIBANCO", "FASTER_PAYMENTS", "DANISH_DOMESTIC_CREDIT_TRANSFER" ], "anyOf": [ { "const": "SEPA_CREDIT_TRANSFER", "type": "string" }, { "const": "MULTIBANCO", "type": "string" }, { "const": "DANISH_DOMESTIC_CREDIT_TRANSFER", "type": "string" }, { "const": "FASTER_PAYMENTS", "type": "string" }, { "const": "BACS", "type": "string" } ] }, "name": { "description": "The human-readable name of the payment scheme", "examples": [ "SEPA Credit Transfer", "Multibanco", "Faster Payments" ], "type": "string" }, "is_default": { "description": "Whether this is the default payment scheme for the country", "examples": [ true, false ], "type": "boolean" }, "additional_payment_method": { "description": "Whether this scheme should be shown as a separate payment option in the UI", "examples": [ false, true ], "type": "boolean" } }, "required": [ "id", "type", "name", "is_default", "additional_payment_method" ] } } }, "required": [ "payment_schemes" ] } }, "required": [ "success", "data" ] }, "paymentScheme_CountryError": { "type": "object", "properties": { "success": { "const": false, "type": "boolean" }, "error": { "type": "object", "properties": { "code": { "description": "Error codes from country validation", "anyOf": [ { "const": "INVALID_COUNTRY_CODE_FORMAT", "type": "string" }, { "const": "INVALID_COUNTRY_CODE", "type": "string" }, { "const": "COUNTRY_NOT_DOMESTIC_ACTIVATED", "type": "string" }, { "const": "COUNTRY_NOT_CROSS_BORDER_ACTIVATED", "type": "string" }, { "const": "COUNTRY_NOT_ACTIVATED", "type": "string" } ] }, "message": { "description": "Human-readable error message", "examples": [ "Invalid country code format provided for payment scheme discovery", "Country code not found for payment scheme discovery: XX", "Country XX is not activated for payments (payment scheme discovery)" ], "type": "string" } }, "required": [ "code", "message" ] } }, "required": [ "success", "error" ] }, "bankAccountPaymentScheme_UpdateRequest": { "title": "Bank Account Payment Scheme Update Request", "description": "Request body for updating payment schemes on a bank account", "additionalProperties": false, "type": "object", "properties": { "supported_payment_schemes": { "description": "Array of payment schemes to update/merge. Only specified schemes are modified, existing schemes not mentioned are preserved.", "examples": [ [ { "type": "SEPA_CREDIT_TRANSFER", "is_active": true } ], [ { "type": "SEPA_CREDIT_TRANSFER", "is_active": false }, { "type": "MULTIBANCO", "is_active": true } ] ], "minItems": 1, "maxItems": 10, "type": "array", "items": { "title": "Payment Scheme Update Input", "description": "Payment scheme configuration for bank account updates", "additionalProperties": false, "type": "object", "properties": { "type": { "title": "Payment Scheme Type", "description": "The type of payment scheme", "examples": [ "SEPA_CREDIT_TRANSFER", "MULTIBANCO", "FASTER_PAYMENTS", "DANISH_DOMESTIC_CREDIT_TRANSFER" ], "anyOf": [ { "const": "SEPA_CREDIT_TRANSFER", "type": "string" }, { "const": "MULTIBANCO", "type": "string" }, { "const": "DANISH_DOMESTIC_CREDIT_TRANSFER", "type": "string" }, { "const": "FASTER_PAYMENTS", "type": "string" }, { "const": "BACS", "type": "string" } ] }, "is_active": { "description": "Whether this account should actively receive payments for this scheme. Defaults to false if not specified.", "type": "boolean" } }, "required": [ "type" ] } } }, "required": [ "supported_payment_schemes" ] }, "shopifyOrder_Input": { "type": "object", "properties": { "orderData": { "additionalProperties": true, "description": "Shopify order data object", "examples": [ { "order_id": "12345", "total": "100.00" } ], "type": "object", "properties": {} } }, "required": [ "orderData" ] }, "shopifyOrder_BulkInput": { "type": "object", "properties": { "orders": { "description": "Array of Shopify order data objects", "examples": [ [ { "order_id": "12345", "total": "100.00" } ] ], "type": "array", "items": { "additionalProperties": true, "description": "Shopify order data object", "type": "object", "properties": {} } } }, "required": [ "orders" ] }, "shopifyOrder_Response": { "title": "Shopify Order Response", "description": "Response for creating a Shopify order", "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "additionalProperties": true, "description": "Shopify order data", "type": "object", "properties": {} } } }, "shopifyOrder_ListResponse": { "title": "Shopify Orders List Response", "description": "Response for listing Shopify orders", "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "description": "Array of Shopify orders", "type": "array", "items": { "additionalProperties": true, "description": "Shopify order data", "type": "object", "properties": {} } } } } }, "securitySchemes": { "bearerAuth": { "type": "http", "scheme": "bearer", "bearerFormat": "JWT" } } }, "paths": { "/api/v1/admin/partners": { "post": { "tags": [ "Partners", "Admin" ], "summary": "Create a new partner", "description": "Create a new partner", "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/partner_CreateResponse" }, "example": { "success": true, "data": { "id": "123e4567-e89b-12d3-a456-426614174001", "name": "Barclaycard", "email": "argo@barclaycard.com", "client_id": "partner_123", "client_secret": "secret_abc123" } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "requestBody": { "required": true, "description": "Partner creation input", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/partner_Input" }, "example": { "name": "Barclaycard", "email": "argo@barclaycard.com" } } } } }, "get": { "tags": [ "Partners", "Admin" ], "summary": "Get all partners", "description": "Get all partners", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "format": "uuid", "type": "string" }, "name": { "type": "string" }, "email": { "format": "email", "type": "string" }, "client_id": { "format": "uuid", "type": "string" }, "created_at": { "format": "date-time", "type": "string" }, "updated_at": { "format": "date-time", "type": "string" } }, "required": [ "id", "name", "email", "client_id", "created_at", "updated_at" ] } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ] } }, "/api/v1/admin/partners/{id}": { "get": { "tags": [ "Partners", "Admin" ], "summary": "Get a partner by ID", "description": "Get a partner by ID", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/partner_Response" }, "example": { "success": true, "data": { "id": "123e4567-e89b-12d3-a456-426614174001", "name": "Barclaycard", "email": "argo@barclaycard.com", "client_id": "partner_123", "client_secret": "$2b$10$...", "created_at": "2024-03-19T12:00:00Z", "updated_at": "2024-03-19T12:00:00Z" } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the partner", "type": "string" }, "description": "The unique identifier of the partner" } ] }, "put": { "tags": [ "Partners", "Admin" ], "summary": "Update a partner by ID", "description": "Update a partner by ID", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/partner_Response" }, "example": { "success": true, "data": { "id": "123e4567-e89b-12d3-a456-426614174001", "name": "Barclaycard", "email": "argo@barclaycard.com", "client_id": "partner_123", "client_secret": "$2b$10$...", "created_at": "2024-03-19T12:00:00Z", "updated_at": "2024-03-19T12:00:00Z" } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the partner", "type": "string" }, "description": "The unique identifier of the partner" } ], "requestBody": { "required": true, "description": "Partner update input", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/partner_Update" }, "example": { "name": "BarclayCard International", "email": "argo.international@barclaycard.com" } } } } } }, "/api/v1/admin/partners/{id}/generate-secret": { "post": { "tags": [ "Partners", "Admin" ], "summary": "Generate a new client secret for a partner", "description": "Generate a new client secret for a partner", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "client_secret": { "description": "The generated client secret", "type": "string" } }, "required": [ "client_secret" ] } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error404" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the partner", "type": "string" }, "description": "The unique identifier of the partner" } ] } }, "/api/v1/admin/partners/{id}/revoke-secret": { "post": { "tags": [ "Partners", "Admin" ], "summary": "Revoke the client secret for a partner", "description": "Revoke the client secret for a partner", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "description": "Success message", "type": "string" } }, "required": [ "message" ] } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error404" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the partner", "type": "string" }, "description": "The unique identifier of the partner" } ] } }, "/api/v1/merchants": { "post": { "tags": [ "Merchants" ], "summary": "Create a new merchant", "description": "Create a new merchant", "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/merchant_Response" }, "example": { "success": true, "data": { "id": "123e4567-e89b-12d3-a456-426614174001", "brand_name": "Example Brand", "uri": "https://example-merchant.com", "category_code": "4816", "activation_status": "active", "mode": "live", "multi_account_setting": true, "client_id": "merchant_123", "account_owners": [] } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "requestBody": { "required": true, "description": "Merchant creation input", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/merchant_Input" }, "example": { "brand_name": "Example Brand", "uri": "https://example-merchant.com", "category_code": "4816", "account_owner": { "full_name": "John Doe", "email": "john.doe@example.com", "phone_number": "44;7395236209", "role": "Owner" } } } } } }, "get": { "tags": [ "Merchants" ], "summary": "Get all merchants", "description": "Get all merchants", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/merchant_ListResponse" }, "example": { "success": true, "data": [ { "id": "123e4567-e89b-12d3-a456-426614174001", "brand_name": "Example Brand", "uri": "https://example-merchant.com", "category_code": "4816", "activation_status": "active", "mode": "live", "multi_account_setting": true, "client_id": "merchant_123", "account_owners": [] } ] } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ] } }, "/api/v1/merchants/{id}": { "get": { "tags": [ "Merchants" ], "summary": "Get a merchant by ID", "description": "Get a merchant by ID", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/merchant_Response" }, "example": { "success": true, "data": { "id": "123e4567-e89b-12d3-a456-426614174001", "brand_name": "Example Brand", "uri": "https://example-merchant.com", "category_code": "4816", "activation_status": "active", "mode": "live", "multi_account_setting": true, "client_id": "merchant_123", "account_owners": [] } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the merchant", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The unique identifier of the merchant" } ] }, "put": { "tags": [ "Merchants" ], "summary": "Update a merchant by ID", "description": "Update a merchant by ID", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/merchant_Response" }, "example": { "success": true, "data": { "id": "123e4567-e89b-12d3-a456-426614174001", "brand_name": "Example Brand", "uri": "https://example-merchant.com", "category_code": "4816", "activation_status": "active", "mode": "live", "multi_account_setting": true, "client_id": "merchant_123", "account_owners": [] } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the merchant", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The unique identifier of the merchant" } ], "requestBody": { "required": true, "description": "Merchant update input", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/merchant_Update" }, "example": { "brand_name": "Updated Example Brand", "uri": "https://updated-example-merchant.com", "category_code": "4816" } } } } } }, "/api/v1/merchants/{id}/generate-secret": { "post": { "tags": [ "Merchants" ], "summary": "Generate a client secret for a merchant", "description": "Generate a client secret for a merchant", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/merchant_GenerateClientSecretResponse" }, "example": { "success": true, "data": { "client_secret": "secret_123abc" } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the merchant", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The unique identifier of the merchant" } ] } }, "/api/v1/merchants/{id}/revoke-secret": { "post": { "tags": [ "Merchants" ], "summary": "Revoke a client secret for a merchant", "description": "Revoke a client secret for a merchant", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/merchant_RevokeClientSecretResponse" }, "example": { "success": true, "data": { "message": "Client secret successfully revoked" } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the merchant", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The unique identifier of the merchant" } ] } }, "/api/v1/merchants/{id}/activation-status": { "patch": { "tags": [ "Merchants" ], "summary": "Update the activation status of a merchant", "description": "Update the activation status of a merchant", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/merchant_Response" }, "example": { "success": true, "data": { "id": "123e4567-e89b-12d3-a456-426614174001", "brand_name": "Example Brand", "uri": "https://example-merchant.com", "category_code": "4816", "activation_status": "active", "mode": "live", "multi_account_setting": true, "client_id": "merchant_123", "account_owners": [] } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the merchant", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The unique identifier of the merchant" } ], "requestBody": { "required": true, "description": "Merchant activation status update input", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/merchant_ActivationStatusUpdate" }, "example": { "activation_status": "active" } } } } } }, "/api/v1/merchants/{id}/mode": { "patch": { "tags": [ "Merchants" ], "summary": "Update the mode of a merchant (live/sandbox)", "description": "Update the mode of a merchant (live/sandbox)", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/merchant_Response" }, "example": { "success": true, "data": { "id": "123e4567-e89b-12d3-a456-426614174001", "brand_name": "Example Brand", "uri": "https://example-merchant.com", "category_code": "4816", "activation_status": "active", "mode": "live", "multi_account_setting": true, "client_id": "merchant_123", "account_owners": [] } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the merchant", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The unique identifier of the merchant" } ], "requestBody": { "required": true, "description": "Merchant mode update input", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/merchant_ModeUpdate" }, "example": { "mode": "live" } } } } } }, "/api/v1/merchants/{id}/settings/multi-account": { "patch": { "tags": [ "Merchants" ], "summary": "Update the multi-account allowed setting for a merchant", "description": "Update the multi-account allowed setting for a merchant", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/merchant_Response" }, "example": { "success": true, "data": { "id": "123e4567-e89b-12d3-a456-426614174001", "brand_name": "Example Brand", "uri": "https://example-merchant.com", "category_code": "4816", "activation_status": "active", "mode": "live", "multi_account_setting": true, "client_id": "merchant_123", "account_owners": [] } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error404" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error500" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the merchant", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The unique identifier of the merchant" } ], "requestBody": { "required": true, "description": "Input for updating the merchant multi-account setting", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/merchant_MultiAccountSettingUpdate" }, "example": { "allowed": true } } } } } }, "/api/v1/webhooks": { "post": { "tags": [ "Webhook" ], "summary": "Register or update a merchant webhook URL", "description": "Register or update a merchant webhook URL", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/webhook_Response" }, "example": { "success": true, "data": { "webhook_url": "https://example.com/webhook", "message": "Webhook URL successfully configured" } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "requestBody": { "required": true, "description": "Webhook configuration input", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/webhook_Input" }, "example": { "webhook_url": "https://example.com/webhook" } } } } } }, "/api/v1/webhooks/secret": { "post": { "tags": [ "Webhook" ], "summary": "Generate a webhook signing secret for the authenticated merchant", "description": "Generate a webhook signing secret for the authenticated merchant", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/webhook_GenerateWebhookSecretResponse" }, "example": { "success": true, "data": { "webhook_secret": "whsec_a1b2c3d4e5f6…" } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error403" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ] } }, "/api/v1/webhooks/secret/revoke": { "post": { "tags": [ "Webhook" ], "summary": "Revoke the current webhook signing secret", "description": "Revoke the current webhook signing secret", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/webhook_RevokeWebhookSecretResponse" }, "example": { "success": true, "data": { "message": "Webhook secret successfully revoked" } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error403" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ] } }, "/api/v1/merchants/{id}/legal-entities": { "post": { "tags": [ "Legal Entities" ], "summary": "Create a legal entity for a merchant", "description": "Create a legal entity for a merchant", "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/legalEntity_Response" }, "example": { "success": true, "data": { "id": "123e4567-e89b-12d3-a456-426614174001", "type": "company", "company_name": "Example Company", "company_number": "12345678", "vat_number": "GB123456789", "tax_id": "12345678901", "company_structure": "limited_liability_company", "country_of_incorporation": "GB", "incorporation_date": "2024-01-01", "registered_office_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" }, "company_operating_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" }, "contact_name": "Jane Doe", "contact_email": "jane.doe@example.com", "contact_phone_number": "44;7395236209", "annual_revenue_amount": 1000000, "annual_revenue_currency": "USD", "employees_number": "small", "first_name": "John", "last_name": "Alison", "email": "john.alison@example.com", "phone_number": "44;7395236209", "dob": "1990-01-01", "citizenship": "GB", "residency_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" }, "verification_required": true, "verification_link": "https://verify.example.com/entity/123", "verification_status": "pending_verification" } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the merchant", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The unique identifier of the merchant" } ], "requestBody": { "required": true, "description": "Legal entity creation/update input", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/legalEntity_Input" }, "example": { "type": "company", "company_name": "Example Company", "company_number": "12345678", "vat_number": "GB123456789", "tax_id": "12345678901", "company_structure": "limited_liability_company", "country_of_incorporation": "GB", "incorporation_date": "2024-01-01", "registered_office_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" }, "company_operating_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" }, "contact_name": "Jane Doe", "contact_email": "jane.doe@example.com", "contact_phone_number": "44;7395236209", "annual_revenue_amount": 1000000, "annual_revenue_currency": "USD", "employees_number": "small", "first_name": "John", "last_name": "Alison", "email": "john.alison@example.com", "phone_number": "44;7395236209", "dob": "1990-01-01", "citizenship": "GB", "residency_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" } } } } } }, "get": { "tags": [ "Legal Entities" ], "summary": "Get a legal entity for a merchant", "description": "Get a legal entity for a merchant", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/legalEntity_Response" }, "example": { "success": true, "data": { "id": "123e4567-e89b-12d3-a456-426614174001", "type": "company", "company_name": "Example Company", "company_number": "12345678", "vat_number": "GB123456789", "tax_id": "12345678901", "company_structure": "limited_liability_company", "country_of_incorporation": "GB", "incorporation_date": "2024-01-01", "registered_office_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" }, "company_operating_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" }, "contact_name": "Jane Doe", "contact_email": "jane.doe@example.com", "contact_phone_number": "44;7395236209", "annual_revenue_amount": 1000000, "annual_revenue_currency": "USD", "employees_number": "small", "first_name": "John", "last_name": "Alison", "email": "john.alison@example.com", "phone_number": "44;7395236209", "dob": "1990-01-01", "citizenship": "GB", "residency_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" }, "verification_required": true, "verification_link": "https://verify.example.com/entity/123", "verification_status": "pending_verification" } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the merchant", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The unique identifier of the merchant" } ] }, "put": { "tags": [ "Legal Entities" ], "summary": "Update a legal entity for a merchant", "description": "Update a legal entity for a merchant", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/legalEntity_Response" }, "example": { "success": true, "data": { "id": "123e4567-e89b-12d3-a456-426614174001", "type": "company", "company_name": "Example Company", "company_number": "12345678", "vat_number": "GB123456789", "tax_id": "12345678901", "company_structure": "limited_liability_company", "country_of_incorporation": "GB", "incorporation_date": "2024-01-01", "registered_office_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" }, "company_operating_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" }, "contact_name": "Jane Doe", "contact_email": "jane.doe@example.com", "contact_phone_number": "44;7395236209", "annual_revenue_amount": 1000000, "annual_revenue_currency": "USD", "employees_number": "small", "first_name": "John", "last_name": "Alison", "email": "john.alison@example.com", "phone_number": "44;7395236209", "dob": "1990-01-01", "citizenship": "GB", "residency_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" }, "verification_required": true, "verification_link": "https://verify.example.com/entity/123", "verification_status": "pending_verification" } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the merchant", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The unique identifier of the merchant" } ], "requestBody": { "required": true, "description": "Legal entity creation/update input", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/legalEntity_Input" }, "example": { "type": "company", "company_name": "Example Company", "company_number": "12345678", "vat_number": "GB123456789", "tax_id": "12345678901", "company_structure": "limited_liability_company", "country_of_incorporation": "GB", "incorporation_date": "2024-01-01", "registered_office_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" }, "company_operating_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" }, "contact_name": "Jane Doe", "contact_email": "jane.doe@example.com", "contact_phone_number": "44;7395236209", "annual_revenue_amount": 1000000, "annual_revenue_currency": "USD", "employees_number": "small", "first_name": "John", "last_name": "Alison", "email": "john.alison@example.com", "phone_number": "44;7395236209", "dob": "1990-01-01", "citizenship": "GB", "residency_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" } } } } } } }, "/api/v1/admin/legal-entities/{id}/verify": { "patch": { "tags": [ "Legal Entities", "Admin" ], "summary": "Verify a legal entity", "description": "Verify a legal entity", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/legalEntity_Response" }, "example": { "success": true, "data": { "id": "123e4567-e89b-12d3-a456-426614174001", "type": "company", "company_name": "Example Company", "company_number": "12345678", "vat_number": "GB123456789", "tax_id": "12345678901", "company_structure": "limited_liability_company", "country_of_incorporation": "GB", "incorporation_date": "2024-01-01", "registered_office_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" }, "company_operating_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" }, "contact_name": "Jane Doe", "contact_email": "jane.doe@example.com", "contact_phone_number": "44;7395236209", "annual_revenue_amount": 1000000, "annual_revenue_currency": "USD", "employees_number": "small", "first_name": "John", "last_name": "Alison", "email": "john.alison@example.com", "phone_number": "44;7395236209", "dob": "1990-01-01", "citizenship": "GB", "residency_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" }, "verification_required": true, "verification_link": "https://verify.example.com/entity/123", "verification_status": "pending_verification" } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the legal entity", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The unique identifier of the legal entity" } ], "requestBody": { "required": true, "description": "Request body", "content": { "application/json": { "schema": { "required": [ "verification_status" ], "type": "object", "properties": { "verification_status": { "description": "The new verification status for the legal entity", "examples": [ "verified", "rejected", "pending_verification", "more_information_required" ], "anyOf": [ { "const": "verified", "type": "string" }, { "const": "rejected", "type": "string" }, { "const": "pending_verification", "type": "string" }, { "const": "more_information_required", "type": "string" } ] } } }, "example": { "verification_status": "verified" } } } } } }, "/api/v1/merchants/{merchantId}/shareholders": { "post": { "tags": [ "Legal Entities" ], "summary": "Create a shareholder for a Merchant Legal Entity", "description": "Create a shareholder for a Merchant Legal Entity", "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shareholder_Response" }, "example": { "success": true, "data": { "id": "123e4567-e89b-12d3-a456-426614174001", "ownership_details": { "ownership_share": 25, "ownership_roles": [ "owner", "director" ], "id_type": "passport", "id_number": "AB123456", "id_issue_country": "US" }, "legal_entity": { "type": "company", "company_name": "Example Company", "company_number": "12345678", "vat_number": "GB123456789", "tax_id": "12345678901", "company_structure": "limited_liability_company", "country_of_incorporation": "GB", "incorporation_date": "2024-01-01", "registered_office_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" }, "company_operating_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" }, "contact_name": "Jane Doe", "contact_email": "jane.doe@example.com", "contact_phone_number": "44;7395236209", "annual_revenue_amount": 1000000, "annual_revenue_currency": "USD", "employees_number": "small", "first_name": "John", "last_name": "Alison", "email": "john.alison@example.com", "phone_number": "44;7395236209", "dob": "1990-01-01", "citizenship": "GB", "residency_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" } } } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "merchantId", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the merchant", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The unique identifier of the merchant" } ], "requestBody": { "required": true, "description": "Shareholder creation input", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shareholder_Input" }, "example": { "ownership_details": { "ownership_share": 25, "ownership_roles": [ "owner", "director" ], "id_type": "passport", "id_number": "AB123456", "id_issue_country": "US" }, "legal_entity": { "type": "company", "company_name": "Example Company", "company_number": "12345678", "vat_number": "GB123456789", "tax_id": "12345678901", "company_structure": "limited_liability_company", "country_of_incorporation": "GB", "incorporation_date": "2024-01-01", "registered_office_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" }, "company_operating_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" }, "contact_name": "Jane Doe", "contact_email": "jane.doe@example.com", "contact_phone_number": "44;7395236209", "annual_revenue_amount": 1000000, "annual_revenue_currency": "USD", "employees_number": "small", "first_name": "John", "last_name": "Alison", "email": "john.alison@example.com", "phone_number": "44;7395236209", "dob": "1990-01-01", "citizenship": "GB", "residency_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" } } } } } } }, "get": { "tags": [ "Legal Entities" ], "summary": "Get shareholders for a Merchant Legal Entity", "description": "Get shareholders for a Merchant Legal Entity", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shareholder_ListResponse" }, "example": { "success": true, "data": [ { "id": "123e4567-e89b-12d3-a456-426614174001", "ownership_details": { "ownership_share": 25, "ownership_roles": [ "owner", "director" ], "id_type": "passport", "id_number": "AB123456", "id_issue_country": "US" }, "legal_entity": { "type": "company", "company_name": "Example Company", "company_number": "12345678", "vat_number": "GB123456789", "tax_id": "12345678901", "company_structure": "limited_liability_company", "country_of_incorporation": "GB", "incorporation_date": "2024-01-01", "registered_office_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" }, "company_operating_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" }, "contact_name": "Jane Doe", "contact_email": "jane.doe@example.com", "contact_phone_number": "44;7395236209", "annual_revenue_amount": 1000000, "annual_revenue_currency": "USD", "employees_number": "small", "first_name": "John", "last_name": "Alison", "email": "john.alison@example.com", "phone_number": "44;7395236209", "dob": "1990-01-01", "citizenship": "GB", "residency_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" } } } ] } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "merchantId", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the merchant", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The unique identifier of the merchant" } ] } }, "/api/v1/merchants/{merchantId}/shareholders/{shareholderId}": { "get": { "tags": [ "Legal Entities" ], "summary": "Get a shareholder for a Merchant Legal Entity", "description": "Get a shareholder for a Merchant Legal Entity", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shareholder_Response" }, "example": { "success": true, "data": { "id": "123e4567-e89b-12d3-a456-426614174001", "ownership_details": { "ownership_share": 25, "ownership_roles": [ "owner", "director" ], "id_type": "passport", "id_number": "AB123456", "id_issue_country": "US" }, "legal_entity": { "type": "company", "company_name": "Example Company", "company_number": "12345678", "vat_number": "GB123456789", "tax_id": "12345678901", "company_structure": "limited_liability_company", "country_of_incorporation": "GB", "incorporation_date": "2024-01-01", "registered_office_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" }, "company_operating_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" }, "contact_name": "Jane Doe", "contact_email": "jane.doe@example.com", "contact_phone_number": "44;7395236209", "annual_revenue_amount": 1000000, "annual_revenue_currency": "USD", "employees_number": "small", "first_name": "John", "last_name": "Alison", "email": "john.alison@example.com", "phone_number": "44;7395236209", "dob": "1990-01-01", "citizenship": "GB", "residency_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" } } } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "merchantId", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the merchant", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The unique identifier of the merchant" }, { "name": "shareholderId", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the shareholder", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The unique identifier of the shareholder" } ] }, "put": { "tags": [ "Legal Entities" ], "summary": "Update a shareholder for a Merchant Legal Entity", "description": "Update a shareholder for a Merchant Legal Entity", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shareholder_Response" }, "example": { "success": true, "data": { "id": "123e4567-e89b-12d3-a456-426614174001", "ownership_details": { "ownership_share": 25, "ownership_roles": [ "owner", "director" ], "id_type": "passport", "id_number": "AB123456", "id_issue_country": "US" }, "legal_entity": { "type": "company", "company_name": "Example Company", "company_number": "12345678", "vat_number": "GB123456789", "tax_id": "12345678901", "company_structure": "limited_liability_company", "country_of_incorporation": "GB", "incorporation_date": "2024-01-01", "registered_office_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" }, "company_operating_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" }, "contact_name": "Jane Doe", "contact_email": "jane.doe@example.com", "contact_phone_number": "44;7395236209", "annual_revenue_amount": 1000000, "annual_revenue_currency": "USD", "employees_number": "small", "first_name": "John", "last_name": "Alison", "email": "john.alison@example.com", "phone_number": "44;7395236209", "dob": "1990-01-01", "citizenship": "GB", "residency_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" } } } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "merchantId", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the merchant", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The unique identifier of the merchant" }, { "name": "shareholderId", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the shareholder", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The unique identifier of the shareholder" } ], "requestBody": { "required": true, "description": "Shareholder creation input", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shareholder_Input" }, "example": { "ownership_details": { "ownership_share": 25, "ownership_roles": [ "owner", "director" ], "id_type": "passport", "id_number": "AB123456", "id_issue_country": "US" }, "legal_entity": { "type": "company", "company_name": "Example Company", "company_number": "12345678", "vat_number": "GB123456789", "tax_id": "12345678901", "company_structure": "limited_liability_company", "country_of_incorporation": "GB", "incorporation_date": "2024-01-01", "registered_office_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" }, "company_operating_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" }, "contact_name": "Jane Doe", "contact_email": "jane.doe@example.com", "contact_phone_number": "44;7395236209", "annual_revenue_amount": 1000000, "annual_revenue_currency": "USD", "employees_number": "small", "first_name": "John", "last_name": "Alison", "email": "john.alison@example.com", "phone_number": "44;7395236209", "dob": "1990-01-01", "citizenship": "GB", "residency_address": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA" } } } } } } } }, "/api/v1/merchants/{id}/bank-accounts": { "post": { "tags": [ "Merchant Bank Accounts" ], "summary": "Create a bank account for a merchant", "description": "Create a bank account for a merchant", "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/merchantBankAccount_Response" }, "example": { "success": true, "data": { "id": "123e4567-e89b-12d3-a456-426614174001", "account_number": "11223344", "currency": "GBP", "country": "GB", "status": "active", "created_at": "2024-03-19T12:00:00Z", "updated_at": "2024-03-19T12:00:00Z", "iban": "DE89370400440532013000", "bic": "MARKDEF1100", "sort_code": "123456", "routing_number": "123456789", "bban": "86011117947", "plusgiro_number": "41054685", "bsb": "062-000", "account_holder_name": "John Smith", "supported_payment_schemes": [ { "type": "SEPA_CREDIT_TRANSFER", "name": "SEPA Credit Transfer" } ] } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error403" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error404" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error500" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the merchant", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The unique identifier of the merchant" } ], "requestBody": { "required": true, "description": "Merchant bank account creation/update input", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/merchantBankAccount_Input" }, "example": { "account_number": "11223344", "currency": "GBP", "country": "GB", "iban": "DE89370400440532013000", "bic": "MARKDEF1100", "sort_code": "123456", "routing_number": "123456789", "bank_id": "123e4567-e89b-12d3-a456-426614174002", "bban": "86011117947", "plusgiro_number": "41054685", "bsb": "062-000", "account_holder_name": "John Smith", "supported_payment_schemes": [ { "type": "SEPA_CREDIT_TRANSFER", "is_active": true } ] } } } } }, "get": { "tags": [ "Merchant Bank Accounts" ], "summary": "Get all bank accounts for a merchant (active and inactive). Optionally filter by currency query param.", "description": "Get all bank accounts for a merchant (active and inactive). Optionally filter by currency query param.", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/merchantBankAccount_ListResponse" }, "example": { "success": true, "data": [ { "id": "123e4567-e89b-12d3-a456-426614174001", "account_number": "11223344", "currency": "GBP", "country": "GB", "status": "active", "created_at": "2024-03-19T12:00:00Z", "updated_at": "2024-03-19T12:00:00Z", "iban": "DE89370400440532013000", "bic": "MARKDEF1100", "sort_code": "123456", "routing_number": "123456789", "bban": "86011117947", "plusgiro_number": "41054685", "bsb": "062-000", "account_holder_name": "John Smith", "supported_payment_schemes": [ { "type": "SEPA_CREDIT_TRANSFER", "name": "SEPA Credit Transfer" } ] } ] } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error403" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error404" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the merchant", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The unique identifier of the merchant" }, { "name": "currency", "in": "query", "required": false, "schema": { "description": "Optional currency code (ISO 4217) to filter active accounts", "examples": [ "EUR", "GBP" ], "type": "string" }, "description": "Optional currency code (ISO 4217) to filter active accounts" } ] } }, "/api/v1/merchants/{id}/bank-accounts/active": { "get": { "tags": [ "Merchant Bank Accounts" ], "summary": "Get active bank account(s) for a merchant. Optionally filter by currency query param.", "description": "Get active bank account(s) for a merchant. Optionally filter by currency query param.", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/merchantBankAccount_ListResponse" }, "example": { "success": true, "data": [ { "id": "123e4567-e89b-12d3-a456-426614174001", "account_number": "11223344", "currency": "GBP", "country": "GB", "status": "active", "created_at": "2024-03-19T12:00:00Z", "updated_at": "2024-03-19T12:00:00Z", "iban": "DE89370400440532013000", "bic": "MARKDEF1100", "sort_code": "123456", "routing_number": "123456789", "bban": "86011117947", "plusgiro_number": "41054685", "bsb": "062-000", "account_holder_name": "John Smith", "supported_payment_schemes": [ { "type": "SEPA_CREDIT_TRANSFER", "name": "SEPA Credit Transfer" } ] } ] } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error403" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error404" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the merchant", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The unique identifier of the merchant" }, { "name": "currency", "in": "query", "required": false, "schema": { "description": "Optional currency code (ISO 4217) to filter active accounts", "examples": [ "EUR", "GBP" ], "type": "string" }, "description": "Optional currency code (ISO 4217) to filter active accounts" } ] } }, "/api/v1/bank-accounts/{bankAccountId}/deactivate": { "put": { "tags": [ "Merchant Bank Accounts" ], "summary": "Deactivate a specific bank account", "description": "Deactivate a specific bank account", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/merchantBankAccount_Response" }, "example": { "success": true, "data": { "id": "123e4567-e89b-12d3-a456-426614174001", "account_number": "11223344", "currency": "GBP", "country": "GB", "status": "active", "created_at": "2024-03-19T12:00:00Z", "updated_at": "2024-03-19T12:00:00Z", "iban": "DE89370400440532013000", "bic": "MARKDEF1100", "sort_code": "123456", "routing_number": "123456789", "bban": "86011117947", "plusgiro_number": "41054685", "bsb": "062-000", "account_holder_name": "John Smith", "supported_payment_schemes": [ { "type": "SEPA_CREDIT_TRANSFER", "name": "SEPA Credit Transfer" } ] } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error403" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error404" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error500" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "bankAccountId", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the bank account to deactivate", "examples": [ "ef84a547-8956-460e-a4a3-9d313da5efca" ], "type": "string" }, "description": "The unique identifier of the bank account to deactivate" } ] } }, "/api/v1/bank-accounts/{bankAccountId}/payment-schemes": { "put": { "tags": [ "Merchant Bank Account Payment Schemes" ], "summary": "Update/merge payment schemes for a specific bank account. Only modifies specified schemes, preserves existing ones not mentioned.", "description": "Update/merge payment schemes for a specific bank account. Only modifies specified schemes, preserves existing ones not mentioned.", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/merchantBankAccount_Response" }, "example": { "success": true, "data": { "id": "123e4567-e89b-12d3-a456-426614174001", "account_number": "11223344", "currency": "GBP", "country": "GB", "status": "active", "created_at": "2024-03-19T12:00:00Z", "updated_at": "2024-03-19T12:00:00Z", "iban": "DE89370400440532013000", "bic": "MARKDEF1100", "sort_code": "123456", "routing_number": "123456789", "bban": "86011117947", "plusgiro_number": "41054685", "bsb": "062-000", "account_holder_name": "John Smith", "supported_payment_schemes": [ { "type": "SEPA_CREDIT_TRANSFER", "name": "SEPA Credit Transfer" } ] } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error403" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error404" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error500" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "bankAccountId", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the bank account", "examples": [ "ef84a547-8956-460e-a4a3-9d313da5efca" ], "type": "string" }, "description": "The unique identifier of the bank account" } ], "requestBody": { "required": true, "description": "Request body for updating payment schemes on a bank account", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/bankAccountPaymentScheme_UpdateRequest" }, "example": { "supported_payment_schemes": [ { "type": "SEPA_CREDIT_TRANSFER", "is_active": true } ] } } } } } }, "/api/v1/payment-schemes": { "get": { "tags": [ "Payment Schemes" ], "summary": "Get available payment schemes for a specific country", "description": "Get available payment schemes for a specific country", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/paymentScheme_DiscoveryResponse" }, "example": { "success": true, "data": { "payment_schemes": [ { "id": "123e4567-e89b-12d3-a456-426614174001", "type": "SEPA_CREDIT_TRANSFER", "name": "SEPA Credit Transfer", "is_default": true, "additional_payment_method": false } ] } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/paymentScheme_CountryError" }, "example": { "success": false, "error": { "code": "INVALID_COUNTRY_CODE_FORMAT", "message": "Invalid country code format provided for payment scheme discovery" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/paymentScheme_CountryError" }, "example": { "success": false, "error": { "code": "INVALID_COUNTRY_CODE_FORMAT", "message": "Invalid country code format provided for payment scheme discovery" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error404" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "country", "in": "query", "required": true, "schema": { "pattern": "^[A-Za-z]{2}$", "description": "ISO-2 country code", "examples": [ "PT", "DE", "GB" ], "type": "string" }, "description": "ISO-2 country code" } ] } }, "/api/v1/payment-requests": { "post": { "tags": [ "Payments" ], "summary": "Create a new payment request", "description": "Create a new payment request", "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/paymentRequest_Response" }, "example": { "success": true, "data": { "redirect_url": "https://example.com/redirect" } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "requestBody": { "required": true, "description": "Payment request input parameters", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/paymentRequest_Input" }, "example": { "customer": { "name": "John Doe", "email": "john.doe@example.com", "phone_number": "07123456789" }, "billingAddress": { "address_line1": "12 West Common Drive", "address_line2": "Flat 1", "apartment": "Apt 5B", "city": "London", "state_province": "Greater London", "country": "GB", "postal_code": "SE1 1AA", "company_name": "" }, "amount": 100, "currency": "GBP", "payment_reference": "ORDER123", "order_id": "1140", "locale": "en_GB", "platform": "WooCommerce", "device_type": "mobile", "external_payment_request_id": "u0nwmSrNntjIWozmNslK5Tlq", "test_transaction": false, "group": "rZNvy+1jH6Z+BcPqA5U5BSIcnUavBha3C63xBalm+xE=", "gid": "gid://shopify/PaymentSession/u0nwmSrNntjIWozmNslK5Tlq", "selected_bank_id": "38c39d03-8df3-4980-b0a8-7e283c8c62dd", "session_id": "4B2dxmle3vGgimS4deUX3+2PgLF2+/0ZWnNsNSZcgdU=", "success_url_redirect": "https://storename.com/success", "fail_url_redirect": "https://storename.com/failure" } } } } } }, "/api/v1/payment-initiation/{paymentRequestId}": { "post": { "tags": [ "Payments" ], "summary": "Initiate a payment for a specific payment request with selected bank", "description": "Initiate a payment for a specific payment request with selected bank", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/paymentInitiation_Response" }, "example": { "success": true, "data": { "order_id": "123" } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "parameters": [ { "name": "paymentRequestId", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the payment request", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The unique identifier of the payment request" } ], "requestBody": { "required": true, "description": "Request body", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/paymentInitiation_Input" }, "example": { "bankId": "123e4567-e89b-12d3-a456-426614174000", "paymentScheme": null } } } } } }, "/api/v1/callback": { "get": { "tags": [ "Payments" ], "summary": "Handle payment callback from Tink", "description": "Handle payment callback from Tink", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "description": "HTML response for the callback page", "examples": [ "..." ], "type": "string" }, "example": "..." } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } } } }, "/api/v1/payments/{paymentRequestId}/status": { "get": { "tags": [ "Payments" ], "summary": "Check payment status", "description": "Check payment status", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "transaction": { "type": "object", "properties": {} }, "status": { "type": "string" } }, "required": [ "status" ] } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "parameters": [ { "name": "paymentRequestId", "in": "path", "required": true, "schema": { "type": "string" }, "description": "The paymentRequestId parameter" } ] } }, "/api/v1/embedded": { "get": { "tags": [ "Embedded" ], "summary": "Serve the Quidkey iframe bootstrap HTML", "description": "Serve the Quidkey iframe bootstrap HTML", "responses": {} } }, "/api/v1/embedded/html": { "get": { "tags": [ "Embedded" ], "summary": "Server-side rendered HTML fragment for bank selection", "description": "Server-side rendered HTML fragment for bank selection", "responses": {} } }, "/api/v1/embedded/payment-requests": { "post": { "tags": [ "Embedded" ], "summary": "Create a payment request and return a payment_token for iframe flow", "description": "Create a payment request and return a payment_token for iframe flow", "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/embeddedPaymentRequest_Response" }, "example": { "success": true, "data": { "payment_token": "ptok_efghijklm...", "expires_in": 900 } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "requestBody": { "required": true, "description": "Request body", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/embeddedPaymentRequest_Input" }, "example": { "customer": { "name": "Jack Haversham", "email": "jack@example.com", "phone": "+4917646793347", "country": "DE" }, "order": { "order_id": "ORD-123456", "amount": 9300, "currency": "EUR", "payment_reference": "Barcelona Tryp", "locale": "en-GB", "test_transaction": true, "rewards": { "extra_rewards": 150, "total_rewards": 300, "description": "Loyalty bonus + base rewards" } }, "device_type": "ios", "redirect_urls": { "success_url": "https://tryp.com/checkout/success", "failure_url": "https://tryp.com/checkout/error" } } } } } }, "patch": { "tags": [ "Embedded" ], "summary": "Update an embedded payment request (amount and/or rewards) before payment initiation", "description": "Update an embedded payment request (amount and/or rewards) before payment initiation", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/embeddedPaymentRequestUpdate_Response" }, "example": { "success": true, "data": { "payment_token": "ptok_abcd1234", "amount": 1530, "rewards": { "extra_rewards": 150, "total_rewards": 300, "description": "Updated loyalty bonus" }, "expires_in": 750 } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "requestBody": { "required": true, "description": "Request body", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/embeddedPaymentRequestUpdate_Input" }, "example": { "payment_token": "ptok_abcd1234", "amount": 1530, "rewards": { "extra_rewards": 150, "total_rewards": 300, "description": "Updated loyalty bonus" } } } } } } }, "/api/v1/embedded/payment-initiation": { "post": { "tags": [ "Embedded" ], "summary": "Initiate a payment for an embedded flow using payment_token (query or body) and selected bank", "description": "Initiate a payment for an embedded flow using payment_token (query or body) and selected bank", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/paymentInitiation_Response" }, "example": { "success": true, "data": { "order_id": "123" } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error404" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "requestBody": { "required": true, "description": "Request body", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/paymentInitiation_Input" }, "example": { "bankId": "123e4567-e89b-12d3-a456-426614174000", "paymentScheme": null } } } } } }, "/api/v1/merchants/{id}/transactions": { "post": { "tags": [ "Transactions" ], "summary": "Search transactions for a merchant with filtering and sorting", "description": "Search transactions for a merchant with filtering and sorting", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/transaction_SearchResponse" }, "example": { "data": [ { "currency": { "code": "EUR", "symbol": "€", "name": "Euro", "minor_unit": 2 }, "payment_request": { "order_id": "ORD-2025-00123", "payment_token": "tok_abc123def456" } } ], "search_metadata": { "sort_applied": [ { "field": "created_at", "direction": "desc" } ] }, "totals": [ { "currency": "EUR", "total_amount": 3034 }, { "currency": "GBP", "total_amount": 534 }, { "currency": "DKK", "total_amount": 2034 } ] } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error403" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the merchant", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The unique identifier of the merchant" } ], "requestBody": { "required": true, "description": "Phase 1 transaction search with currency totals and enhanced filtering", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/search_Request" }, "example": { "search": { "amount": { "gte": 1000, "lte": 5000 }, "status": { "eq": "completed" }, "customer_email": { "contains": "gmail" } }, "pagination": { "page": 1, "limit": 25 }, "sort": [ { "field": "created_at", "direction": "desc" } ] } } } } } }, "/api/v1/transactions/{id}": { "get": { "tags": [ "Transactions" ], "summary": "Get a transaction by ID", "description": "Get a transaction by ID", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/transaction_Response" }, "example": { "data": { "currency": { "code": "EUR", "symbol": "€", "name": "Euro", "minor_unit": 2 }, "payment_request": { "order_id": "ORD-2025-00123", "payment_token": "tok_abc123def456" }, "fees": { "currency": { "code": "EUR", "symbol": "€", "name": "Euro", "minor_unit": 2 }, "items": [ { "currency": { "code": "EUR", "symbol": "€", "name": "Euro", "minor_unit": 2 } } ] } } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the transaction", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The unique identifier of the transaction" } ] } }, "/api/v1/refund-session": { "post": { "tags": [ "Refunds" ], "summary": "Create a refund session", "description": "Create a refund session", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "status": { "type": "string" }, "reason": { "type": "string" } }, "required": [ "id", "status" ] } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "requestBody": { "required": true, "description": "Request body", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/refundSession_Input" }, "example": { "id": "JM1YXF4yUe0vmo-FHsgVK3ZC", "gid": "gid://shopify/RefundSession/JM1YXF4yUe0vmo-FHsgVK3ZC", "payment_id": "rSOX4QcIGECb4ZEydY8GgMTfO", "amount": "1.00", "currency": "GBP", "merchant_locale": "en", "platform": "shopify", "proposed_at": "2025-02-21T11:17:05Z", "test": true } } } } } }, "/api/v1/bank-predictions": { "post": { "tags": [ "Bank Predictions" ], "summary": "Predict banks for a customer based on their contact information", "description": "Predict banks for a customer based on their contact information", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/bankPrediction_Response" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "requestBody": { "required": true, "description": "Request body", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/bankPrediction_Request" }, "example": { "customer_country": "GB", "phone_number": "+447395263205", "email": "customer@example.com", "payment_request_id": "123e4567-e89b-12d3-a456-426614174000", "session_id": "wca23456789abcdef" } } } } } }, "/api/v1/admin/customers": { "post": { "tags": [ "Customers", "Admin" ], "summary": "Create a new customer", "description": "Create a new customer", "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/customer_Response" }, "example": { "success": true } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "requestBody": { "required": true, "description": "Customer creation/update input", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/customer_Input" }, "example": { "name": "John Doe", "email": "john.doe@example.com", "phone_number": "+491234567890" } } } } } }, "/api/v1/admin/customers/{customerId}": { "get": { "tags": [ "Customers", "Admin" ], "summary": "Retrieve a customer by ID", "description": "Retrieve a customer by ID", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/customer_Response" }, "example": { "success": true } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "customerId", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the customer", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The unique identifier of the customer" } ] }, "put": { "tags": [ "Customers", "Admin" ], "summary": "Update a customer by ID", "description": "Update a customer by ID", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/customer_Response" }, "example": { "success": true } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "customerId", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the customer", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The unique identifier of the customer" } ], "requestBody": { "required": true, "description": "Customer creation/update input", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/customer_Input" }, "example": { "name": "John Doe", "email": "john.doe@example.com", "phone_number": "+491234567890" } } } } } }, "/api/v1/oauth2/token": { "post": { "tags": [ "Auth" ], "summary": "Issue a new access token", "description": "Issue a new access token", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/auth_TokenResponse" }, "example": { "success": true, "data": { "access_token": "example_access_token_xyz789", "refresh_token": "example_refresh_token_abc123", "token_type": "Bearer", "expires_in": 3600 } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "requestBody": { "required": true, "description": "Request body", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/auth_TokenRequest" }, "example": { "client_id": "547544c3-eeac-492e-8df9-5a52ca4e6bdf", "client_secret": "b717adcac3f26e8034574021fa647cd7d4edd67b615046df387f6712c3601048" } } } } } }, "/api/v1/oauth2/refresh": { "post": { "tags": [ "Auth" ], "summary": "Refresh an existing access token", "description": "Refresh an existing access token", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/auth_TokenResponse" }, "example": { "success": true, "data": { "access_token": "example_access_token_xyz789", "refresh_token": "example_refresh_token_abc123", "token_type": "Bearer", "expires_in": 3600 } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "requestBody": { "required": true, "description": "Request body", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/auth_RefreshTokenRequest" }, "example": { "refresh_token": "refresh_token_abc123" } } } } } }, "/api/v1/oauth2/healthcheck": { "post": { "tags": [ "Auth" ], "summary": "Check the health of the authentication service", "description": "Check the health of the authentication service", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/auth_HealthcheckResponse" }, "example": { "success": true, "data": { "token": "example_token_xyz123", "isExpired": false } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "requestBody": { "required": true, "description": "Request body", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/auth_HealthcheckRequest" }, "example": { "token": "example_token_xyz123" } } } } } }, "/api/v1/banks/top/{market}": { "get": { "tags": [ "Banks" ], "summary": "Retrieve the top banks for a specific market", "description": "Retrieve the top banks for a specific market", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "title": "Bank", "description": "A financial institution", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the bank", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "name": { "description": "The name of the bank", "examples": [ "Santander" ], "type": "string" }, "market": { "description": "The market of the bank", "examples": [ "GB" ], "type": "string" }, "currency": { "description": "The currency supported by the bank", "examples": [ "GBP" ], "type": "string" }, "displayName": { "description": "The display name of the bank", "examples": [ "Santander" ], "type": "string" }, "logoUrl": { "format": "uri", "description": "The URL of the bank's logo", "examples": [ "https://example.com/logo.png" ], "type": "string" }, "topInMarket": { "description": "Indicates if the bank is top in the market", "examples": [ true ], "type": "boolean" } } } }, "required": [ "success", "data" ] } }, "example": [ { "success": true, "data": { "id": "123e4567-e89b-12d3-a456-426614174001", "name": "Santander", "market": "GB", "currency": "GBP", "displayName": "Santander", "logoUrl": "https://example.com/logo.png", "topInMarket": true } } ] } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "parameters": [ { "name": "market", "in": "path", "required": true, "schema": { "description": "The market code (e.g., GB, DE)", "examples": [ "GB" ], "type": "string" }, "description": "The market code (e.g., GB, DE)" } ] } }, "/api/v1/admin/banks/top/{market}": { "put": { "tags": [ "Banks", "Admin" ], "summary": "Update the status of top banks for a specific market", "description": "Update the status of top banks for a specific market", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "title": "Bank", "description": "A financial institution", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the bank", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "name": { "description": "The name of the bank", "examples": [ "Santander" ], "type": "string" }, "market": { "description": "The market of the bank", "examples": [ "GB" ], "type": "string" }, "currency": { "description": "The currency supported by the bank", "examples": [ "GBP" ], "type": "string" }, "displayName": { "description": "The display name of the bank", "examples": [ "Santander" ], "type": "string" }, "logoUrl": { "format": "uri", "description": "The URL of the bank's logo", "examples": [ "https://example.com/logo.png" ], "type": "string" }, "topInMarket": { "description": "Indicates if the bank is top in the market", "examples": [ true ], "type": "boolean" } } } }, "required": [ "success", "data" ] } }, "example": [ { "success": true, "data": { "id": "123e4567-e89b-12d3-a456-426614174001", "name": "Santander", "market": "GB", "currency": "GBP", "displayName": "Santander", "logoUrl": "https://example.com/logo.png", "topInMarket": true } } ] } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "market", "in": "path", "required": true, "schema": { "description": "The market code (e.g., GB, DE)", "examples": [ "GB" ], "type": "string" }, "description": "The market code (e.g., GB, DE)" } ], "requestBody": { "required": true, "description": "Request body", "content": { "application/json": { "schema": { "required": [ "bankNames", "topInMarket" ], "type": "object", "properties": { "bankNames": { "type": "array", "items": { "description": "List of bank names to update", "examples": [ "Santander", "Barclays" ], "type": "string" } }, "topInMarket": { "description": "Whether these banks should be marked as top in the market", "examples": [ true ], "type": "boolean" } } }, "example": { "bankNames": [ "Santander" ], "topInMarket": true } } } } } }, "/api/v1/banks/{market}": { "get": { "tags": [ "Banks" ], "summary": "Retrieve banks for a specific market", "description": "Retrieve banks for a specific market", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "success": { "description": "Indicates if the request was successful", "examples": [ true ], "type": "boolean" }, "data": { "title": "Bank", "description": "A financial institution", "additionalProperties": false, "type": "object", "properties": { "id": { "format": "uuid", "description": "The unique identifier of the bank", "examples": [ "123e4567-e89b-12d3-a456-426614174001" ], "type": "string" }, "name": { "description": "The name of the bank", "examples": [ "Santander" ], "type": "string" }, "market": { "description": "The market of the bank", "examples": [ "GB" ], "type": "string" }, "currency": { "description": "The currency supported by the bank", "examples": [ "GBP" ], "type": "string" }, "displayName": { "description": "The display name of the bank", "examples": [ "Santander" ], "type": "string" }, "logoUrl": { "format": "uri", "description": "The URL of the bank's logo", "examples": [ "https://example.com/logo.png" ], "type": "string" }, "topInMarket": { "description": "Indicates if the bank is top in the market", "examples": [ true ], "type": "boolean" } } } }, "required": [ "success", "data" ] } }, "example": [ { "success": true, "data": { "id": "123e4567-e89b-12d3-a456-426614174001", "name": "Santander", "market": "GB", "currency": "GBP", "displayName": "Santander", "logoUrl": "https://example.com/logo.png", "topInMarket": true } } ] } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "parameters": [ { "name": "market", "in": "path", "required": true, "schema": { "description": "The market code (e.g., GB, DE)", "examples": [ "GB" ], "type": "string" }, "description": "The market code (e.g., GB, DE)" } ] } }, "/api/v1/banks/initialize": { "post": { "tags": [ "Banks" ], "summary": "Initialize banks in the system", "description": "Initialize banks in the system", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "description": "Success message", "examples": [ "Banks initialized successfully" ], "type": "string" } }, "required": [ "message" ] }, "example": { "message": "Banks initialized successfully" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } } } }, "/api/v1/bank-selection": { "get": { "tags": [ "Banks" ], "summary": "Render bank selection page with predicted and market banks", "description": "Render bank selection page with predicted and market banks", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "string" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "code": { "type": "string" } }, "required": [ "message", "code" ] } } } } }, "parameters": [ { "name": "paymentRequestId", "in": "query", "required": true, "schema": { "description": "The payment request ID", "format": "uuid", "type": "string" }, "description": "The payment request ID" } ] } }, "/api/v1/admin/banks/{bankId}/status": { "put": { "tags": [ "Banks", "Admin" ], "summary": "Update bank activation status (admin only)", "description": "Update bank activation status (admin only)", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/bankActivation_Response" }, "example": { "success": true, "data": { "bank": { "id": "550e8400-e29b-41d4-a716-446655440000", "name": "Santander", "market": "GB", "currency": "GBP", "isActive": true, "previousStatus": false }, "message": "Bank activated successfully" } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error403" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error404" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "bankId", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the bank", "examples": [ "550e8400-e29b-41d4-a716-446655440000" ], "type": "string" }, "description": "The unique identifier of the bank" } ], "requestBody": { "required": true, "description": "Input for updating bank activation status", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/bankActivation_Input" }, "example": { "isActive": true } } } } }, "get": { "tags": [ "Banks", "Admin" ], "summary": "Get bank status and details (admin only)", "description": "Get bank status and details (admin only)", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/bankActivation_StatusResponse" }, "example": { "success": true, "data": { "id": "550e8400-e29b-41d4-a716-446655440000", "name": "Santander", "market": "GB", "currency": "GBP", "displayName": "Santander", "logoUrl": "https://example.com/logo.png", "topInMarket": true, "isActive": true, "tinkProvider": { "id": "tink-provider-123", "popular": true }, "created_at": "2024-01-01T00:00:00Z", "updated_at": "2024-01-01T00:00:00Z" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error403" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error404" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "bankId", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the bank", "examples": [ "550e8400-e29b-41d4-a716-446655440000" ], "type": "string" }, "description": "The unique identifier of the bank" } ] } }, "/api/v1/admin/banks": { "get": { "tags": [ "Banks", "Admin" ], "summary": "Get all banks with their activation status (admin only)", "description": "Get all banks with their activation status (admin only)", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/bankActivation_ListResponse" }, "example": { "success": true, "data": [ { "id": "550e8400-e29b-41d4-a716-446655440000", "name": "Santander", "market": "GB", "currency": "GBP", "displayName": "Santander", "logoUrl": "https://example.com/logo.png", "topInMarket": true, "isActive": true, "tinkProvider": { "id": "tink-provider-123", "popular": true }, "created_at": "2024-01-01T00:00:00Z", "updated_at": "2024-01-01T00:00:00Z" } ] } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error403" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "market", "in": "query", "required": false, "schema": { "description": "Filter by market (optional)", "examples": [ "GB" ], "type": "string" }, "description": "Filter by market (optional)" }, { "name": "isActive", "in": "query", "required": false, "schema": { "description": "Filter by activation status (optional)", "examples": [ "true" ], "type": "string" }, "description": "Filter by activation status (optional)" } ] } }, "/api/v1/seeds/run-seeds": { "post": { "tags": [ "Seeds" ], "summary": "Run database seed scripts", "description": "Run database seed scripts", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/seed_Response" }, "example": { "success": true, "data": { "message": "Seeds created successfully" } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } } } }, "/api/v1/seeds/merchant/{merchantId}/test-data": { "post": { "tags": [ "Seeds" ], "summary": "Generate test payment requests and transactions for a specific merchant", "description": "Generate test payment requests and transactions for a specific merchant", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/merchantTestData_Response" }, "example": { "success": true, "data": { "message": "Test data generated successfully for merchant", "summary": { "merchantId": "934eef9d-2ea7-4a83-9646-cb8ecdc54947", "paymentRequestsCreated": 120, "transactionsCreated": 120, "customersCreated": 15, "timeElapsed": "5.5s" }, "details": { "paymentRequestsByStatus": { "completed": 84, "pending": 18, "failed": 12, "cancelled": 6 }, "transactionsByType": { "payment": 120, "refund": 0 }, "transactionsByStatus": { "completed": 84, "pending": 18, "failed": 12, "cancelled": 6 }, "amountDistribution": { "small": 48, "medium": 48, "large": 24 }, "currencyDistribution": { "EUR": 60, "GBP": 30, "USD": 18, "DKK": 12 } } } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error403" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error404" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error500" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "merchantId", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The merchant ID to generate test data for", "examples": [ "934eef9d-2ea7-4a83-9646-cb8ecdc54947", "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The merchant ID to generate test data for" } ], "requestBody": { "required": true, "description": "Request body for generating test data for a merchant", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/merchantTestData_Request" }, "example": { "options": { "paymentRequestCount": 120, "customerCount": 15, "dateRangeInDays": 730, "includeRefunds": true, "includeFailures": true, "scenarioProfile": "standard" } } } } } } }, "/api/v1/admin/request-login": { "post": { "tags": [ "Login", "Admin" ], "summary": "Request a login code for admin access", "description": "Request a login code for admin access", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "examples": [ true ], "type": "boolean" }, "data": { "type": "object", "properties": { "message": { "examples": [ "Magic code sent to email" ], "description": "Response message indicating the code was sent", "type": "string" } }, "required": [ "message" ] } }, "required": [ "success", "data" ] }, "example": { "success": true, "data": { "message": "Magic code sent to email" } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "shared.Error400" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "shared.Error404" } } } } }, "requestBody": { "required": true, "description": "Request body", "content": { "application/json": { "schema": { "required": [ "email" ], "type": "object", "properties": { "email": { "format": "email", "description": "Admin user email address", "examples": [ "email@example.com" ], "type": "string" } } }, "example": { "email": "email@example.com" } } } } } }, "/api/v1/admin/verify-login": { "post": { "tags": [ "Login", "Admin" ], "summary": "Verify login code and get access token", "description": "Verify login code and get access token", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "auth.TokenResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "shared.Error400" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "shared.Error401" } } } } }, "requestBody": { "required": true, "description": "Request body", "content": { "application/json": { "schema": { "required": [ "email", "code" ], "type": "object", "properties": { "email": { "format": "email", "description": "Admin user email address", "examples": [ "email@example.com" ], "type": "string" }, "code": { "minLength": 6, "maxLength": 6, "description": "Six-character magic code received via email", "examples": [ "a1b2c3" ], "type": "string" } } }, "example": { "email": "email@example.com", "code": "a1b2c3" } } } } } }, "/api/v1/admin/default-rates/active": { "get": { "tags": [ "Default Rates", "Admin" ], "summary": "Retrieve currently active default rates", "description": "Retrieve currently active default rates", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/defaultRates_Response" }, "example": { "success": true, "data": { "id": "123e4567-e89b-12d3-a456-426614174001", "version": "v1-2024-01-13T15:00:00Z", "is_active": true, "created_by": "system_seed", "created_at": "2024-03-19T12:00:00Z", "updated_at": "2024-03-19T12:00:00Z", "rates": [ { "id": "123e4567-e89b-12d3-a456-426614174001", "defaultRatesId": "123e4567-e89b-12d3-a456-426614174001", "merchantRatesId": "123e4567-e89b-12d3-a456-426614174001", "type": "domestic_percent_fee", "value": 1, "unit": "%", "base": "gross_amount", "notes": "Standard domestic fee" } ] } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ] } }, "/api/v1/admin/default-rates/history": { "get": { "tags": [ "Default Rates", "Admin" ], "summary": "Retrieve history of all default rates", "description": "Retrieve history of all default rates", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/defaultRates_ListResponse" }, "example": { "success": true, "data": [ { "id": "123e4567-e89b-12d3-a456-426614174001", "version": "v1-2024-01-13T15:00:00Z", "is_active": true, "created_by": "system_seed", "created_at": "2024-03-19T12:00:00Z", "updated_at": "2024-03-19T12:00:00Z", "rates": [ { "id": "123e4567-e89b-12d3-a456-426614174001", "defaultRatesId": "123e4567-e89b-12d3-a456-426614174001", "merchantRatesId": "123e4567-e89b-12d3-a456-426614174001", "type": "domestic_percent_fee", "value": 1, "unit": "%", "base": "gross_amount", "notes": "Standard domestic fee" } ] } ] } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ] } }, "/api/v1/admin/default-rates": { "post": { "tags": [ "Default Rates", "Admin" ], "summary": "Create new default rates", "description": "Create new default rates", "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/defaultRates_Response" }, "example": { "success": true, "data": { "id": "123e4567-e89b-12d3-a456-426614174001", "version": "v1-2024-01-13T15:00:00Z", "is_active": true, "created_by": "system_seed", "created_at": "2024-03-19T12:00:00Z", "updated_at": "2024-03-19T12:00:00Z", "rates": [ { "id": "123e4567-e89b-12d3-a456-426614174001", "defaultRatesId": "123e4567-e89b-12d3-a456-426614174001", "merchantRatesId": "123e4567-e89b-12d3-a456-426614174001", "type": "domestic_percent_fee", "value": 1, "unit": "%", "base": "gross_amount", "notes": "Standard domestic fee" } ] } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "requestBody": { "required": true, "description": "Default rates creation input", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/defaultRates_Input" }, "example": { "rates": [ { "type": "domestic_percent_fee", "value": 1, "unit": "%", "base": "gross_amount", "notes": "Standard domestic percentage fee" }, { "type": "fixed_transaction_fee", "value": 0.2, "unit": "currency", "base": "gbp", "notes": "Standard fixed GBP fee" }, { "type": "fixed_transaction_fee", "value": 0.27, "unit": "currency", "base": "eur", "notes": "Standard fixed EUR fee" } ] } } } } } }, "/api/v1/admin/merchants/{merchantId}/rates/active": { "get": { "tags": [ "Merchant Rates", "Admin" ], "summary": "Retrieve active rates for a merchant", "description": "Retrieve active rates for a merchant", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/merchantRates_Response" }, "example": { "success": true, "data": { "id": "123e4567-e89b-12d3-a456-426614174002", "version": "v1-2024-01-13T15:00:00Z", "is_active": true, "merchantId": "123e4567-e89b-12d3-a456-426614174000", "created_by": "system_seed", "created_at": "2024-03-19T12:00:00Z", "updated_at": "2024-03-19T12:00:00Z", "rates": [ { "id": "123e4567-e89b-12d3-a456-426614174001", "defaultRatesId": "123e4567-e89b-12d3-a456-426614174001", "merchantRatesId": "123e4567-e89b-12d3-a456-426614174001", "type": "domestic_percent_fee", "value": 1, "unit": "%", "base": "gross_amount", "notes": "Standard domestic fee" } ] } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "merchantId", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the merchant", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The unique identifier of the merchant" } ] } }, "/api/v1/admin/merchants/{merchantId}/rates/history": { "get": { "tags": [ "Merchant Rates", "Admin" ], "summary": "Retrieve rate history for a merchant", "description": "Retrieve rate history for a merchant", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/merchantRates_ListResponse" }, "example": { "success": true, "data": [ { "id": "123e4567-e89b-12d3-a456-426614174002", "version": "v1-2024-01-13T15:00:00Z", "is_active": true, "merchantId": "123e4567-e89b-12d3-a456-426614174000", "created_by": "system_seed", "created_at": "2024-03-19T12:00:00Z", "updated_at": "2024-03-19T12:00:00Z", "rates": [ { "id": "123e4567-e89b-12d3-a456-426614174001", "defaultRatesId": "123e4567-e89b-12d3-a456-426614174001", "merchantRatesId": "123e4567-e89b-12d3-a456-426614174001", "type": "domestic_percent_fee", "value": 1, "unit": "%", "base": "gross_amount", "notes": "Standard domestic fee" } ] } ] } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "merchantId", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the merchant", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The unique identifier of the merchant" } ] } }, "/api/v1/admin/merchants/{merchantId}/rates": { "post": { "tags": [ "Merchant Rates", "Admin" ], "summary": "Create custom rates for a merchant", "description": "Create custom rates for a merchant", "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/merchantRates_Response" }, "example": { "success": true, "data": { "id": "123e4567-e89b-12d3-a456-426614174002", "version": "v1-2024-01-13T15:00:00Z", "is_active": true, "merchantId": "123e4567-e89b-12d3-a456-426614174000", "created_by": "system_seed", "created_at": "2024-03-19T12:00:00Z", "updated_at": "2024-03-19T12:00:00Z", "rates": [ { "id": "123e4567-e89b-12d3-a456-426614174001", "defaultRatesId": "123e4567-e89b-12d3-a456-426614174001", "merchantRatesId": "123e4567-e89b-12d3-a456-426614174001", "type": "domestic_percent_fee", "value": 1, "unit": "%", "base": "gross_amount", "notes": "Standard domestic fee" } ] } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "parameters": [ { "name": "merchantId", "in": "path", "required": true, "schema": { "format": "uuid", "description": "The unique identifier of the merchant", "examples": [ "123e4567-e89b-12d3-a456-426614174000" ], "type": "string" }, "description": "The unique identifier of the merchant" } ], "requestBody": { "required": true, "description": "Merchant rates creation input", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/merchantRates_Input" }, "example": { "rates": [ { "type": "domestic_percent_fee", "value": 1, "unit": "%", "base": "gross_amount", "notes": "Standard domestic percentage fee" }, { "type": "fixed_transaction_fee", "value": 0.2, "unit": "currency", "base": "gbp", "notes": "Standard fixed GBP fee" }, { "type": "fixed_transaction_fee", "value": 0.27, "unit": "currency", "base": "eur", "notes": "Standard fixed EUR fee" } ] } } } } } }, "/api/v1/shopify-orders": { "post": { "tags": [ "Shopify Orders" ], "summary": "Create a Shopify order for a merchant", "description": "Create a Shopify order for a merchant", "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shopifyOrder_Response" }, "example": { "success": true } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "requestBody": { "required": true, "description": "Request body", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shopifyOrder_Input" }, "example": { "orderData": { "order_id": "12345", "total": "100.00" } } } } } }, "get": { "tags": [ "Shopify Orders" ], "summary": "Get all Shopify orders for a merchant", "description": "Get all Shopify orders for a merchant", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shopifyOrder_ListResponse" }, "example": { "success": true } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ] } }, "/api/v1/shopify-orders/bulk": { "post": { "tags": [ "Shopify Orders" ], "summary": "Create multiple Shopify orders for a merchant", "description": "Create multiple Shopify orders for a merchant", "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shopifyOrder_ListResponse" }, "example": { "success": true } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error400" }, "example": { "success": false, "error": { "code": "INVALID_INPUT", "message": "Invalid input provided" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shared_Error401" }, "example": { "success": false, "error": { "message": "Invalid input provided" } } } } } }, "security": [ { "bearerAuth": [] } ], "requestBody": { "required": true, "description": "Request body", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/shopifyOrder_BulkInput" }, "example": { "orders": [ { "order_id": "12345", "total": "100.00" } ] } } } } } } } }