{"openapi":"3.1.0","info":{"title":"Gatepay API","description":"API documentation for Gatepay","version":"1.0.0"},"servers":[{"url":"http://localhost:8787","description":"Local Server"},{"url":"https://api.gatepay.cloud","description":"Production Server"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{}},"security":[{"bearerAuth":[]}],"paths":{"/links/{linkUuid}/tolls/active":{"get":{"responses":{"200":{"description":"Active toll","content":{"application/json":{"schema":{"type":"object","properties":{"uuid":{"type":"string"},"tollPaymentRequirements":{"type":"array","items":{"type":"object","properties":{"assetNetwork":{"type":"string"},"assetAddress":{"type":"string"},"amount":{"type":"string"},"destinationAddress":{"type":"string"}},"required":["assetNetwork","assetAddress","amount","destinationAddress"]}},"paymentValidityPeriodSeconds":{"type":["number","null"]},"paymentValidityQueryCount":{"type":["number","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":["string","null"]}},"required":["uuid","tollPaymentRequirements","createdAt","updatedAt"]}}}}},"operationId":"getLinksByLinkUuidTollsActive","tags":["links"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"linkUuid","required":true}],"summary":"Get Toll","description":"Get the active toll for a link"},"delete":{"responses":{"204":{"description":"Toll deleted"},"404":{"description":"Toll not found"}},"operationId":"deleteLinksByLinkUuidTollsActive","tags":["links"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"linkUuid","required":true}],"summary":"Delete Toll","description":"Delete a toll for a link"}},"/links/{linkUuid}/tolls":{"post":{"responses":{"201":{"description":"Toll created","content":{"application/json":{"schema":{"type":"object","properties":{"uuid":{"type":"string"},"tollPaymentRequirements":{"type":"array","items":{"type":"object","properties":{"assetNetwork":{"type":"string"},"assetAddress":{"type":"string"},"amount":{"type":"string"},"destinationAddress":{"type":"string"}},"required":["assetNetwork","assetAddress","amount","destinationAddress"]}},"paymentValidityPeriodSeconds":{"type":["number","null"]},"paymentValidityQueryCount":{"type":["number","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":["string","null"]}},"required":["uuid","tollPaymentRequirements","createdAt","updatedAt"]}}}}},"operationId":"postLinksByLinkUuidTolls","tags":["links"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"linkUuid","required":true}],"summary":"Create Toll","description":"Create a new toll for a link","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"tollPaymentRequirements":{"type":"array","items":{"type":"object","properties":{"assetNetwork":{"type":"string"},"assetAddress":{"type":"string"},"amount":{"type":"string"},"destinationAddress":{"type":"string"}},"required":["assetNetwork","assetAddress","amount","destinationAddress"]}},"paymentValidityPeriodSeconds":{"type":["number","null"]},"paymentValidityQueryCount":{"type":["number","null"]}},"required":["tollPaymentRequirements"]}}}}}},"/links/{linkUuid}/payments":{"get":{"responses":{"200":{"description":"Payments found","content":{"application/json":{"schema":{"type":"object","properties":{"payments":{"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string"},"requestUuid":{"type":["string","null"]},"linkUuid":{"type":"string"},"tollUuid":{"type":"string"},"status":{"type":"string"},"error":{"type":["string","null"]},"facilitator":{"type":"string"},"transactionHash":{"type":["string","null"]},"transactionFee":{"type":["string","null"]},"transactionFeeDollars":{"type":["number","null"]},"payerAddress":{"type":["string","null"]},"amount":{"type":["string","null"]},"amountDollars":{"type":["number","null"]},"assetAddress":{"type":"string"},"network":{"type":"string"},"destinationAddress":{"type":["string","null"]},"settlementDetails":{"type":"string"},"verificationDetails":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":["string","null"]}},"required":["uuid","requestUuid","linkUuid","tollUuid","status","error","facilitator","transactionHash","transactionFee","transactionFeeDollars","payerAddress","amount","amountDollars","assetAddress","network","destinationAddress","settlementDetails","verificationDetails","createdAt","updatedAt"]}},"pagination":{"type":"object","properties":{"page":{"type":"integer","minimum":0},"pages":{"type":"integer","minimum":0},"limit":{"type":"integer","minimum":0},"count":{"type":"integer","minimum":0}},"required":["page","pages","limit","count"]}},"required":["payments","pagination"]}}}},"404":{"description":"Link not found"}},"operationId":"getLinksByLinkUuidPayments","tags":["links"],"parameters":[{"name":"page","in":"query","description":"Page number to return","required":false,"schema":{"type":"integer","default":1}},{"name":"limit","in":"query","description":"Number of payments to return","required":false,"schema":{"type":"integer","default":20}},{"schema":{"type":"string"},"in":"path","name":"linkUuid","required":true}],"summary":"Get Payments","description":"List all payments for a link"}},"/links/{linkUuid}/payments/{paymentUuid}":{"get":{"responses":{"200":{"description":"Payment found","content":{"application/json":{"schema":{"type":"object","properties":{"uuid":{"type":"string"},"requestUuid":{"type":["string","null"]},"linkUuid":{"type":"string"},"tollUuid":{"type":"string"},"status":{"type":"string"},"error":{"type":["string","null"]},"facilitator":{"type":"string"},"transactionHash":{"type":["string","null"]},"transactionFee":{"type":["string","null"]},"transactionFeeDollars":{"type":["number","null"]},"payerAddress":{"type":["string","null"]},"amount":{"type":["string","null"]},"amountDollars":{"type":["number","null"]},"assetAddress":{"type":"string"},"network":{"type":"string"},"destinationAddress":{"type":["string","null"]},"settlementDetails":{"type":"string"},"verificationDetails":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":["string","null"]}},"required":["uuid","requestUuid","linkUuid","tollUuid","status","error","facilitator","transactionHash","transactionFee","transactionFeeDollars","payerAddress","amount","amountDollars","assetAddress","network","destinationAddress","settlementDetails","verificationDetails","createdAt","updatedAt"]}}}},"404":{"description":"Payment not found"}},"operationId":"getLinksByLinkUuidPaymentsByPaymentUuid","tags":["links"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"linkUuid","required":true},{"schema":{"type":"string"},"in":"path","name":"paymentUuid","required":true}],"summary":"Get Payment","description":"Get a payment for a link"}},"/links/{linkUuid}/payments/{paymentUuid}/action-logs":{"get":{"responses":{"200":{"description":"Action logs found","content":{"application/json":{"schema":{"type":"object","properties":{"actionLogs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"actionUuid":{"type":"string"},"actionType":{"type":"string"},"actionData":{},"requestUuid":{"type":"string"},"status":{"type":"string","enum":["pending","success","failure"]},"log":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":["string","null"]}},"required":["id","actionUuid","actionType","requestUuid","status","log","createdAt","updatedAt"]}},"count":{"type":"number"}},"required":["actionLogs","count"]}}}},"404":{"description":"Payment not found"}},"operationId":"getLinksByLinkUuidPaymentsByPaymentUuidAction-logs","tags":["links"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"linkUuid","required":true},{"schema":{"type":"string"},"in":"path","name":"paymentUuid","required":true}],"summary":"Get Action Logs","description":"Get action logs for a payment"}},"/links/{linkUuid}/resources/active":{"get":{"responses":{"200":{"description":"Active resource for the link","content":{"application/json":{"schema":{"type":"object","properties":{"uuid":{"type":"string"},"type":{"type":"string","enum":["proxy","link","redirect","tunnel","html"]},"data":{"type":"null"},"createdAt":{"type":"string"},"updatedAt":{"type":["string","null"]}},"required":["uuid","type","createdAt","updatedAt"]}}}},"404":{"description":"Resource not found"}},"operationId":"getLinksByLinkUuidResourcesActive","tags":["links"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"linkUuid","required":true}],"summary":"Get Resource"},"delete":{"responses":{"204":{"description":"Resource deleted"},"404":{"description":"Resource not found"}},"operationId":"deleteLinksByLinkUuidResourcesActive","tags":["links"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"linkUuid","required":true}],"summary":"Delete Resource"}},"/links/{linkUuid}/resources":{"post":{"responses":{"201":{"description":"Resource created","content":{"application/json":{"schema":{"type":"object","properties":{"uuid":{"type":"string"},"type":{"type":"string","enum":["proxy","link","redirect","tunnel","html"]},"data":{"type":"null"},"createdAt":{"type":"string"},"updatedAt":{"type":["string","null"]}},"required":["uuid","type","createdAt","updatedAt"]}}}}},"operationId":"postLinksByLinkUuidResources","tags":["links"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"linkUuid","required":true}],"summary":"Create Resource","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["proxy","link","redirect","tunnel","html"]},"data":{"type":"null"}},"required":["type"]}}}}}},"/links/{linkUuid}/actions":{"post":{"responses":{"201":{"description":"Action created","content":{"application/json":{"schema":{"type":"object","properties":{"uuid":{"type":"string"},"linkUuid":{"type":"string"},"type":{"type":"string","enum":["callback","notification","email","sms"]},"trigger":{"type":"string","enum":["payment_success"]},"data":{"type":"null"},"createdAt":{"type":"string"},"updatedAt":{"type":["string","null"]}},"required":["uuid","linkUuid","type","trigger","createdAt","updatedAt"]}}}},"400":{"description":"Invalid request or link not found"}},"operationId":"postLinksByLinkUuidActions","tags":["links"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"linkUuid","required":true}],"summary":"Create Action","description":"Create a new action for the link","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["callback","notification","email","sms"]},"data":{"type":"null"},"trigger":{"type":"string","enum":["payment_success"]}},"required":["type","trigger"]}}}}}},"/links/{linkUuid}/actions/{actionUuid}":{"put":{"responses":{"200":{"description":"Action updated","content":{"application/json":{"schema":{"type":"object","properties":{"uuid":{"type":"string"},"linkUuid":{"type":"string"},"type":{"type":"string","enum":["callback","notification","email","sms"]},"trigger":{"type":"string","enum":["payment_success"]},"data":{"type":"null"},"createdAt":{"type":"string"},"updatedAt":{"type":["string","null"]}},"required":["uuid","linkUuid","type","trigger","createdAt","updatedAt"]}}}},"404":{"description":"Action not found"}},"operationId":"putLinksByLinkUuidActionsByActionUuid","tags":["links"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"linkUuid","required":true},{"schema":{"type":"string"},"in":"path","name":"actionUuid","required":true}],"summary":"Update Action","description":"Update an action for the link","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["callback","notification","email","sms"]},"data":{"type":"null"},"trigger":{"type":"string","enum":["payment_success"]}},"required":["type","trigger"]}}}}},"delete":{"responses":{"204":{"description":"Action deleted"},"404":{"description":"Action not found"}},"operationId":"deleteLinksByLinkUuidActionsByActionUuid","tags":["links"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"linkUuid","required":true},{"schema":{"type":"string"},"in":"path","name":"actionUuid","required":true}],"summary":"Delete Action","description":"Delete an action for the link"}},"/links/{linkUuid}/stats":{"get":{"responses":{"200":{"description":"Link statistics","content":{"application/json":{"schema":{"type":"object","properties":{"linkUuid":{"type":"string"},"totalQueries":{"type":"number"},"successfulQueries":{"type":"number"},"failedQueries":{"type":"number"},"totalPayloadBytes":{"type":"number"},"totalRevenueDollars":{"type":"number"},"totalTransactionFeesDollars":{"type":"number"},"averageResponseTime":{"type":"number"},"uniqueVisitors":{"type":"number"},"lastAccessed":{"type":"string","format":"date-time"},"topUserAgents":{"type":"array","items":{"type":"object","properties":{"userAgent":{"type":"string"},"count":{"type":"number"}},"required":["userAgent","count"]}}},"required":["linkUuid","totalQueries","successfulQueries","failedQueries","totalPayloadBytes","totalRevenueDollars","totalTransactionFeesDollars","averageResponseTime","uniqueVisitors","lastAccessed","topUserAgents"]}}}},"404":{"description":"Link not found"}},"operationId":"getLinksByLinkUuidStats","tags":["links"],"parameters":[{"name":"linkUuid","in":"path","required":true,"schema":{"type":"string"},"description":"Link UUID or alias"}],"summary":"Get Stats","description":"Get statistics for a specific link"}},"/links/":{"get":{"responses":{"200":{"description":"List of links (paginated)","content":{"application/json":{"schema":{"type":"object","properties":{"uuids":{"type":"array","items":{"type":"string"}},"page":{"type":"integer","minimum":0},"pages":{"type":"integer","minimum":0},"limit":{"type":"integer","minimum":0},"count":{"type":"integer","minimum":0}},"required":["uuids","page","pages","limit","count"]}}}}},"operationId":"getLinks","tags":["links"],"parameters":[{"name":"limit","in":"query","description":"Number of links to return","required":false,"schema":{"type":"integer","default":10}},{"name":"page","in":"query","description":"Page number to return","required":false,"schema":{"type":"integer","default":1}}],"summary":"Get Links","description":"Get all user links (paginated)"},"post":{"responses":{"201":{"description":"Link created","content":{"application/json":{"schema":{"type":"object","properties":{"uuid":{"type":"string"},"url":{"type":"string","format":"uri"},"ownerId":{"type":"string"},"alias":{"type":["string","null"],"minLength":6},"name":{"type":["string","null"]},"description":{"type":["string","null"]},"status":{"type":"string","enum":["active","inactive","used","expired"]},"type":{"type":"string","enum":["onetime","permanent"]},"expirationTime":{"type":["string","null"]},"deleted":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":["string","null"]},"toll":{"type":["object","null"],"properties":{"uuid":{"type":"string"},"tollPaymentRequirements":{"type":"array","items":{"type":"object","properties":{"assetNetwork":{"type":"string"},"assetAddress":{"type":"string"},"amount":{"type":"string"},"destinationAddress":{"type":"string"}},"required":["assetNetwork","assetAddress","amount","destinationAddress"]}},"paymentValidityPeriodSeconds":{"type":["number","null"]},"paymentValidityQueryCount":{"type":["number","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":["string","null"]}},"required":["uuid","tollPaymentRequirements","createdAt","updatedAt"]},"resource":{"type":["object","null"],"properties":{"uuid":{"type":"string"},"type":{"type":"string","enum":["proxy","link","redirect","tunnel","html"]},"data":{"type":"null"},"createdAt":{"type":"string"},"updatedAt":{"type":["string","null"]}},"required":["uuid","type","createdAt","updatedAt"]},"actions":{"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string"},"linkUuid":{"type":"string"},"type":{"type":"string","enum":["callback","notification","email","sms"]},"trigger":{"type":"string","enum":["payment_success"]},"data":{"type":"null"},"createdAt":{"type":"string"},"updatedAt":{"type":["string","null"]}},"required":["uuid","linkUuid","type","trigger","createdAt","updatedAt"]}}},"required":["uuid","url","ownerId","alias","name","description","status","type","expirationTime","deleted","createdAt","updatedAt","toll","resource","actions"]}}}}},"operationId":"postLinks","tags":["links"],"parameters":[],"summary":"Create Link","description":"Create a new link","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"alias":{"type":["string","null"],"minLength":6},"name":{"type":["string","null"]},"description":{"type":["string","null"]},"expirationTime":{"type":["string","null"]},"status":{"type":"string","enum":["active","inactive","used","expired"]},"type":{"type":"string","enum":["onetime","permanent"]}}}}}}}},"/links/{uuidOrAlias}":{"get":{"responses":{"200":{"description":"A single link","content":{"application/json":{"schema":{"type":"object","properties":{"uuid":{"type":"string"},"url":{"type":"string","format":"uri"},"ownerId":{"type":"string"},"alias":{"type":["string","null"],"minLength":6},"name":{"type":["string","null"]},"description":{"type":["string","null"]},"status":{"type":"string","enum":["active","inactive","used","expired"]},"type":{"type":"string","enum":["onetime","permanent"]},"expirationTime":{"type":["string","null"]},"deleted":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":["string","null"]},"toll":{"type":["object","null"],"properties":{"uuid":{"type":"string"},"tollPaymentRequirements":{"type":"array","items":{"type":"object","properties":{"assetNetwork":{"type":"string"},"assetAddress":{"type":"string"},"amount":{"type":"string"},"destinationAddress":{"type":"string"}},"required":["assetNetwork","assetAddress","amount","destinationAddress"]}},"paymentValidityPeriodSeconds":{"type":["number","null"]},"paymentValidityQueryCount":{"type":["number","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":["string","null"]}},"required":["uuid","tollPaymentRequirements","createdAt","updatedAt"]},"resource":{"type":["object","null"],"properties":{"uuid":{"type":"string"},"type":{"type":"string","enum":["proxy","link","redirect","tunnel","html"]},"data":{"type":"null"},"createdAt":{"type":"string"},"updatedAt":{"type":["string","null"]}},"required":["uuid","type","createdAt","updatedAt"]},"actions":{"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string"},"linkUuid":{"type":"string"},"type":{"type":"string","enum":["callback","notification","email","sms"]},"trigger":{"type":"string","enum":["payment_success"]},"data":{"type":"null"},"createdAt":{"type":"string"},"updatedAt":{"type":["string","null"]}},"required":["uuid","linkUuid","type","trigger","createdAt","updatedAt"]}}},"required":["uuid","url","ownerId","alias","name","description","status","type","expirationTime","deleted","createdAt","updatedAt","toll","resource","actions"]}}}},"404":{"description":"Link not found"}},"operationId":"getLinksByUuidOrAlias","tags":["links"],"parameters":[{"name":"uuidOrAlias","in":"path","description":"UUID or Alias of the link","required":true,"schema":{"type":"string"}}],"summary":"Get Link","description":"Get a single link by UUID or Alias"}},"/links/{uuid}":{"put":{"responses":{"200":{"description":"Link updated","content":{"application/json":{"schema":{"type":"object","properties":{"uuid":{"type":"string"},"url":{"type":"string","format":"uri"},"ownerId":{"type":"string"},"alias":{"type":["string","null"],"minLength":6},"name":{"type":["string","null"]},"description":{"type":["string","null"]},"status":{"type":"string","enum":["active","inactive","used","expired"]},"type":{"type":"string","enum":["onetime","permanent"]},"expirationTime":{"type":["string","null"]},"deleted":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":["string","null"]},"toll":{"type":["object","null"],"properties":{"uuid":{"type":"string"},"tollPaymentRequirements":{"type":"array","items":{"type":"object","properties":{"assetNetwork":{"type":"string"},"assetAddress":{"type":"string"},"amount":{"type":"string"},"destinationAddress":{"type":"string"}},"required":["assetNetwork","assetAddress","amount","destinationAddress"]}},"paymentValidityPeriodSeconds":{"type":["number","null"]},"paymentValidityQueryCount":{"type":["number","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":["string","null"]}},"required":["uuid","tollPaymentRequirements","createdAt","updatedAt"]},"resource":{"type":["object","null"],"properties":{"uuid":{"type":"string"},"type":{"type":"string","enum":["proxy","link","redirect","tunnel","html"]},"data":{"type":"null"},"createdAt":{"type":"string"},"updatedAt":{"type":["string","null"]}},"required":["uuid","type","createdAt","updatedAt"]},"actions":{"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string"},"linkUuid":{"type":"string"},"type":{"type":"string","enum":["callback","notification","email","sms"]},"trigger":{"type":"string","enum":["payment_success"]},"data":{"type":"null"},"createdAt":{"type":"string"},"updatedAt":{"type":["string","null"]}},"required":["uuid","linkUuid","type","trigger","createdAt","updatedAt"]}}},"required":["uuid","url","ownerId","alias","name","description","status","type","expirationTime","deleted","createdAt","updatedAt","toll","resource","actions"]}}}},"404":{"description":"Link not found"}},"operationId":"putLinksByUuid","tags":["links"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"uuid","required":true}],"summary":"Update Link","description":"Update a link by UUID","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["active","inactive","used","expired"]},"alias":{"type":["string","null"],"minLength":6},"type":{"type":"string","enum":["onetime","permanent"]},"name":{"type":["string","null"]},"description":{"type":["string","null"]}}}}}}},"delete":{"responses":{"200":{"description":"Link deleted successfully","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}},"404":{"description":"Link not found"}},"operationId":"deleteLinksByUuid","tags":["links"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"uuid","required":true}],"summary":"Delete Link","description":"Delete a link by UUID"}},"/networks/":{"get":{"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"assets":{"type":"array","items":{"type":"object","properties":{"network":{"type":"string"},"address":{"type":"string"},"type":{"type":"string","enum":["native","erc20","erc721"]},"interface":{"type":"string","enum":["erc2612","erc3009","erc7702"]},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":["string","null"]}},"required":["network","address","type","interface","name","symbol","decimals","createdAt","updatedAt"]}}},"required":["name","assets"]}}}}}},"operationId":"getNetworks","tags":["networks"],"parameters":[],"summary":"Get Networks","description":"List all networks with their assets"}},"/networks/{name}":{"get":{"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"assets":{"type":"array","items":{"type":"object","properties":{"network":{"type":"string"},"address":{"type":"string"},"type":{"type":"string","enum":["native","erc20","erc721"]},"interface":{"type":"string","enum":["erc2612","erc3009","erc7702"]},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":["string","null"]}},"required":["network","address","type","interface","name","symbol","decimals","createdAt","updatedAt"]}}},"required":["name","assets"]}}}},"404":{"description":"Network not found"}},"operationId":"getNetworksByName","tags":["networks"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"name","required":true}],"summary":"Get Network","description":"Get a single network by name"}},"/networks/{name}/assets":{"get":{"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"network":{"type":"string"},"address":{"type":"string"},"type":{"type":"string","enum":["native","erc20","erc721"]},"interface":{"type":"string","enum":["erc2612","erc3009","erc7702"]},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"createdAt":{"type":"string"},"updatedAt":{"type":["string","null"]}},"required":["network","address","type","interface","name","symbol","decimals","createdAt","updatedAt"]}}}}}},"operationId":"getNetworksByNameAssets","tags":["networks"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"name","required":true}],"summary":"Get Assets","description":"List all assets for a network"}},"/account/token":{"get":{"responses":{"200":{"description":"API token returned","content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"]}}}}},"operationId":"getAccountToken","tags":["account"],"parameters":[],"summary":"Get Token","description":"Returns the API token for the authenticated admin (creates one if not present)"},"post":{"responses":{"201":{"description":"API token created","content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"]}}}}},"operationId":"postAccountToken","tags":["account"],"parameters":[],"summary":"Create Token","description":"Create a new API token for the user (admin only)"}},"/account/balance":{"get":{"responses":{"200":{"description":"Account balance returned","content":{"application/json":{"schema":{"type":"object","properties":{"balanceDollars":{"type":"string"}},"required":["balanceDollars"]}}}}},"operationId":"getAccountBalance","tags":["account"],"parameters":[],"summary":"Get Balance","description":"Get user's account balance"}},"/account/transactions":{"get":{"responses":{"200":{"description":"Account transactions returned","content":{"application/json":{"schema":{"type":"object","properties":{"transactions":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["payment","topup"]},"amountDollars":{"type":"string"},"payment":{"type":"object","properties":{"uuid":{"type":"string"},"amount":{"type":"string"},"amountDollars":{"type":["number","null"]},"assetNetwork":{"type":["string","null"]},"assetAddress":{"type":["string","null"]},"status":{"type":"string"},"transactionHash":{"type":["string","null"]},"transactionFee":{"type":["string","null"]},"transactionFeeDollars":{"type":["number","null"]},"transactionDate":{"type":["string","null"]},"createdAt":{"type":"string"},"linkUuid":{"type":"string"}},"required":["uuid","amount","amountDollars","assetNetwork","assetAddress","status","transactionHash","transactionFee","transactionFeeDollars","transactionDate","createdAt","linkUuid"]}},"required":["type","amountDollars","payment"]}},"pagination":{"type":"object","properties":{"page":{"type":"number"},"limit":{"type":"number"},"total":{"type":"number"},"pages":{"type":"number"}},"required":["page","limit","total","pages"]}},"required":["transactions","pagination"]}}}}},"operationId":"getAccountTransactions","tags":["account"],"parameters":[{"name":"page","in":"query","description":"Page number to return","required":false,"schema":{"type":"integer","default":1}},{"name":"limit","in":"query","description":"Number of transactions to return","required":false,"schema":{"type":"integer","default":20,"maximum":100}}],"summary":"Get Transactions","description":"Get user's unified transaction history including topups and payments"}},"/account/topup-links":{"post":{"responses":{"201":{"description":"Topup link created","content":{"application/json":{"schema":{"type":"object","properties":{"uuid":{"type":"string"},"linkUuid":{"type":"string"},"url":{"type":"string"},"userId":{"type":"string"},"createdAt":{"type":"string"}},"required":["uuid","linkUuid","url","userId","createdAt"]}}}}},"operationId":"postAccountTopup-links","tags":["account"],"parameters":[],"summary":"Create Topup Link","description":"Create a new topup link","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"amount":{"type":"string","minLength":1},"assetNetwork":{"type":"string","minLength":1},"assetAddress":{"type":"string","minLength":1},"expiresIn":{"type":"number"}},"required":["amount","assetNetwork","assetAddress"]}}}}}},"/account/stats":{"get":{"responses":{"200":{"description":"Account statistics","content":{"application/json":{"schema":{"type":"object","properties":{"totalFeesPaidDollars":{"type":"number"},"totalRevenueDollars":{"type":"number"}},"required":["totalFeesPaidDollars","totalRevenueDollars"]}}}}},"operationId":"getAccountStats","tags":["account"],"parameters":[],"summary":"Get Account Stats","description":"Get statistics for the authenticated user's account"}}}}