{"openapi":"3.0.0","paths":{"/v1/merchants/me":{"get":{"description":"Retrieve the complete account information and settings for the authenticated merchant. Returns profile data, configuration, and account status.","operationId":"PublicMerchantsV1Controller_current","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Merchant"}}}}},"security":[{"x-api-key":[]}],"summary":"Get authenticated merchant information","tags":["Merchants"]}},"/v1/orders":{"post":{"description":"Initialize a new payment order with specified items and configuration. Returns order details with payment instructions and unique identifiers.","operationId":"MerchantOrdersV1Controller_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchantCreateOrderDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}}}},"security":[{"x-api-key":[]}],"summary":"Create new payment order","tags":["Orders"]},"get":{"description":"Retrieve a paginated list of orders with optional filtering by status, currency, date range, and external reference ID.","operationId":"MerchantOrdersV1Controller_findWithFilter","parameters":[{"name":"page","required":false,"in":"query","description":"Page number for pagination (1-based indexing).\n\nDetermines which page of results to retrieve. Must be a positive\ninteger between 1 and 1000 to prevent excessive pagination.","schema":{"default":1,"example":1,"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Number of items per page.\n\nControls how many order records are returned in a single response.\nLimited to a maximum of 100 items to ensure reasonable response sizes\nand optimal API performance.","schema":{"default":10,"example":25,"type":"number"}},{"name":"sort","required":false,"in":"query","description":"Sort order for the returned order list.\n\nDetermines whether orders are sorted by creation date in ascending\nor descending order. Defaults to descending (newest first).","schema":{"default":"desc","example":"desc","type":"string","enum":["asc","desc"]}},{"name":"from_date","required":false,"in":"query","description":"Start date for filtering orders by creation time.\n\nOnly orders created on or after this date will be included\nin the results. Must be in ISO 8601 format with timezone information.","schema":{"example":"2023-10-01T00:00:00Z","type":"string"}},{"name":"to_date","required":false,"in":"query","description":"End date for filtering orders by creation time.\n\nOnly orders created before or on this date will be included\nin the results. Must be in ISO 8601 format with timezone information.","schema":{"example":"2023-10-31T23:59:59Z","type":"string"}},{"name":"status","required":false,"in":"query","description":"Filter orders by their current processing status.\n\nAllows filtering orders based on payment and processing state,\nsuch as pending payment, paid, expired, or canceled orders.","schema":{"example":"paid","type":"string","enum":["initialized","awaiting_payment","partially_paid","paid","reversed","partially_paid_expired","expired","canceled"]}},{"name":"external_reference_id","required":false,"in":"query","description":"Filter by merchant's external reference identifier.\n\nSearches for orders using the merchant's own reference ID system,\nenabling integration with external order management systems.","schema":{"example":"SHOP-ORD-2023-1001","type":"string"}},{"name":"currency","required":false,"in":"query","description":"Filter orders by payment currency.\n\nRestricts results to orders that accept payments in a specific\ncurrency. Useful for currency-specific reporting and management.","schema":{"example":"USD","type":"string","enum":["USDT","USDC","USDG","BTC","ETH","CAZ"]}}],"responses":{"200":{"description":""}},"security":[{"x-api-key":[]}],"summary":"List merchant orders with filtering","tags":["Orders"]}},"/v1/orders/{id}":{"get":{"description":"Retrieve complete order information including status, payment details, and transaction history. Access restricted to merchant-owned orders.","operationId":"MerchantOrdersV1Controller_getById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}}}},"security":[{"x-api-key":[]}],"summary":"Get order by ID","tags":["Orders"]},"delete":{"description":"Permanently remove an order record from the system. This action cannot be undone and will delete all associated payment data.","operationId":"MerchantOrdersV1Controller_delete","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"security":[{"x-api-key":[]}],"summary":"Delete order permanently","tags":["Orders"]}},"/v1/orders/{id}/cancel":{"post":{"description":"Cancel an existing order to stop accepting payments. The order status will be updated to canceled and no further payments will be processed.","operationId":"MerchantOrdersV1Controller_cancel","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}}}},"security":[{"x-api-key":[]}],"summary":"Cancel order","tags":["Orders"]}},"/v1/orders/{id}/capture":{"post":{"description":"Process and capture all pending payments for the order, finalizing the transaction and updating status to reflect payment completion.","operationId":"MerchantOrdersV1Controller_capture","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}}}},"security":[{"x-api-key":[]}],"summary":"Capture order payments","tags":["Orders"]}},"/v1/webhooks":{"post":{"description":"Registers a new webhook endpoint for the authenticated merchant to receive event notifications. The webhook URL must be publicly accessible via HTTPS.","operationId":"PublicWebhooksV1Controller_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhookDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}}}},"security":[{"x-api-key":[]}],"summary":"Create a new webhook subscription","tags":["Webhooks"]},"get":{"description":"Retrieves a paginated list of webhook subscriptions owned by the authenticated merchant. Supports filtering by creation date range and standard pagination controls.","operationId":"PublicWebhooksV1Controller_findWithFilter","parameters":[{"name":"page","required":false,"in":"query","description":"Page number for pagination (1-based indexing).\n\nDetermines which page of results to retrieve. Must be a positive\ninteger between 1 and 1000 to prevent excessive pagination.","schema":{"default":1,"example":1,"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Number of items per page.\n\nControls how many webhook records are returned in a single response.\nLimited to a maximum of 100 items to ensure reasonable response sizes\nand optimal API performance.","schema":{"default":10,"example":10,"type":"number"}},{"name":"sort","required":false,"in":"query","description":"Sort order for the returned webhook list.\n\nDetermines whether webhooks are sorted by creation date in ascending\nor descending order. Defaults to descending (newest first).","schema":{"default":"desc","example":"desc","type":"string","enum":["asc","desc"]}},{"name":"from_date","required":false,"in":"query","description":"Start date for filtering webhooks by creation time.\n\nOnly webhooks created on or after this date will be included\nin the results. Must be in ISO 8601 format with timezone information.","schema":{"example":"2023-10-01T00:00:00Z","type":"string"}},{"name":"to_date","required":false,"in":"query","description":"End date for filtering webhooks by creation time.\n\nOnly webhooks created before or on this date will be included\nin the results. Must be in ISO 8601 format with timezone information.","schema":{"example":"2023-10-31T23:59:59Z","type":"string"}}],"responses":{"200":{"description":""}},"security":[{"x-api-key":[]}],"summary":"List webhooks with optional filtering","tags":["Webhooks"]}},"/v1/webhooks/{id}":{"get":{"description":"Returns the complete webhook configuration including URL, events, status, and timestamps. Access is restricted to webhooks owned by the authenticated merchant.","operationId":"PublicWebhooksV1Controller_getById","parameters":[{"name":"id","required":true,"in":"path","description":"Unique webhook identifier with ULID format and 'whk_' prefix.\n\nThis is the internal identifier used to reference webhook resources\nacross the system. Generated automatically when creating webhooks.","schema":{"example":"whk_01HKQJXM7G8PY6DQVZ2A3B4C5D","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}}}},"security":[{"x-api-key":[]}],"summary":"Retrieve a specific webhook by ID","tags":["Webhooks"]},"patch":{"description":"Allows modification of event subscriptions and activation status. The webhook URL cannot be changed - delete and recreate the webhook if a different URL is needed.","operationId":"PublicWebhooksV1Controller_changeStatus","parameters":[{"name":"id","required":true,"in":"path","description":"Unique webhook identifier with ULID format and 'whk_' prefix.\n\nThis is the internal identifier used to reference webhook resources\nacross the system. Generated automatically when creating webhooks.","schema":{"example":"whk_01HKQJXM7G8PY6DQVZ2A3B4C5D","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWebhookDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}}}},"security":[{"x-api-key":[]}],"summary":"Update an existing webhook subscription","tags":["Webhooks"]},"delete":{"description":"Permanently delete a webhook subscription. This action cannot be undone. After deletion, no further notifications will be sent to the webhook URL and the webhook ID becomes invalid.","operationId":"PublicWebhooksV1Controller_delete","parameters":[{"name":"id","required":true,"in":"path","description":"Unique webhook identifier with ULID format and 'whk_' prefix.\n\nThis is the internal identifier used to reference webhook resources\nacross the system. Generated automatically when creating webhooks.","schema":{"example":"whk_01HKQJXM7G8PY6DQVZ2A3B4C5D","type":"string"}}],"responses":{"200":{"description":""}},"security":[{"x-api-key":[]}],"summary":"Delete a webhook subscription","tags":["Webhooks"]}},"/v1/payments/{id}":{"get":{"description":"Retrieve a specific payment by its unique identifier.","operationId":"MerchantPaymentsV1Controller_getById","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Payment"}}}}},"security":[{"x-api-key":[]}],"summary":"Get payment by ID","tags":["Payments"]}},"/v1/payments":{"get":{"description":"Retrieve a paginated list of payments with optional filtering by status, currency, date range.","operationId":"MerchantPaymentsV1Controller_findWithFilter","parameters":[{"name":"page","required":false,"in":"query","description":"Page number for pagination (1-based indexing).\n\nDetermines which page of results to retrieve. Must be a positive\ninteger between 1 and 1000 to prevent excessive pagination.","schema":{"default":1,"example":1,"type":"number"}},{"name":"limit","required":false,"in":"query","description":"Number of items per page.\n\nControls how many order records are returned in a single response.\nLimited to a maximum of 100 items to ensure reasonable response sizes\nand optimal API performance.","schema":{"default":10,"example":25,"type":"number"}},{"name":"sort","required":false,"in":"query","description":"Sort order for the returned order list.\n\nDetermines whether payments are sorted by creation date in ascending\nor descending order. Defaults to descending (newest first).","schema":{"default":"desc","example":"desc","type":"string","enum":["asc","desc"]}},{"name":"from_date","required":false,"in":"query","description":"Start date for filtering payments by creation time.\n\nOnly payments created on or after this date will be included\nin the results. Must be in ISO 8601 format with timezone information.","schema":{"example":"2023-10-01T00:00:00Z","type":"string"}},{"name":"to_date","required":false,"in":"query","description":"End date for filtering payments by creation time.\n\nOnly payments created before or on this date will be included\nin the results. Must be in ISO 8601 format with timezone information.","schema":{"example":"2023-10-31T23:59:59Z","type":"string"}},{"name":"status","required":false,"in":"query","description":"Filter payments by their current processing status.\n\nAllows filtering payments based on payment and processing state,\nsuch as pending payment, paid, expired, or canceled payments.","schema":{"example":"paid","type":"string","enum":["received","applied","orphan","failed","refunded"]}},{"name":"currency","required":false,"in":"query","description":"Filter payments by payment currency.\n\nRestricts results to payments that use a specific\ncurrency. Useful for currency-specific reporting and management.","schema":{"example":"USD","type":"string","enum":["USDT","USDC","USDG","BTC","ETH","CAZ"]}},{"name":"payment_rail","required":false,"in":"query","description":"Filter payments by the payment rail used.\n\nAllows filtering payments based on the payment\nrail or provider used for processing.","schema":{"example":"orbi_pay","type":"string","enum":["orbi_pay","crypto_deposit"]}}],"responses":{"200":{"description":""}},"security":[{"x-api-key":[]}],"summary":"List payments with filtering","tags":["Payments"]}},"/debug/register-payment":{"post":{"operationId":"DebugController_registerPayment","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugRegisterPaymentDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}}}},"tags":["Debug"]}},"/debug/test-webhook":{"post":{"operationId":"DebugController_testWebhook","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugTestWebhookDto"}}}},"responses":{"201":{"description":""}},"tags":["Debug"]}},"/health":{"get":{"operationId":"AppController_health","parameters":[],"responses":{"200":{"description":""}},"tags":["App"]}}},"info":{"title":"Crypto payment gateway API","description":"API documentation for crypto payment gateway","version":"1.1.0","contact":{}},"tags":[],"servers":[{"url":"https://sandbox.gateway.orbipayments.com","description":"Sandbox Server"},{"url":"https://gateway.orbipayments.com","description":"Production Server"}],"components":{"securitySchemes":{"x-api-key":{"type":"apiKey","in":"header","name":"x-api-key","description":"Application API key"}},"schemas":{"ApiCredential":{"type":"object","properties":{"id":{"type":"string"},"merchant_id":{"type":"string"},"kid":{"type":"string"},"status":{"enum":["active","revoked"],"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"secret_hash":{"type":"string"},"salt":{"type":"string"},"alg":{"enum":["HMAC-SHA256","ARGON2ID","SCRYPT"],"type":"string"},"last4":{"type":"string"},"version":{"type":"number"},"environment":{"enum":["live","sandbox"],"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"last_used_at":{"type":"string"},"rotated_at":{"type":"string"},"revoked_at":{"type":"string"}},"required":["id","merchant_id","kid","status","scopes","secret_hash","salt","alg","last4","version","environment","created_at"]},"Merchant":{"type":"object","properties":{"id":{"type":"string","description":"Unique merchant identifier with 'mer_' prefix.\n\n@type {string}\n@memberof Merchant","example":"mer_1234567890abcdef"},"external_reference_id":{"type":"string","description":"External system reference identifier for merchant linking.\n\nUsed to connect merchants across different systems or databases.\nMust be unique within the merchant's external system.\n\n@type {string}\n@memberof Merchant","example":"customer_001"},"type":{"description":"Type of merchant account (individual or business).\n\nDetermines which profile type is required and available features.\nIndividual merchants have simplified onboarding and features.\n\n@type {MerchantType}\n@memberof Merchant","enum":["individual","business"],"type":"string"},"payment_methods":{"description":"Array of supported payment methods for this merchant.\n\nDefines which payment types and currencies the merchant can accept.\nEach payment method includes configuration and capability settings.\n\n@type {PaymentMethod[]}\n@memberof Merchant","type":"array","items":{"type":"object"}},"individual_profile":{"type":"object","description":"Individual profile information (required for individual merchants).\n\nContains personal information like name, ID documents, and contact details.\nOnly present when merchant type is INDIVIDUAL.\n\n@type {IndividualProfile | undefined}\n@memberof Merchant\n@optional"},"business_profile":{"type":"object","description":"Business profile information (required for business merchants).\n\nContains business information like company name, tax ID, and business type.\nOnly present when merchant type is BUSINESS.\n\n@type {BusinessProfile | undefined}\n@memberof Merchant\n@optional"},"created_at":{"type":"string","description":"ISO 8601 timestamp of merchant creation.\n\nAutomatically set during merchant creation if not provided.\nUsed for auditing and data lifecycle management.\n\n@type {string}\n@memberof Merchant","example":"2023-12-08T14:30:00.000Z"},"updated_at":{"type":"string","description":"ISO 8601 timestamp of last merchant update.\n\nUpdated automatically whenever merchant data changes.\nUndefined for newly created merchants that haven't been updated.\n\n@type {string | undefined}\n@memberof Merchant\n@optional","example":"2023-12-08T15:45:00.000Z"}},"required":["id","external_reference_id","type","payment_methods","created_at"]},"IndividualProfileDto":{"type":"object","properties":{"first_name":{"type":"string","description":"Merchant's first name\n@type {string}","example":"John"},"last_name":{"type":"string","description":"Merchant's last name\n@type {string}","example":"Doe"},"email":{"type":"string","description":"Merchant's email address\n@type {string}","example":"john.doe@example.com"},"phone":{"type":"string","description":"Merchant's phone number (optional)\n@type {string}","example":"+1234567890"}},"required":["first_name","last_name","email"]},"AddressDto":{"type":"object","properties":{"street":{"type":"string","description":"Street address\n@type {string}","example":"123 Main Street"},"city":{"type":"string","description":"City name\n@type {string}","example":"New York"},"state":{"type":"string","description":"State or province\n@type {string}","example":"NY"},"postal_code":{"type":"string","description":"Postal code\n@type {string}","example":"10001"},"country":{"type":"string","description":"Country code (ISO 3166-1 alpha-2)\n@type {string}","example":"US"}},"required":["street","city","state","postal_code","country"]},"BusinessProfileDto":{"type":"object","properties":{"business_name":{"type":"string","description":"Business name\n@type {string}","example":"Acme Corporation"},"contact_email":{"type":"string","description":"Business contact email\n@type {string}","example":"contact@acme.com"},"contact_phone":{"type":"string","description":"Business contact phone (optional)\n@type {string}","example":"+1234567890"},"address":{"description":"Business address (optional)\n@type {AddressDto}","example":"{ street: \"123 Main St\", city: \"New York\", state: \"NY\", postal_code: \"10001\", country: \"US\" }","allOf":[{"$ref":"#/components/schemas/AddressDto"}]}},"required":["business_name","contact_email"]},"PaymentMethodDto":{"type":"object","properties":{"type":{"type":"string","enum":["orbi_pay","crypto_deposit"]},"supported_currencies":{"type":"array","items":{"type":"string","enum":["USDT","USDC","USDG","BTC","ETH","CAZ"]}},"deposit_instructions":{"type":"object"}},"required":["type","supported_currencies","deposit_instructions"]},"CreateMerchantDto":{"type":"object","properties":{"type":{"description":"Type of merchant (INDIVIDUAL or BUSINESS)\n@type {MerchantType}","example":"MerchantType.INDIVIDUAL","enum":["individual","business"],"type":"string"},"external_reference_id":{"type":"string","description":"External reference ID for the merchant\n@type {string}","example":"ext_merchant_123"},"individual_profile":{"$ref":"#/components/schemas/IndividualProfileDto"},"business_profile":{"$ref":"#/components/schemas/BusinessProfileDto"},"payment_methods":{"type":"array","items":{"$ref":"#/components/schemas/PaymentMethodDto"}},"metadata":{"type":"object"}},"required":["type","external_reference_id","payment_methods","metadata"]},"GetMerchantDto":{"type":"object","properties":{"merchant_id":{"type":"string"}},"required":["merchant_id"]},"ModifierDto":{"type":"object","properties":{"name":{"type":"string"},"quantity":{"type":"number"},"unit_price":{"type":"string"},"currency":{"type":"string","enum":["MXN","USD","EUR","ARS","USDT","USDC","USDG"]}},"required":["name","quantity","unit_price","currency"]},"ItemDto":{"type":"object","properties":{"name":{"type":"string"},"quantity":{"type":"number"},"unit_price":{"type":"string"},"currency":{"type":"string","enum":["MXN","USD","EUR","ARS","USDT","USDC","USDG"]},"modifiers":{"type":"array","items":{"$ref":"#/components/schemas/ModifierDto"}}},"required":["name","quantity","unit_price","currency"]},"CapabilitiesDto":{"type":"object","properties":{"can_cancel":{"type":"boolean"},"can_update":{"type":"boolean"},"can_overpay":{"type":"boolean"},"partial_payments":{"type":"boolean"},"express_checkout":{"type":"boolean"},"expiration_auto_renewal":{"type":"boolean"}},"required":["can_cancel","can_update","can_overpay","partial_payments","express_checkout","expiration_auto_renewal"]},"MerchantCreateOrderDto":{"type":"object","properties":{"external_reference_id":{"type":"string"},"items":{"type":"array","items":{"$ref":"#/components/schemas/ItemDto"}},"enable_rails":{"type":"array","items":{"type":"string","enum":["orbi_pay","crypto_deposit"]}},"payment_currency":{"enum":["USDT","USDC","USDG","BTC","ETH","CAZ"],"type":"string"},"capabilities":{"$ref":"#/components/schemas/CapabilitiesDto"},"expiration_minutes":{"type":"number"},"metadata":{"type":"object"}},"required":["external_reference_id","items","enable_rails","payment_currency","capabilities"]},"Order":{"type":"object","properties":{"id":{"type":"string"},"external_reference_id":{"type":"string"},"merchant_id":{"type":"string"},"items":{"type":"array","items":{"type":"object"}},"payments":{"type":"array","items":{"type":"object"}},"status":{"enum":["initialized","awaiting_payment","partially_paid","paid","reversed","partially_paid_expired","expired","canceled"],"type":"string"},"total_amount":{"type":"string"},"remaining_amount":{"type":"string"},"currency":{"type":"string"},"rates":{"type":"object"},"capabilities":{"type":"object"},"deposit_instructions":{"type":"array","items":{"type":"object"}},"payment_reference":{"type":"string"},"expiration_date":{"type":"string"},"metadata":{"type":"object"},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","external_reference_id","merchant_id","items","payments","status","total_amount","remaining_amount","currency","rates","capabilities","deposit_instructions"]},"GetOrderDto":{"type":"object","properties":{"order_id":{"type":"string"}},"required":["order_id"]},"CreateWebhookDto":{"type":"object","properties":{"url":{"type":"string","description":"HTTPS URL where webhook events will be delivered.\n\nMust be a publicly accessible URL using the HTTPS protocol.","example":"https://merchant.example.com/webhooks/orders"},"events":{"description":"List of webhook events that will trigger a notification to the given URL.\n\n- Must contain at least one event\n- Duplicated events are not allowed","example":["order:created","order:updated"],"type":"array","items":{"type":"string","enum":["order:created","order:updated","order:paid","payment:applied","payment:failed","payment:refunded"]}}},"required":["url","events"]},"Webhook":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the webhook with ULID format and 'whk_' prefix.\n\nAutomatically generated when creating a new webhook subscription.\nUsed to reference the webhook across all system operations.","example":"whk_01KBYMPA5WRXH3SB91F1TNSZHA"},"merchant_id":{"type":"string","description":"Identifier of the merchant that owns this webhook subscription.\n\nLinks the webhook to a specific merchant account, ensuring proper\naccess control and event filtering.","example":"merch_01KBPWV4A0KTZ00T2WV62D8VGA"},"url":{"type":"string","description":"HTTPS URL endpoint where webhook events will be delivered.\n\nMust be a publicly accessible HTTPS URL that can receive POST requests.\nThe system will send webhook payloads to this endpoint when subscribed\nevents occur.","example":"https://merchant.example.com/webhooks"},"events":{"description":"List of events that will trigger webhook notifications.\n\nDefines which order and payment events will cause the system to send\nnotifications to the configured URL. Can include multiple event types\nfor comprehensive monitoring.","example":["order:created","order:updated","order:paid"],"type":"array","items":{"type":"string","enum":["order:created","order:updated","order:paid","payment:applied","payment:failed","payment:refunded"]}},"is_enabled":{"type":"boolean","description":"Current activation status of the webhook subscription.\n\nWhen enabled (true), the webhook will receive notifications for subscribed\nevents. When disabled (false), no notifications will be sent, but the\nconfiguration is preserved.","example":true},"created_at":{"type":"string","description":"Timestamp when the webhook subscription was first created.\n\nRecorded in ISO 8601 format with UTC timezone. Set automatically\nduring webhook creation and never changes.","example":"2023-10-14T10:30:00Z"},"updated_at":{"type":"string","description":"Timestamp of the most recent modification to the webhook configuration.\n\nUpdated automatically whenever the webhook settings are modified,\nincluding URL changes, event subscriptions, or status updates.\nRecorded in ISO 8601 format with UTC timezone.","example":"2023-10-14T10:35:00Z"}},"required":["id","merchant_id","url","events","is_enabled"]},"Pagination":{"type":"object","properties":{}},"UpdateWebhookDto":{"type":"object","properties":{"events":{"description":"Updated list of events that will trigger webhook notifications.\n\nReplaces the existing event subscription list with the provided events.\nIf not provided, the current event subscriptions remain unchanged.\nEach event must be a valid webhook event type and duplicates are not allowed.","example":["order:created"],"type":"array","items":{"type":"string","enum":["order:created","order:updated","order:paid","payment:applied","payment:failed","payment:refunded"]}},"is_enabled":{"type":"boolean","description":"New activation status for the webhook subscription.\n\nControls whether the webhook will actively receive notifications.\nWhen set to true, the webhook will receive events for subscribed types.\nWhen set to false, notifications are suspended but configuration is preserved.","example":true}},"required":["events","is_enabled"]},"ProcessPaymentDto":{"type":"object","properties":{"order_id":{"type":"string"},"external_reference_id":{"type":"string"},"amount":{"type":"string"},"currency":{"type":"string"}},"required":["order_id","external_reference_id","amount","currency"]},"Payment":{"type":"object","properties":{"id":{"type":"string"},"merchant_id":{"type":"string"},"order_id":{"type":"string"},"status":{"enum":["received","applied","orphan","failed","refunded"],"type":"string"},"payment_rail":{"enum":["orbi_pay","crypto_deposit"],"type":"string"},"provider_id":{"type":"string"},"paid_amount":{"type":"string"},"fee_amount":{"type":"string"},"net_amount":{"type":"string"},"currency":{"type":"string"},"metadata":{"type":"object"},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","merchant_id","order_id","status","payment_rail","provider_id","paid_amount","fee_amount","net_amount","currency","created_at","updated_at"]},"DebugRegisterPaymentDto":{"type":"object","properties":{"order_id":{"type":"string"},"payment_rail":{"enum":["orbi_pay","crypto_deposit"],"type":"string"},"amount":{"type":"string"},"currency":{"enum":["USDT","USDC","USDG","BTC","ETH","CAZ"],"type":"string"},"txHash":{"type":"string"}},"required":["order_id","payment_rail","amount","currency"]},"DebugTestWebhookDto":{"type":"object","properties":{"webhook_id":{"type":"string"},"event_type":{"enum":["order:created","order:updated","order:paid","payment:applied","payment:failed","payment:refunded"],"type":"string"}},"required":["webhook_id","event_type"]}}}}