> ## Documentation Index
> Fetch the complete documentation index at: https://cobo.com/payments/llms.txt
> Use this file to discover all available pages before exploring further.

# Submit merchant KYC

> This operation submits KYC information for a specified merchant.

You need to provide the merchant contact information, merchant type, country, industry, and company information.

The merchant ID can be retrieved by calling [List all merchants](https://www.cobo.com/developers/v2/api-references/payment/list-all-merchants).


<RequestExample>
  ```python Python theme={null}
  import cobo_waas2
  from cobo_waas2.models.merchant_kyc_address import MerchantKycAddress
  from cobo_waas2.models.merchant_kyc_company_attachment import MerchantKycCompanyAttachment
  from cobo_waas2.models.merchant_kyc_company_attachment_file_type import (
      MerchantKycCompanyAttachmentFileType,
  )
  from cobo_waas2.models.merchant_kyc_company_info import MerchantKycCompanyInfo
  from cobo_waas2.models.merchant_kyc_company_type import MerchantKycCompanyType
  from cobo_waas2.models.merchant_kyc_info import MerchantKycInfo
  from cobo_waas2.models.merchant_kyc_merchant_type import MerchantKycMerchantType
  from cobo_waas2.models.merchant_kyc_person_attachment import MerchantKycPersonAttachment
  from cobo_waas2.models.merchant_kyc_person_attachment_file_type import (
      MerchantKycPersonAttachmentFileType,
  )
  from cobo_waas2.models.merchant_kyc_person_info import MerchantKycPersonInfo
  from cobo_waas2.models.submit_merchant_kyc import SubmitMerchantKyc
  from cobo_waas2.rest import ApiException
  from pprint import pprint

  # See configuration.py for a list of all supported configurations.
  configuration = cobo_waas2.Configuration(
      # Replace `<YOUR_PRIVATE_KEY>` with your private key
      api_private_key="<YOUR_PRIVATE_KEY>",
      # Select the development environment. To use the production environment, change the URL to https://api.cobo.com/v2.
      host="https://api.dev.cobo.com/v2",
  )
  # Enter a context with an instance of the API client
  with cobo_waas2.ApiClient(configuration) as api_client:
      # Create an instance of the API class
      api_instance = cobo_waas2.PaymentApi(api_client)
      merchant_id = "M1001"
      address = cobo_waas2.MerchantKycAddress(
          country="HK",
          state="Hong Kong",
          city="Hong Kong",
          postcode="999077",
          line1="1 Example Street",
      )
      person_info = cobo_waas2.MerchantKycPersonInfo(
          name="张三",
          name_en="Zhang San",
          id_number="110101199001011234",
          date_of_birth="19900101",
          issue_date="20180101",
          expiration_date="20280101",
          attachments=[
              cobo_waas2.MerchantKycPersonAttachment(
                  file_id="https://example-bucket.s3.us-east-1.amazonaws.com/uploads/id_card_front.jpg",
                  file_type=MerchantKycPersonAttachmentFileType.PRC_ID_EMBLEM,
              )
          ],
          residential_address=address,
      )
      submit_merchant_kyc = cobo_waas2.SubmitMerchantKyc(
          email="merchant@example.com",
          phone="+85212345678",
          merchant_type=MerchantKycMerchantType.B2B,
          country="HKG",
          industry=["E-commerce"],
          company_info=cobo_waas2.MerchantKycCompanyInfo(
              company_type=MerchantKycCompanyType.CORPORATION,
              listed=False,
              attachments=[
                  cobo_waas2.MerchantKycCompanyAttachment(
                      file_id="https://example-bucket.s3.us-east-1.amazonaws.com/uploads/business_registration.pdf",
                      file_type=MerchantKycCompanyAttachmentFileType.BR,
                  )
              ],
              operation_address=address,
              identify_no="12345678",
              company_name="示例有限公司",
              company_name_en="Example Limited",
              establish_date="2020-01-01",
              commencement_date="2020-01-01",
              valid_period="2020-01-01",
              register_address=address,
              legal_info=person_info,
              ubo_infos=[person_info],
              online_store_url="https://example.com/store",
          ),
      )

      try:
          # Submit merchant KYC
          api_response = api_instance.submit_merchant_kyc(
              merchant_id, submit_merchant_kyc=submit_merchant_kyc
          )
          print("The response of PaymentApi->submit_merchant_kyc:\n")
          pprint(api_response)
      except Exception as e:
          print("Exception when calling PaymentApi->submit_merchant_kyc: %s\n" % e)

  ```

  ```java Java theme={null}
  // Import classes:
  import com.cobo.waas2.ApiClient;
  import com.cobo.waas2.ApiException;
  import com.cobo.waas2.Configuration;
  import com.cobo.waas2.Env;
  import com.cobo.waas2.api.PaymentApi;
  import com.cobo.waas2.model.*;
  import java.util.Arrays;

  public class Example {
    public static void main(String[] args) {
      ApiClient defaultClient = Configuration.getDefaultApiClient();
      // Select the development environment. To use the production environment, replace `Env.DEV` with
      // `Env.PROD
      defaultClient.setEnv(Env.DEV);

      // Replace `<YOUR_PRIVATE_KEY>` with your private key
      defaultClient.setPrivKey("<YOUR_PRIVATE_KEY>");
      PaymentApi apiInstance = new PaymentApi();
      String merchantId = "M1001";
      MerchantKycAddress address =
          new MerchantKycAddress()
              .country("HK")
              .state("Hong Kong")
              .city("Hong Kong")
              .postcode("999077")
              .line1("1 Example Street");
      MerchantKycPersonInfo personInfo =
          new MerchantKycPersonInfo()
              .name("张三")
              .nameEn("Zhang San")
              .idNumber("110101199001011234")
              .dateOfBirth("19900101")
              .issueDate("20180101")
              .expirationDate("20280101")
              .attachments(
                  Arrays.asList(
                      new MerchantKycPersonAttachment()
                          .fileId(
                              "https://example-bucket.s3.us-east-1.amazonaws.com/uploads/id_card_front.jpg")
                          .fileType(MerchantKycPersonAttachmentFileType.PRC_ID_EMBLEM)))
              .residentialAddress(address);
      SubmitMerchantKyc submitMerchantKyc =
          new SubmitMerchantKyc()
              .email("merchant@example.com")
              .phone("+85212345678")
              .merchantType(MerchantKycMerchantType.B2B)
              .country("HKG")
              .industry(Arrays.asList("E-commerce"))
              .companyInfo(
                  new MerchantKycCompanyInfo()
                      .companyType(MerchantKycCompanyType.CORPORATION)
                      .listed(false)
                      .attachments(
                          Arrays.asList(
                              new MerchantKycCompanyAttachment()
                                  .fileId(
                                      "https://example-bucket.s3.us-east-1.amazonaws.com/uploads/business_registration.pdf")
                                  .fileType(MerchantKycCompanyAttachmentFileType.BR)))
                      .operationAddress(address)
                      .identifyNo("12345678")
                      .companyName("示例有限公司")
                      .companyNameEn("Example Limited")
                      .establishDate("2020-01-01")
                      .commencementDate("2020-01-01")
                      .validPeriod("2020-01-01")
                      .registerAddress(address)
                      .legalInfo(personInfo)
                      .uboInfos(Arrays.asList(personInfo))
                      .onlineStoreUrl("https://example.com/store"));
      try {
        MerchantKycInfo result = apiInstance.submitMerchantKyc(merchantId, submitMerchantKyc);
        System.out.println(result);
      } catch (ApiException e) {
        System.err.println("Exception when calling PaymentApi#submitMerchantKyc");
        System.err.println("Status code: " + e.getCode());
        System.err.println("Reason: " + e.getResponseBody());
        System.err.println("Response headers: " + e.getResponseHeaders());
        e.printStackTrace();
      }
    }
  }

  ```

  ```go Go theme={null}
  package main

  import (
  	"context"
  	"fmt"
  	coboWaas2 "github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2"
  	"github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2/crypto"
  	"os"
  )

  func main() {
  	merchantId := "M1001"
  	address := *coboWaas2.NewMerchantKycAddress("HK", "Hong Kong", "Hong Kong", "999077", "1 Example Street")
  	personInfo := *coboWaas2.NewMerchantKycPersonInfo(
  		"张三",
  		"Zhang San",
  		"110101199001011234",
  		"19900101",
  		"20180101",
  		"20280101",
  		[]coboWaas2.MerchantKycPersonAttachment{
  			*coboWaas2.NewMerchantKycPersonAttachment(
  				"https://example-bucket.s3.us-east-1.amazonaws.com/uploads/id_card_front.jpg",
  				coboWaas2.MerchantKycPersonAttachmentFileType("PRC_ID_Emblem"),
  			),
  		},
  		address,
  	)
  	companyInfo := *coboWaas2.NewMerchantKycCompanyInfo(
  		coboWaas2.MerchantKycCompanyType("Corporation"),
  		false,
  		[]coboWaas2.MerchantKycCompanyAttachment{
  			*coboWaas2.NewMerchantKycCompanyAttachment(
  				"https://example-bucket.s3.us-east-1.amazonaws.com/uploads/business_registration.pdf",
  				coboWaas2.MerchantKycCompanyAttachmentFileType("BR"),
  			),
  		},
  		address,
  		"12345678",
  		"示例有限公司",
  		"Example Limited",
  		"2020-01-01",
  		"2020-01-01",
  		"2020-01-01",
  		address,
  		personInfo,
  		[]coboWaas2.MerchantKycPersonInfo{personInfo},
  	)
  	companyInfo.SetOnlineStoreUrl("https://example.com/store")
  	submitMerchantKyc := *coboWaas2.NewSubmitMerchantKyc(
  		"merchant@example.com",
  		"+85212345678",
  		coboWaas2.MerchantKycMerchantType("B2B"),
  		"HKG",
  		[]string{"E-commerce"},
  		companyInfo,
  	)

  	configuration := coboWaas2.NewConfiguration()
  	// Initialize the API client
  	apiClient := coboWaas2.NewAPIClient(configuration)
  	ctx := context.Background()

  	// Select the development environment. To use the production environment, replace coboWaas2.DevEnv with coboWaas2.ProdEnv
  	ctx = context.WithValue(ctx, coboWaas2.ContextEnv, coboWaas2.DevEnv)
  	// Replace `<YOUR_PRIVATE_KEY>` with your private key
  	ctx = context.WithValue(ctx, coboWaas2.ContextPortalSigner, crypto.Ed25519Signer{
  		Secret: "<YOUR_PRIVATE_KEY>",
  	})
  	resp, r, err := apiClient.PaymentAPI.SubmitMerchantKyc(ctx, merchantId).
  		SubmitMerchantKyc(submitMerchantKyc).
  		Execute()
  	if err != nil {
  		fmt.Fprintf(os.Stderr, "Error when calling `PaymentAPI.SubmitMerchantKyc``: %v\n", err)
  		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
  	}
  	// response from `SubmitMerchantKyc`: MerchantKycInfo
  	fmt.Fprintf(os.Stdout, "Response from `PaymentAPI.SubmitMerchantKyc`: %v\n", resp)
  }

  ```

  ```javascript JavaScript theme={null}
  const CoboWaas2 = require("@cobo/cobo-waas2");
  // Initialize the API client
  const apiClient = CoboWaas2.ApiClient.instance;
  // Select the development environment. To use the production environment, replace `Env.DEV` with `Env.PROD`
  apiClient.setEnv(CoboWaas2.Env.DEV);
  // Replace `<YOUR_PRIVATE_KEY>` with your private key
  apiClient.setPrivateKey("<YOUR_PRIVATE_KEY>");
  // Call the API
  const apiInstance = new CoboWaas2.PaymentApi();
  const merchant_id = "M1001";
  const address = {
    country: "HK",
    state: "Hong Kong",
    city: "Hong Kong",
    postcode: "999077",
    line1: "1 Example Street",
  };
  const personInfo = {
    name: "张三",
    name_en: "Zhang San",
    id_number: "110101199001011234",
    date_of_birth: "19900101",
    issue_date: "20180101",
    expiration_date: "20280101",
    attachments: [
      {
        file_id:
          "https://example-bucket.s3.us-east-1.amazonaws.com/uploads/id_card_front.jpg",
        file_type: "PRC_ID_Emblem",
      },
    ],
    residential_address: address,
  };
  const opts = {
    SubmitMerchantKyc: CoboWaas2.SubmitMerchantKyc.constructFromObject({
      email: "merchant@example.com",
      phone: "+85212345678",
      merchant_type: "B2B",
      country: "HKG",
      industry: ["E-commerce"],
      company_info: {
        company_type: "Corporation",
        listed: false,
        attachments: [
          {
            file_id:
              "https://example-bucket.s3.us-east-1.amazonaws.com/uploads/business_registration.pdf",
            file_type: "BR",
          },
        ],
        operation_address: address,
        identify_no: "12345678",
        company_name: "示例有限公司",
        company_name_en: "Example Limited",
        establish_date: "2020-01-01",
        commencement_date: "2020-01-01",
        valid_period: "2020-01-01",
        register_address: address,
        legal_info: personInfo,
        ubo_infos: [personInfo],
        online_store_url: "https://example.com/store",
      },
    }),
  };
  apiInstance.submitMerchantKyc(merchant_id, opts).then(
    (data) => {
      console.log("API called successfully. Returned data: " + data);
    },
    (error) => {
      console.error(error);
    },
  );

  ```
</RequestExample>


## OpenAPI

````yaml post /payments/merchants/{merchant_id}/kyc
openapi: 3.0.3
info:
  title: Cobo Wallet as a Service 2.0
  description: >
    The Cobo Wallet-as-a-Service (WaaS) 2.0 API is the latest version of Cobo's
    WaaS API offering. It enables you to access Cobo's full suite of crypto
    wallet technologies with powerful and flexible access controls. By
    encapsulating complex security protocols and streamlining blockchain
    interactions, this API allows you to concentrate on your core business
    activities without worrying about the safety of your assets. The WaaS 2.0
    API presents the following key features:


    - A unified API for Cobo's [all four wallet
    types](https://manuals.cobo.com/en/portal/introduction#an-all-in-one-wallet-platform)

    - Support for 80+ chains and 3000+ tokens

    - A comprehensive selection of webhook events

    - Flexible usage models for MPC Wallets, including [Organization-Controlled
    Wallets](https://manuals.cobo.com/en/portal/mpc-wallets/ocw/introduction)
    and [User-Controlled
    Wallets](https://manuals.cobo.com/en/portal/mpc-wallets/ucw/introduction)

    - Programmatic control of smart contract wallets such as Safe{Wallet} with
    fine-grained access controls

    - Seamlessly transfer funds across multiple exchanges, including Binance,
    OKX, Bybit, Deribit, and more


    For more information about the WaaS 2.0 API, see [Introduction to WaaS
    2.0](https://www.cobo.com/developers/v2/guides/overview/introduction).
  termsOfService: https://cobo.com/waas/tos/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  contact:
    name: Cobo WaaS
    url: https://www.cobo.com/waas
    email: help@cobo.com
  version: 1.0.0
servers:
  - url: https://api.dev.cobo.com/v2
    description: Development environment
  - url: https://api.cobo.com/v2
    description: Production environment
security:
  - CoboAuth: []
tags:
  - name: Organizations
    description: Operations related to Organizations.
  - name: Wallets
    description: Operations related to all wallets.
  - name: Wallets - MPC Wallets
    description: Operations related to mpc wallet.
  - name: Wallets - Exchange Wallet
    description: Operations related to exchange wallet.
  - name: Wallets - Smart Contract Wallets
    description: Operations related to smart contract wallet.
  - name: Transactions
    description: Operations related to all transactions.
  - name: Developers - Webhooks
    description: Operations related to webhooks.
  - name: Stakings
    description: Operations related to staking.
  - name: OAuth
    description: Operations related to OAuth.
  - name: Developers
    description: Operations related to developers.
  - name: AddressBooks
    description: Operations related to address books.
  - name: TravelRule
    description: Operations related to travel rule.
  - name: GraphQL
    description: Operations related to executing GraphQL queries and mutations.
  - name: PrimeBroker
    description: Operations related to prime broker.
  - name: AppWorkflows
    description: Operations related to app workflow.
  - name: FeeStation
    description: Operations related to fee station.
  - name: Payment
    description: Operations related to payment.
  - name: Batch Payouts
    description: Operations related to batch payouts.
  - name: Tokenization
    description: Operations related to tokenization.
  - name: AutoSweep
    description: Operations related to auto sweep.
  - name: Compliance
    description: Operations related to compliance.
paths:
  /payments/merchants/{merchant_id}/kyc:
    post:
      tags:
        - Payment
      summary: Submit merchant KYC
      description: >
        This operation submits KYC information for a specified merchant.


        You need to provide the merchant contact information, merchant type,
        country, industry, and company information.


        The merchant ID can be retrieved by calling [List all
        merchants](https://www.cobo.com/developers/v2/api-references/payment/list-all-merchants).
      operationId: submit_merchant_kyc
      parameters:
        - $ref: '#/components/parameters/MerchantIdPathParam'
      requestBody:
        $ref: '#/components/requestBodies/submitMerchantKycBody'
      responses:
        '201':
          $ref: '#/components/responses/submitMerchantKycResponse'
        4XX:
          $ref: '#/components/responses/badRequestError'
        5XX:
          $ref: '#/components/responses/internalServerError'
      security:
        - CoboAuth: []
        - OAuth2:
            - payment_merchant.create
components:
  parameters:
    MerchantIdPathParam:
      name: merchant_id
      in: path
      required: true
      description: The merchant ID.
      schema:
        type: string
      example: M1001
  requestBodies:
    submitMerchantKycBody:
      description: The request body to submit merchant KYC information.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SubmitMerchantKyc'
  responses:
    submitMerchantKycResponse:
      description: The request was successful.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/MerchantKycInfo'
    badRequestError:
      description: >-
        Bad request. Your request contains malformed syntax or invalid
        parameters.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    internalServerError:
      description: Internal server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  schemas:
    SubmitMerchantKyc:
      type: object
      required:
        - email
        - phone
        - merchant_type
        - country
        - industry
        - company_info
      properties:
        email:
          type: string
          description: The merchant email address.
          example: merchant@example.com
        phone:
          type: string
          description: The merchant phone number.
          example: '+85212345678'
        merchant_type:
          $ref: '#/components/schemas/MerchantKycMerchantType'
        country:
          $ref: '#/components/schemas/MerchantKycCountry'
        industry:
          type: array
          description: The industry categories of the merchant.
          items:
            type: string
          example:
            - E-commerce
        company_info:
          $ref: '#/components/schemas/MerchantKycCompanyInfo'
    MerchantKycInfo:
      type: object
      required:
        - kyc_submission_id
        - merchant_id
        - status
      properties:
        kyc_submission_id:
          type: string
          format: uuid
          description: The KYC submission ID.
          example: f47ac10b-58cc-4372-a567-0e02b2c3d479
        merchant_id:
          type: string
          description: The merchant ID.
          example: M1001
        status:
          $ref: '#/components/schemas/MerchantKycStatus'
    ErrorResponse:
      type: object
      description: The response of a failed request.
      required:
        - error_code
        - error_message
        - error_id
      properties:
        error_code:
          type: integer
          description: >-
            The error code. Refer to [Error codes and status
            codes](https://www.cobo.com/developers/v2/api-references/error-codes)
            for more details.
        error_message:
          type: string
          description: The error description.
        error_id:
          type: string
          description: >-
            The error log ID. You can provide the error ID when submitting a
            ticket to help Cobo to locate the issue.
          example: 0b6ddf19083c4bd1a9ca01bec44b24dd
    MerchantKycMerchantType:
      type: string
      enum:
        - B2B
        - B2C
      example: B2B
      description: |
        The merchant type. Possible values include:
        - `B2B`: Business-to-business merchant.
        - `B2C`: Business-to-consumer merchant.
    MerchantKycCountry:
      type: string
      description: The country/region of the merchant, in ISO 3166-1 alpha-3 format.
      example: HKG
    MerchantKycCompanyInfo:
      type: object
      required:
        - company_type
        - listed
        - attachments
        - operation_address
        - identify_no
        - company_name
        - company_name_en
        - establish_date
        - commencement_date
        - valid_period
        - register_address
        - legal_info
        - ubo_infos
      properties:
        company_type:
          $ref: '#/components/schemas/MerchantKycCompanyType'
        listed:
          type: boolean
          description: Whether the company is listed.
          example: false
        attachments:
          type: array
          description: The attachments of the company.
          items:
            $ref: '#/components/schemas/MerchantKycCompanyAttachment'
        operation_address:
          $ref: '#/components/schemas/MerchantKycAddress'
        identify_no:
          type: string
          description: The company identification number.
          example: '12345678'
        company_name:
          type: string
          description: The company name in local language.
          example: 示例有限公司
        company_name_en:
          type: string
          description: The company name in English.
          example: Example Limited
        establish_date:
          type: string
          description: The establishment date of the company.
          example: '2020-01-01'
        commencement_date:
          type: string
          description: The commencement date of the company.
          example: '2020-01-01'
        valid_period:
          type: string
          description: The valid period of the company registration.
          example: '2020-01-01'
        register_address:
          $ref: '#/components/schemas/MerchantKycAddress'
        legal_info:
          $ref: '#/components/schemas/MerchantKycPersonInfo'
        ubo_infos:
          type: array
          description: The ultimate beneficial owner information.
          items:
            $ref: '#/components/schemas/MerchantKycPersonInfo'
        online_store_url:
          type: string
          description: The online store URL. Required when merchant type is B2B.
          example: https://example.com/store
    MerchantKycStatus:
      type: string
      enum:
        - PendingReview
        - Completed
        - Failed
      example: PendingReview
      description: |
        The KYC submission status. Possible values include:
        - `PendingReview`: The KYC submission is pending review.
        - `Completed`: The KYC submission has been completed.
        - `Failed`: The KYC submission has failed.
    MerchantKycCompanyType:
      type: string
      enum:
        - Corporation
        - Partnership
        - IICH
        - Limited Company
        - Others
      example: Corporation
      description: The company type.
    MerchantKycCompanyAttachment:
      type: object
      required:
        - file_id
        - file_type
      properties:
        file_id:
          type: string
          description: >
            The AWS file link of the uploaded file, which you can retrieve by
            calling

            [Upload
            file](https://www.cobo.com/developers/v2/api-references/payment/upload-file).
          example: >-
            https://example-bucket.s3.us-east-1.amazonaws.com/uploads/business_registration.pdf
        file_type:
          $ref: '#/components/schemas/MerchantKycCompanyAttachmentFileType'
    MerchantKycAddress:
      type: object
      required:
        - country
        - state
        - city
        - postcode
        - line1
      properties:
        country:
          type: string
          description: The country.
          example: HK
        state:
          type: string
          description: The state or province.
          example: Hong Kong
        city:
          type: string
          description: The city.
          example: Hong Kong
        postcode:
          type: string
          description: The postal code.
          example: '999077'
        line1:
          type: string
          description: The address line.
          example: 1 Example Street
    MerchantKycPersonInfo:
      type: object
      required:
        - name
        - name_en
        - id_number
        - date_of_birth
        - issue_date
        - expiration_date
        - attachments
        - residential_address
      properties:
        name:
          type: string
          maxLength: 64
          description: The name or title of an identification document.
          example: 张三
        name_en:
          type: string
          maxLength: 64
          description: >-
            The English-language equivalent of the identification document's
            name.
          example: Zhang San
        id_number:
          type: string
          maxLength: 64
          description: >-
            The unique identification number associated with the identification
            document.
          example: '110101199001011234'
        date_of_birth:
          type: string
          maxLength: 64
          description: |
            The date of birth of the individual, usually in the format YYYYMMDD.
          example: '19900101'
        issue_date:
          type: string
          maxLength: 64
          description: >
            The issue date refers to the date when a document, such as an
            identification card or passport,

            was officially issued or granted, usually in the format YYYYMMDD.
          example: '20180101'
        expiration_date:
          type: string
          maxLength: 64
          description: >
            The expiration date refers to the date when a document, such as an
            identification card or passport,

            is no longer valid or legally usable, usually in the format
            YYYYMMDD.
          example: '20280101'
        attachments:
          type: array
          description: >
            Additional files or documents associated with a message or record to
            provide extra information or context.
          items:
            $ref: '#/components/schemas/MerchantKycPersonAttachment'
        residential_address:
          $ref: '#/components/schemas/MerchantKycAddress'
    MerchantKycCompanyAttachmentFileType:
      type: string
      enum:
        - BI
        - BR
        - CI
        - NNC1
        - NAR
        - SSC
        - AOA
        - Other
        - BAP
        - ANNUAL_RETURN
        - PLATFORM_SCREENSHOT
        - BUSINESS_DOCUMENT
      example: BR
      description: The company attachment file type.
    MerchantKycPersonAttachment:
      type: object
      required:
        - file_id
        - file_type
      properties:
        file_id:
          type: string
          description: >
            The AWS file link of the uploaded file, which you can retrieve by
            calling

            [Upload
            file](https://www.cobo.com/developers/v2/api-references/payment/upload-file).
          example: >-
            https://example-bucket.s3.us-east-1.amazonaws.com/uploads/id_card_front.jpg
        file_type:
          $ref: '#/components/schemas/MerchantKycPersonAttachmentFileType'
    MerchantKycPersonAttachmentFileType:
      type: string
      enum:
        - PRC_ID_Emblem
        - PRC_ID_Portrait
        - OIC
        - PP
        - FIC
        - HK_RP
        - HK_MTP
        - HK_PP
        - HK_PID
        - HKM_RP
        - HK/Mac_MTP
        - BACK
      example: PRC_ID_Emblem
      description: The person attachment file type.
  securitySchemes:
    CoboAuth:
      type: apiKey
      in: header
      name: BIZ-API-KEY
      description: >
        The API key. For more details, refer to [API
        key](https://www.cobo.com/developers/v2/guides/overview/cobo-auth#api-key).


        In the API playground, enter your [API
        secret](https://www.cobo.com/developers/v2/guides/overview/cobo-auth#api-secret),
        and your API key will be accordingly calculated.
    OAuth2:
      type: oauth2
      description: >-
        The [Org Access
        Token](https://www.cobo.com/developers/v2/apps/org-access-tokens). Use
        this authorization method only if you are developing Cobo Portal Apps
        for installation and use across different organizations.
      flows:
        authorizationCode:
          authorizationUrl: https://auth.cobo.com/authorize
          tokenUrl: https://auth.cobo.com/oauth/token
          scopes:
            address_book.read: Read address book
            api_key.read: Read API key information
            callback.read: Read callback message
            callback.resend: Resend callback message
            wallet.create: Create wallet
            wallet.read: Read wallet information
            wallet.update: Update wallet information
            wallet.delete: Delete wallet information
            wallet.create_address: Create wallet address
            wallet.manage_utxo: Manage UTXO
            mpc_project.create: Create MPC project
            mpc_project.read: Read MPC project information
            mpc_project.update: Update MPC project information
            mpc_vault.create: Create MPC Vault
            mpc_vault.read: Read MPC Vault information
            mpc_vault.update: Update MPC Vault information
            mpc_key_group.create: Create MPC key group
            mpc_key_group.read: Read MPC key group information
            mpc_key_group.update: Update MPC key group information
            mpc_key_group.delete: Delete MPC key group information
            transaction.read: Read transaction information
            transaction.withdraw: Make withdrawals
            transaction.estimate_fee: Estimate transaction fee
            transaction.contract_call: Initiate contract calls
            transaction.message_sign: Initiate message signings
            transaction.stake: Stake assets
            transaction.unstake: Unstake assets
            transaction.unstake_withdraw: Withdraw unstaked assets
            transaction.manage: Manage ongoing transactions
            transaction.update: Update transaction notes
            travel_rule.read: Read travel rule information
            travel_rule.edit: Edit travel rule information
            webhook.read: Read webhook URLs/events
            webhook.edit: Edit webhook URLs
            webhook.resend: Resend webhook events
            payment_orders_payin.create: Create pay-in order
            payment_orders_payin.read: Read pay-in order information
            payment_orders_payin.update: Update pay-in order
            payment_orders_refund.create: Create payment refund order
            payment_orders_refund.read: Read payment refund order information
            payment_settlement.create: Create payment settlement request
            payment_settlement.read: Read payment settlement request information
            payment_merchant.create: Create payment merchant
            payment_merchant.read: Read payment merchant information
            payment_merchant.update: Update payment merchant
            payment_forced_sweep.create: Create payment force sweep request
            payment_forced_sweep.read: Read payment force sweep request information
            compliance_funds.refund: Refund compliance funds request
            compliance_funds.isolate: Isolate compliance funds request
            compliance_funds.unfreeze: Unfreeze compliance funds request
            compliance_funds.read: Read compliance funds request information
            compliance_kyt_review.update: Update KYT review status
            compliance_kyt_decisions.update: Update KYT decision status
            compliance_kyt_status.read: Read KYT screening status
            compliance_kya_screenings.create: Create KYA address screening requests
            compliance_kya_screenings.read: Read KYA address screening results

````