> For the complete documentation index, see [llms.txt](https://www.pionex.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.pionex.com/docs/api-docs/institution-api/payout-account.md).

# Payout Account

Fiat payout (payee) account requirements, creation, update, and deletion (requires platform KYB APPROVED).

## Get payout-account field requirements

> Returns the required fields for a payout (payee) account, driven by\
> channel + country + currency + rail. Requires the \`userId\`'s platform KYB\
> to be \`APPROVED\`.\
> \
> Each \`FieldRequirement\`: \`{ key, label, required, regex, isExtra, kind }\`.\
> \`isExtra=true\` -> put the value into \`channelExtra\`. \`kind\` is \`FIELD\`\
> (default) or \`DOCUMENT\`; a \`DOCUMENT\` field is supplied via\
> \`spec.documents\` (upload the file first, reference by \`fileId\`), not as a\
> plain value.<br>

```json
{"openapi":"3.0.3","info":{"title":"Pionex Institution Open API (v2)","version":"2.0.0"},"tags":[{"name":"Payout Account","description":"Fiat payout (payee) account requirements, creation, update, and deletion (requires platform KYB APPROVED)."}],"servers":[{"url":"https://api.pionex.com","description":"Production"}],"security":[{"ApiKey":[],"Signature":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-APIKEY","description":"Your institution API Key, in the form `webot_xxxxxxxx`. Used to look up\nyour registered public key. Must be accompanied by the `X-Signature`\nheader. See the Authentication section for the full signing algorithm\n(RSA-PSS over SHA-256, or Ed25519) and the canonical-string construction.\n"}},"parameters":{"Timestamp":{"name":"timestamp","in":"query","required":true,"description":"Current time in **seconds** (Unix). Required on every signed request and\nparticipates in the signature. Must be within +/-5 seconds of server time.\n","schema":{"type":"integer","format":"int64"}},"UserIdQueryRequired":{"name":"userId","in":"query","required":true,"description":"Target sub-account UUID. Participates in the signature.","schema":{"type":"string"}}},"schemas":{"BaseResponse":{"type":"object","properties":{"result":{"type":"boolean","description":"Success indicator."},"timestamp":{"type":"integer","format":"int64","description":"Response timestamp in milliseconds."},"code":{"type":"string","description":"Error code (present only on failure)."},"message":{"type":"string","description":"Error message (present only on failure)."}}},"FieldRequirement":{"type":"object","description":"A payout-account field requirement.","properties":{"key":{"type":"string"},"label":{"type":"string"},"required":{"type":"boolean"},"regex":{"type":"string"},"isExtra":{"type":"boolean","description":"When `true`, put the value into `channelExtra`."},"kind":{"type":"string","enum":["FIELD","DOCUMENT"],"description":"A `DOCUMENT` field is supplied via `spec.documents` (by `fileId`)."}}}},"responses":{"BadRequest":{"description":"Bad Request - the request body could not be read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/BaseResponse"}]}}}},"Unauthorized":{"description":"Unauthorized - authentication failed (missing key, bad signature, etc.).","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/BaseResponse"}]}}}},"InternalError":{"description":"Internal or business error. Note that most business failures are returned\nas HTTP `200` with `result: false` and a `code`; this `500` covers\nserver-side internal errors.\n","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/BaseResponse"}]}}}}}},"paths":{"/api/v2/institution/wire/payout/account/requirements":{"get":{"tags":["Payout Account"],"summary":"Get payout-account field requirements","description":"Returns the required fields for a payout (payee) account, driven by\nchannel + country + currency + rail. Requires the `userId`'s platform KYB\nto be `APPROVED`.\n\nEach `FieldRequirement`: `{ key, label, required, regex, isExtra, kind }`.\n`isExtra=true` -> put the value into `channelExtra`. `kind` is `FIELD`\n(default) or `DOCUMENT`; a `DOCUMENT` field is supplied via\n`spec.documents` (upload the file first, reference by `fileId`), not as a\nplain value.\n","operationId":"institutionPayoutAccountRequirements","parameters":[{"$ref":"#/components/parameters/Timestamp"},{"$ref":"#/components/parameters/UserIdQueryRequired"},{"name":"channel","in":"query","required":false,"schema":{"type":"string"}},{"name":"country","in":"query","required":false,"description":"ISO 3166-1 alpha-2.","schema":{"type":"string"}},{"name":"currency","in":"query","required":false,"description":"ISO 4217.","schema":{"type":"string"}},{"name":"rail","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/BaseResponse"},{"type":"object","properties":{"data":{"type":"object","properties":{"channel":{"type":"string"},"requirements":{"type":"array","items":{"$ref":"#/components/schemas/FieldRequirement"}}}}}}]}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}}}}}
```

## Create a payout (payee) account

> Create a payout (payee) account. Fields in \`spec\` are constrained by the\
> requirements endpoint. Requires the \`userId\`'s platform KYB to be\
> \`APPROVED\`. Wait for the account to reach \`AVAILABLE\` before submitting a\
> payout against it.<br>

```json
{"openapi":"3.0.3","info":{"title":"Pionex Institution Open API (v2)","version":"2.0.0"},"tags":[{"name":"Payout Account","description":"Fiat payout (payee) account requirements, creation, update, and deletion (requires platform KYB APPROVED)."}],"servers":[{"url":"https://api.pionex.com","description":"Production"}],"security":[{"ApiKey":[],"Signature":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-APIKEY","description":"Your institution API Key, in the form `webot_xxxxxxxx`. Used to look up\nyour registered public key. Must be accompanied by the `X-Signature`\nheader. See the Authentication section for the full signing algorithm\n(RSA-PSS over SHA-256, or Ed25519) and the canonical-string construction.\n"}},"parameters":{"Timestamp":{"name":"timestamp","in":"query","required":true,"description":"Current time in **seconds** (Unix). Required on every signed request and\nparticipates in the signature. Must be within +/-5 seconds of server time.\n","schema":{"type":"integer","format":"int64"}}},"schemas":{"PayoutAccountSpec":{"type":"object","description":"Payout-account spec; fields constrained by the requirements endpoint.","properties":{"currency":{"type":"string"},"country":{"type":"string"},"rail":{"type":"string"},"holderType":{"type":"string","enum":["INDIVIDUAL","BUSINESS"]},"accountHolderName":{"type":"string"},"accountHolderAddress":{"type":"string"},"bankName":{"type":"string"},"routingNumber":{"type":"string"},"accountNumber":{"type":"string"},"accountType":{"type":"string","enum":["CHECKING","SAVINGS"]},"fileIds":{"type":"array","items":{"type":"string"}},"channelExtra":{"type":"array","items":{"$ref":"#/components/schemas/KeyValue"}},"documents":{"type":"array","items":{"type":"object","properties":{"purpose":{"type":"string","description":"The requirement `key` whose `kind` is `DOCUMENT`."},"fileId":{"type":"string"}}}}}},"KeyValue":{"type":"object","description":"A generic key/value pair.","properties":{"key":{"type":"string"},"value":{"type":"string"}}},"BaseResponse":{"type":"object","properties":{"result":{"type":"boolean","description":"Success indicator."},"timestamp":{"type":"integer","format":"int64","description":"Response timestamp in milliseconds."},"code":{"type":"string","description":"Error code (present only on failure)."},"message":{"type":"string","description":"Error message (present only on failure)."}}},"PayoutAccount":{"type":"object","properties":{"accountId":{"type":"string"},"channel":{"type":"string"},"status":{"type":"string","enum":["IN_REVIEW","AVAILABLE","NEEDS_UPDATE","UNAVAILABLE","DELETED"]},"rejectReason":{"$ref":"#/components/schemas/Reason"},"accountLast4":{"type":"string"},"bankName":{"type":"string"},"currency":{"type":"string"},"country":{"type":"string"},"rail":{"type":"string"},"accountHolderName":{"type":"string"},"createdAt":{"type":"integer","format":"int64"},"updatedAt":{"type":"integer","format":"int64"},"editableFields":{"type":"array","items":{"type":"string"},"description":"Fields that may be changed via Update Payout Account."}}},"Reason":{"type":"object","description":"Failure/return reason, present only when a channel returns one.","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean","description":"Whether the same request/order may be retried."}}}},"responses":{"BadRequest":{"description":"Bad Request - the request body could not be read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/BaseResponse"}]}}}},"Unauthorized":{"description":"Unauthorized - authentication failed (missing key, bad signature, etc.).","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/BaseResponse"}]}}}},"InternalError":{"description":"Internal or business error. Note that most business failures are returned\nas HTTP `200` with `result: false` and a `code`; this `500` covers\nserver-side internal errors.\n","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/BaseResponse"}]}}}}}},"paths":{"/api/v2/institution/wire/payout/account/create":{"post":{"tags":["Payout Account"],"summary":"Create a payout (payee) account","description":"Create a payout (payee) account. Fields in `spec` are constrained by the\nrequirements endpoint. Requires the `userId`'s platform KYB to be\n`APPROVED`. Wait for the account to reach `AVAILABLE` before submitting a\npayout against it.\n","operationId":"institutionPayoutAccountCreate","parameters":[{"$ref":"#/components/parameters/Timestamp"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["userId","clientAccountId","channel","spec"],"properties":{"userId":{"type":"string","description":"Sub-account UUID."},"clientAccountId":{"type":"string","description":"Bind idempotency id, unique per `userId`, 1-64 chars. Retries must reuse the original value.","minLength":1,"maxLength":64},"channel":{"type":"string","description":"Channel."},"spec":{"$ref":"#/components/schemas/PayoutAccountSpec"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/BaseResponse"},{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PayoutAccount"}}}]}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}}}}}
```

## List payout accounts

> List payout (payee) accounts for a \`userId\`. Requires the \`userId\`'s\
> platform KYB to be \`APPROVED\`. Use \`accountId\` in payout requests.<br>

```json
{"openapi":"3.0.3","info":{"title":"Pionex Institution Open API (v2)","version":"2.0.0"},"tags":[{"name":"Payout Account","description":"Fiat payout (payee) account requirements, creation, update, and deletion (requires platform KYB APPROVED)."}],"servers":[{"url":"https://api.pionex.com","description":"Production"}],"security":[{"ApiKey":[],"Signature":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-APIKEY","description":"Your institution API Key, in the form `webot_xxxxxxxx`. Used to look up\nyour registered public key. Must be accompanied by the `X-Signature`\nheader. See the Authentication section for the full signing algorithm\n(RSA-PSS over SHA-256, or Ed25519) and the canonical-string construction.\n"}},"parameters":{"Timestamp":{"name":"timestamp","in":"query","required":true,"description":"Current time in **seconds** (Unix). Required on every signed request and\nparticipates in the signature. Must be within +/-5 seconds of server time.\n","schema":{"type":"integer","format":"int64"}},"UserIdQueryRequired":{"name":"userId","in":"query","required":true,"description":"Target sub-account UUID. Participates in the signature.","schema":{"type":"string"}},"Page":{"name":"page","in":"query","required":false,"description":"Page number, starting from 1.","schema":{"type":"integer"}},"Size":{"name":"size","in":"query","required":false,"description":"Page size.","schema":{"type":"integer"}}},"schemas":{"BaseResponse":{"type":"object","properties":{"result":{"type":"boolean","description":"Success indicator."},"timestamp":{"type":"integer","format":"int64","description":"Response timestamp in milliseconds."},"code":{"type":"string","description":"Error code (present only on failure)."},"message":{"type":"string","description":"Error message (present only on failure)."}}},"PayoutAccount":{"type":"object","properties":{"accountId":{"type":"string"},"channel":{"type":"string"},"status":{"type":"string","enum":["IN_REVIEW","AVAILABLE","NEEDS_UPDATE","UNAVAILABLE","DELETED"]},"rejectReason":{"$ref":"#/components/schemas/Reason"},"accountLast4":{"type":"string"},"bankName":{"type":"string"},"currency":{"type":"string"},"country":{"type":"string"},"rail":{"type":"string"},"accountHolderName":{"type":"string"},"createdAt":{"type":"integer","format":"int64"},"updatedAt":{"type":"integer","format":"int64"},"editableFields":{"type":"array","items":{"type":"string"},"description":"Fields that may be changed via Update Payout Account."}}},"Reason":{"type":"object","description":"Failure/return reason, present only when a channel returns one.","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean","description":"Whether the same request/order may be retried."}}}},"responses":{"BadRequest":{"description":"Bad Request - the request body could not be read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/BaseResponse"}]}}}},"Unauthorized":{"description":"Unauthorized - authentication failed (missing key, bad signature, etc.).","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/BaseResponse"}]}}}},"InternalError":{"description":"Internal or business error. Note that most business failures are returned\nas HTTP `200` with `result: false` and a `code`; this `500` covers\nserver-side internal errors.\n","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/BaseResponse"}]}}}}}},"paths":{"/api/v2/institution/wire/payout/accounts":{"get":{"tags":["Payout Account"],"summary":"List payout accounts","description":"List payout (payee) accounts for a `userId`. Requires the `userId`'s\nplatform KYB to be `APPROVED`. Use `accountId` in payout requests.\n","operationId":"institutionPayoutAccountsList","parameters":[{"$ref":"#/components/parameters/Timestamp"},{"$ref":"#/components/parameters/UserIdQueryRequired"},{"name":"channel","in":"query","required":true,"schema":{"type":"string"}},{"name":"currency","in":"query","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/Page"},{"$ref":"#/components/parameters/Size"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/BaseResponse"},{"type":"object","properties":{"data":{"type":"object","properties":{"list":{"type":"array","items":{"$ref":"#/components/schemas/PayoutAccount"}},"total":{"type":"integer"}}}}}]}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}}}}}
```

## Delete a payout account

> Delete a payout (payee) account. Requires the \`userId\`'s platform KYB to\
> be \`APPROVED\`.\
> \
> \> \*\*\`channel\` currently supports only \`straitsx\`.\*\*<br>

```json
{"openapi":"3.0.3","info":{"title":"Pionex Institution Open API (v2)","version":"2.0.0"},"tags":[{"name":"Payout Account","description":"Fiat payout (payee) account requirements, creation, update, and deletion (requires platform KYB APPROVED)."}],"servers":[{"url":"https://api.pionex.com","description":"Production"}],"security":[{"ApiKey":[],"Signature":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-APIKEY","description":"Your institution API Key, in the form `webot_xxxxxxxx`. Used to look up\nyour registered public key. Must be accompanied by the `X-Signature`\nheader. See the Authentication section for the full signing algorithm\n(RSA-PSS over SHA-256, or Ed25519) and the canonical-string construction.\n"}},"parameters":{"Timestamp":{"name":"timestamp","in":"query","required":true,"description":"Current time in **seconds** (Unix). Required on every signed request and\nparticipates in the signature. Must be within +/-5 seconds of server time.\n","schema":{"type":"integer","format":"int64"}}},"schemas":{"BaseResponse":{"type":"object","properties":{"result":{"type":"boolean","description":"Success indicator."},"timestamp":{"type":"integer","format":"int64","description":"Response timestamp in milliseconds."},"code":{"type":"string","description":"Error code (present only on failure)."},"message":{"type":"string","description":"Error message (present only on failure)."}}}},"responses":{"BadRequest":{"description":"Bad Request - the request body could not be read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/BaseResponse"}]}}}},"Unauthorized":{"description":"Unauthorized - authentication failed (missing key, bad signature, etc.).","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/BaseResponse"}]}}}},"InternalError":{"description":"Internal or business error. Note that most business failures are returned\nas HTTP `200` with `result: false` and a `code`; this `500` covers\nserver-side internal errors.\n","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/BaseResponse"}]}}}}}},"paths":{"/api/v2/institution/wire/payout/account/delete":{"post":{"tags":["Payout Account"],"summary":"Delete a payout account","description":"Delete a payout (payee) account. Requires the `userId`'s platform KYB to\nbe `APPROVED`.\n\n> **`channel` currently supports only `straitsx`.**\n","operationId":"institutionPayoutAccountDelete","parameters":[{"$ref":"#/components/parameters/Timestamp"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["userId","accountId","channel"],"properties":{"userId":{"type":"string"},"accountId":{"type":"string"},"channel":{"type":"string","description":"Channel. Currently only `straitsx` is supported."}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/BaseResponse"},{"type":"object","properties":{"data":{"type":"object","description":"Empty object."}}}]}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}}}}}
```
