{"openapi":"3.0.0","paths":{"/health":{"get":{"operationId":"HealthController_check","parameters":[],"responses":{"200":{"description":""}}}},"/overview":{"get":{"operationId":"DashboardRoutesController_serveDashboard","parameters":[],"responses":{"200":{"description":""}}}},"/transactions":{"get":{"operationId":"DashboardRoutesController_serveDashboard","parameters":[],"responses":{"200":{"description":""}}}},"/orders":{"get":{"operationId":"DashboardRoutesController_serveDashboard","parameters":[],"responses":{"200":{"description":""}}}},"/devices":{"get":{"operationId":"DashboardRoutesController_serveDashboard","parameters":[],"responses":{"200":{"description":""}}}},"/api-keys":{"get":{"operationId":"DashboardRoutesController_serveDashboard","parameters":[],"responses":{"200":{"description":""}}}},"/webhook":{"get":{"operationId":"DashboardRoutesController_serveDashboard","parameters":[],"responses":{"200":{"description":""}}}},"/providers":{"get":{"operationId":"DashboardRoutesController_serveDashboard","parameters":[],"responses":{"200":{"description":""}}}},"/api-docs":{"get":{"operationId":"DashboardRoutesController_serveDashboard","parameters":[],"responses":{"200":{"description":""}}}},"/parse-issues":{"get":{"operationId":"DashboardRoutesController_serveDashboard","parameters":[],"responses":{"200":{"description":""}}}},"/settings":{"get":{"operationId":"DashboardRoutesController_serveDashboard","parameters":[],"responses":{"200":{"description":""}}}},"/ledger":{"get":{"operationId":"DashboardRoutesController_serveDashboard","parameters":[],"responses":{"200":{"description":""}}}},"/admin":{"get":{"operationId":"DashboardRoutesController_serveDashboard","parameters":[],"responses":{"200":{"description":""}}}},"/v1/auth/signup":{"post":{"operationId":"AuthController_signup","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupDto"}}}},"responses":{"201":{"description":""}}}},"/v1/auth/login":{"post":{"operationId":"AuthController_login","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginDto"}}}},"responses":{"201":{"description":""}}}},"/v1/auth/me":{"get":{"operationId":"AuthController_me","parameters":[],"responses":{"200":{"description":""}}}},"/v1/merchants/settings":{"get":{"operationId":"MerchantsController_getSettings","parameters":[],"responses":{"200":{"description":""}}},"patch":{"operationId":"MerchantsController_updateSettings","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSettingsDto"}}}},"responses":{"200":{"description":""}}}},"/v1/merchants/sessions/logout-all":{"post":{"operationId":"MerchantsController_logoutAll","parameters":[],"responses":{"204":{"description":""}}}},"/v1/api-keys":{"post":{"operationId":"ApiKeysController_issue","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueApiKeyDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}},"get":{"operationId":"ApiKeysController_list","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"type":"object"}}}}}}}},"/v1/api-keys/{id}":{"patch":{"operationId":"ApiKeysController_rename","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenameApiKeyDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}},"delete":{"operationId":"ApiKeysController_revoke","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"description":""}}}},"/v1/devices/pair":{"post":{"operationId":"DevicesController_pair","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PairDeviceDto"}}}},"responses":{"201":{"description":""}}}},"/v1/devices/me":{"get":{"operationId":"DevicesController_me","parameters":[],"responses":{"200":{"description":""}}}},"/v1/devices/telemetry":{"post":{"operationId":"DevicesController_reportTelemetry","parameters":[],"responses":{"201":{"description":""}}}},"/v1/devices/pairing-codes":{"post":{"operationId":"DevicesController_createPairingCode","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePairingCodeDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/devices":{"get":{"operationId":"DevicesController_list","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"type":"object"}}}}}}}},"/v1/devices/{id}":{"delete":{"operationId":"DevicesController_revoke","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"description":""}}}},"/v1/webhooks":{"post":{"operationId":"WebhooksController_upsert","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertWebhookDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}},"get":{"operationId":"WebhooksController_get","parameters":[],"responses":{"200":{"description":""}}},"delete":{"operationId":"WebhooksController_remove","parameters":[],"responses":{"200":{"description":""}}}},"/v1/webhooks/deliveries":{"get":{"operationId":"WebhooksController_deliveries","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"type":"object"}}}}}}}},"/v1/webhooks/test":{"post":{"operationId":"WebhooksController_test","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/webhooks/rotate":{"post":{"operationId":"WebhooksController_rotate","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/ingest/transactions":{"post":{"operationId":"IngestController_ingest","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IngestTransactionDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/ingest/test":{"post":{"operationId":"TestIngestController_ingestTest","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IngestTransactionDto"}}}},"responses":{"201":{"description":""}}}},"/v1/transactions/verify":{"post":{"operationId":"TransactionsController_verify","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyTransactionDto"}}}},"responses":{"201":{"description":""}}}},"/v1/transactions":{"get":{"operationId":"TransactionsController_list","parameters":[{"name":"limit","required":true,"in":"query","schema":{"type":"string"}},{"name":"offset","required":true,"in":"query","schema":{"type":"string"}},{"name":"provider","required":true,"in":"query","schema":{"type":"string"}},{"name":"dateFrom","required":true,"in":"query","schema":{"type":"string"}},{"name":"dateTo","required":true,"in":"query","schema":{"type":"string"}},{"name":"minAmount","required":true,"in":"query","schema":{"type":"string"}},{"name":"maxAmount","required":true,"in":"query","schema":{"type":"string"}},{"name":"simSlot","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/transactions/export":{"get":{"operationId":"TransactionsController_export","parameters":[{"name":"provider","required":true,"in":"query","schema":{"type":"string"}},{"name":"dateFrom","required":true,"in":"query","schema":{"type":"string"}},{"name":"dateTo","required":true,"in":"query","schema":{"type":"string"}},{"name":"minAmount","required":true,"in":"query","schema":{"type":"string"}},{"name":"maxAmount","required":true,"in":"query","schema":{"type":"string"}},{"name":"simSlot","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/transactions/summary":{"get":{"operationId":"TransactionsController_summary","parameters":[{"name":"provider","required":true,"in":"query","schema":{"type":"string"}},{"name":"dateFrom","required":true,"in":"query","schema":{"type":"string"}},{"name":"dateTo","required":true,"in":"query","schema":{"type":"string"}},{"name":"minAmount","required":true,"in":"query","schema":{"type":"string"}},{"name":"maxAmount","required":true,"in":"query","schema":{"type":"string"}},{"name":"simSlot","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/transactions/recent":{"get":{"operationId":"TransactionsController_recent","parameters":[{"name":"since","required":true,"in":"query","schema":{"type":"string"}},{"name":"provider","required":true,"in":"query","schema":{"type":"string"}},{"name":"dateFrom","required":true,"in":"query","schema":{"type":"string"}},{"name":"dateTo","required":true,"in":"query","schema":{"type":"string"}},{"name":"minAmount","required":true,"in":"query","schema":{"type":"string"}},{"name":"maxAmount","required":true,"in":"query","schema":{"type":"string"}},{"name":"simSlot","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"type":"object"}}}}}}}},"/v1/transactions/daily":{"get":{"operationId":"TransactionsController_daily","parameters":[{"name":"days","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/sms-providers":{"post":{"operationId":"SmsProvidersController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertSmsProviderDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}},"get":{"operationId":"SmsProvidersController_list","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"type":"object"}}}}}}}},"/v1/sms-providers/{id}":{"put":{"operationId":"SmsProvidersController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertSmsProviderDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}},"delete":{"operationId":"SmsProvidersController_delete","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"description":""}}}},"/v1/parser-config":{"get":{"operationId":"AppConfigController_get","parameters":[],"responses":{"200":{"description":""}}}},"/v1/app/version":{"get":{"operationId":"AppVersionController_get","parameters":[],"responses":{"200":{"description":""}}}},"/v1/parse-failures":{"post":{"operationId":"ParseFailuresController_report","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportParseFailureDto"}}}},"responses":{"201":{"description":""}}},"get":{"operationId":"ParseFailuresController_list","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"type":"object"}}}}}}}},"/v1/outgoing":{"post":{"operationId":"OutgoingActivityController_report","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportOutgoingActivityDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/ledger":{"get":{"operationId":"LedgerController_list","parameters":[{"name":"limit","required":true,"in":"query","schema":{"type":"string"}},{"name":"offset","required":true,"in":"query","schema":{"type":"string"}},{"name":"provider","required":true,"in":"query","schema":{"type":"string"}},{"name":"direction","required":true,"in":"query","schema":{"type":"string"}},{"name":"dateFrom","required":true,"in":"query","schema":{"type":"string"}},{"name":"dateTo","required":true,"in":"query","schema":{"type":"string"}},{"name":"simSlot","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/ledger/summary":{"get":{"operationId":"LedgerController_summary","parameters":[{"name":"provider","required":true,"in":"query","schema":{"type":"string"}},{"name":"direction","required":true,"in":"query","schema":{"type":"string"}},{"name":"dateFrom","required":true,"in":"query","schema":{"type":"string"}},{"name":"dateTo","required":true,"in":"query","schema":{"type":"string"}},{"name":"simSlot","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/admin/merchants":{"get":{"operationId":"AdminController_listMerchants","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"type":"object"}}}}}}}},"/v1/admin/merchants/{id}":{"get":{"operationId":"AdminController_getMerchantDetail","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}}},"patch":{"operationId":"AdminController_updateMerchant","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMerchantDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/admin/plans":{"get":{"operationId":"AdminController_listPlans","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"type":"object"}}}}}}},"post":{"operationId":"AdminController_createPlan","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePlanDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/admin/plans/{id}":{"patch":{"operationId":"AdminController_updatePlan","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePlanDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}},"delete":{"operationId":"AdminController_deletePlan","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/admin/parse-failures":{"get":{"operationId":"AdminController_listParseFailures","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"type":"object"}}}}}}}},"/v1/admin/merchants/{id}/notes":{"get":{"operationId":"AdminController_listNotes","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"type":"object"}}}}}}},"post":{"operationId":"AdminController_createNote","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/payment-orders":{"post":{"operationId":"PaymentOrdersController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePaymentOrderDto"}}}},"responses":{"201":{"description":""}}},"get":{"operationId":"PaymentOrdersController_list","parameters":[{"name":"limit","required":true,"in":"query","schema":{"type":"string"}},{"name":"offset","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/payment-orders/{orderId}":{"get":{"operationId":"PaymentOrdersController_get","parameters":[{"name":"orderId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/payment-orders/checkout/{token}":{"get":{"operationId":"PaymentOrdersController_checkoutData","parameters":[{"name":"token","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/payment-orders/checkout/{token}/submit":{"post":{"operationId":"PaymentOrdersController_submit","parameters":[{"name":"token","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitPaymentDto"}}}},"responses":{"201":{"description":""}}}},"/v1/payment-orders/checkout/{token}/prepare":{"post":{"operationId":"PaymentOrdersController_prepare","parameters":[{"name":"token","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrepareCheckoutDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/payment-orders/checkout/{token}/status":{"get":{"operationId":"PaymentOrdersController_checkoutStatus","parameters":[{"name":"token","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/checkout/{token}":{"get":{"operationId":"CheckoutController_checkout","parameters":[{"name":"token","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/api/payment/create":{"post":{"operationId":"CompatibilityController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompatibilityCreatePaymentDto"}}}},"responses":{"201":{"description":""}}}},"/api/payment/verify":{"post":{"operationId":"CompatibilityController_verify","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompatibilityVerifyPaymentDto"}}}},"responses":{"201":{"description":""}}}},"/api/payment/status/{orderId}":{"get":{"operationId":"CompatibilityController_status","parameters":[{"name":"orderId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/merchant-wallets":{"get":{"operationId":"WalletsController_list","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"type":"object"}}}}}}},"post":{"operationId":"WalletsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWalletDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/merchant-wallets/{id}/toggle":{"patch":{"operationId":"WalletsController_toggle","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/merchant-wallets/{id}":{"delete":{"operationId":"WalletsController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"description":""}}}}},"info":{"title":"PayMon API","description":"bKash/Nagad payment verification for merchants. Full walkthrough and curl examples: https://mobile.b-dx.top/api-docs.html","version":"1.0","contact":{}},"tags":[],"servers":[],"components":{"securitySchemes":{"dashboard":{"scheme":"bearer","bearerFormat":"JWT","type":"http","description":"Merchant dashboard session (JWT)"},"apiKey":{"type":"apiKey","in":"header","name":"Authorization","description":"Bearer bdx_live_... or bdx_test_... API key"},"deviceToken":{"type":"apiKey","in":"header","name":"Authorization","description":"Bearer bdx_dev_... device token"}},"schemas":{"SignupDto":{"type":"object","properties":{"businessName":{"type":"string","minLength":2,"maxLength":120},"email":{"type":"string"},"password":{"type":"string","minLength":10,"maxLength":128}},"required":["businessName","email","password"]},"LoginDto":{"type":"object","properties":{"email":{"type":"string"},"password":{"type":"string"}},"required":["email","password"]},"UpdateSettingsDto":{"type":"object","properties":{"verifyWindowHours":{"type":"number","nullable":true,"minimum":1,"maximum":8760},"allowedIps":{"type":"string","nullable":true},"brandColor":{"type":"string","nullable":true},"logoUrl":{"type":"string","nullable":true}}},"IssueApiKeyDto":{"type":"object","properties":{"label":{"type":"string","maxLength":64},"test":{"type":"boolean"}}},"RenameApiKeyDto":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":64}},"required":["label"]},"PairDeviceDto":{"type":"object","properties":{"code":{"type":"string","minLength":8,"maxLength":8},"appVersion":{"type":"string","maxLength":32},"deviceModel":{"type":"string","maxLength":64}},"required":["code"]},"CreatePairingCodeDto":{"type":"object","properties":{"deviceLabel":{"type":"string","maxLength":64}}},"UpsertWebhookDto":{"type":"object","properties":{"url":{"type":"string"},"isActive":{"type":"boolean"}},"required":["url"]},"IngestTransactionDto":{"type":"object","properties":{"provider":{"type":"string","minLength":1,"maxLength":40},"providerTrxId":{"type":"string","maxLength":64},"amountBdt":{"type":"string"},"senderMsisdn":{"type":"string","pattern":"/^01[\\dXx]{9}$/"},"rawSenderId":{"type":"string","maxLength":32},"smsReceivedAt":{"type":"string"},"simSlot":{"type":"number"},"feeBdt":{"type":"string"},"balanceAfterBdt":{"type":"string"}},"required":["provider","providerTrxId","amountBdt","rawSenderId"]},"VerifyTransactionDto":{"type":"object","properties":{"provider":{"type":"string","maxLength":40},"amountBdt":{"type":"string"},"providerTrxId":{"type":"string","maxLength":64},"orderId":{"type":"string","maxLength":100,"pattern":"/^[A-Za-z0-9._-]+$/"},"senderMsisdn":{"type":"string","pattern":"/^01[\\dXx]{9}$/"}},"required":["amountBdt","providerTrxId"]},"UpsertSmsProviderDto":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"senderIds":{"type":"array","items":{"type":"string"}},"matchPattern":{"type":"string","minLength":1,"maxLength":300},"amountPattern":{"type":"string","minLength":1,"maxLength":300},"trxIdPattern":{"type":"string","minLength":1,"maxLength":300},"senderMsisdnPattern":{"type":"string","minLength":1,"maxLength":300},"isEnabled":{"type":"boolean"}},"required":["name","senderIds","matchPattern","amountPattern","trxIdPattern","senderMsisdnPattern"]},"ReportParseFailureDto":{"type":"object","properties":{"rawSenderId":{"type":"string","maxLength":32},"providerGuess":{"type":"string","maxLength":40},"failureStage":{"type":"string","enum":["no_match","extraction_failed"]},"smsBody":{"type":"string","maxLength":500}},"required":["rawSenderId","failureStage"]},"ReportOutgoingActivityDto":{"type":"object","properties":{"provider":{"type":"string","minLength":1,"maxLength":40},"category":{"type":"string","enum":["cash_in","cash_out","send_money","payment"]},"trxId":{"type":"string","maxLength":64},"amountBdt":{"type":"string"},"counterpartyMsisdn":{"type":"string","pattern":"/^01\\d{9}$/"},"feeBdt":{"type":"string"},"balanceAfterBdt":{"type":"string"},"rawSenderId":{"type":"string","maxLength":32},"smsReceivedAt":{"type":"string"},"simSlot":{"type":"number"}},"required":["provider","category","trxId","amountBdt","rawSenderId"]},"UpdateMerchantDto":{"type":"object","properties":{"status":{"type":"string"},"planName":{"type":"string"},"planExpiresAt":{"type":"string","nullable":true},"dailyVerifyLimit":{"type":"number","minimum":0},"maxDevicesLimit":{"type":"number","minimum":1},"customPriceBdt":{"type":"number","nullable":true,"minimum":0}}},"CreatePlanDto":{"type":"object","properties":{"name":{"type":"string","minLength":1},"priceBdt":{"type":"number","minimum":0},"dailyVerifyLimit":{"type":"number","minimum":0},"maxDevicesLimit":{"type":"number","minimum":1}},"required":["name","priceBdt","dailyVerifyLimit","maxDevicesLimit"]},"UpdatePlanDto":{"type":"object","properties":{"name":{"type":"string","minLength":1},"priceBdt":{"type":"number","minimum":0},"dailyVerifyLimit":{"type":"number","minimum":0},"maxDevicesLimit":{"type":"number","minimum":1},"isActive":{"type":"boolean"}}},"CreatePaymentOrderDto":{"type":"object","properties":{"amountBdt":{"type":"number","minimum":1,"maximum":100000000},"orderId":{"type":"string","maxLength":100,"pattern":"/^[A-Za-z0-9._-]+$/"},"successUrl":{"type":"string","maxLength":2048},"cancelUrl":{"type":"string","maxLength":2048},"customerEmail":{"type":"string","maxLength":254},"customerPhone":{"type":"string","maxLength":32},"metadata":{"type":"object"}},"required":["amountBdt","successUrl","cancelUrl"]},"SubmitPaymentDto":{"type":"object","properties":{"providerTrxId":{"type":"string","maxLength":64},"senderMsisdn":{"type":"string","pattern":"/^01[\\dXx]{9}$/"}},"required":["providerTrxId"]},"PrepareCheckoutDto":{"type":"object","properties":{"provider":{"type":"string","maxLength":30,"pattern":"/^[a-zA-Z0-9 _-]+$/"},"senderMsisdn":{"type":"string","pattern":"/^01[3-9]\\d{8}$/"}},"required":["provider","senderMsisdn"]},"CompatibilityCreatePaymentDto":{"type":"object","properties":{"amount":{"type":"number","minimum":1,"maximum":100000000},"order_id":{"type":"string","maxLength":100,"pattern":"/^[A-Za-z0-9._-]+$/"},"orderId":{"type":"string","maxLength":100,"pattern":"/^[A-Za-z0-9._-]+$/"},"success_url":{"type":"string","maxLength":2048},"cancel_url":{"type":"string","maxLength":2048},"fullname":{"type":"string","maxLength":150},"email":{"type":"string","maxLength":254},"phone":{"type":"string","maxLength":32},"description":{"type":"string","maxLength":500},"metadata":{"type":"object"}},"required":["amount","success_url","cancel_url"]},"CompatibilityVerifyPaymentDto":{"type":"object","properties":{"amount":{"type":"string"},"transaction_id":{"type":"string","maxLength":64},"paymentMethod":{"type":"string","maxLength":40},"provider":{"type":"string","maxLength":40},"providerTrxId":{"type":"string","maxLength":64},"sender_msisdn":{"type":"string","pattern":"/^01[\\dXx]{9}$/"},"order_id":{"type":"string","maxLength":100}},"required":["amount","transaction_id"]},"CreateWalletDto":{"type":"object","properties":{"provider":{"type":"string","maxLength":30,"pattern":"/^[a-zA-Z0-9 _-]+$/"},"accountType":{"type":"string","enum":["personal","merchant","agent"]},"accountNumber":{"type":"string","pattern":"/^01\\d{9}$/"},"label":{"type":"string","maxLength":80}},"required":["provider","accountType","accountNumber"]}}}}