> For the complete documentation index, see [llms.txt](https://docs.terragon.io/documents/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.terragon.io/documents/terragon-api-document/kyc.md).

# KYC

Know Your Customer verification

## Submit KYC request

> Submit a know-your-customer verification request

```json
{"openapi":"3.0.0","info":{"title":"Terragon API Document","version":"1.0.0"},"tags":[{"name":"KYC","description":"Know Your Customer verification"}],"servers":[{"url":"https://api.terragon.io/player/api","description":"Staging server"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"KycRequest":{"type":"object","properties":{"id":{"type":"integer","description":"KYC request ID"},"player_id":{"type":"integer","description":"Player ID"},"kyc_level_id":{"type":"integer","description":"KYC level ID"},"kyc_level":{"$ref":"#/components/schemas/KycLevel"},"document_type":{"type":"string","enum":["passport","national_id","driving_license"],"description":"Type of identity document"},"front_document_url":{"type":"string","description":"URL to front document image"},"back_document_url":{"type":"string","description":"URL to back document image"},"selfie_document_url":{"type":"string","description":"URL to selfie image"},"rejection_reason":{"type":"string","description":"Reason for rejection"},"status":{"type":"string","enum":["pending","approved","rejected"],"description":"KYC request status"},"created_at":{"type":"string","format":"date-time","description":"KYC request creation timestamp"},"updated_at":{"type":"string","format":"date-time","description":"KYC request last update timestamp"}}},"KycLevel":{"type":"object","properties":{"id":{"type":"integer","description":"KYC level ID"},"name":{"type":"string","description":"KYC level name"},"description":{"type":"string","description":"KYC level description"},"deposit_limit":{"type":"number","format":"float","description":"Deposit limit for this KYC level"},"withdraw_limit":{"type":"number","format":"float","description":"Withdrawal limit for this KYC level"},"is_default":{"type":"boolean","description":"Whether this is the default KYC level"},"required_documents":{"type":"array","items":{"type":"string"},"description":"Required document types"}}},"Error":{"type":"object","properties":{"message":{"type":"string","description":"Error message"}}},"ValidationError":{"type":"object","properties":{"message":{"type":"string","description":"Error message"},"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"description":"Validation errors by field"}}}}},"paths":{"/v1/kyc-requests":{"post":{"tags":["KYC"],"summary":"Submit KYC request","description":"Submit a know-your-customer verification request","operationId":"submitKycRequest","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["kyc_level_id","document_type","front_document"],"properties":{"kyc_level_id":{"type":"integer","description":"KYC level ID"},"document_type":{"type":"string","enum":["passport","national_id","driving_license"],"description":"Type of identity document"},"front_document":{"type":"string","format":"binary","description":"Front side of identity document"},"back_document":{"type":"string","format":"binary","description":"Back side of identity document (if applicable)"},"selfie_document":{"type":"string","format":"binary","description":"Selfie with identity document"},"first_name":{"type":"string","description":"First name"},"last_name":{"type":"string","description":"Last name"},"gender":{"type":"string","enum":["male","female","other"],"description":"Gender"},"nationality":{"type":"string","description":"Nationality"},"address":{"type":"string","description":"Address"},"city_name":{"type":"string","description":"City name"},"country_id":{"type":"integer","description":"Country ID"},"post_code":{"type":"string","description":"Postal code"},"document_number":{"type":"string","description":"Document number"}}}}}},"responses":{"201":{"description":"KYC request submitted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KycRequest"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation errors","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}}}}}}}
```

## Get KYC verification status

> Retrieve the KYC verification status for the current player

```json
{"openapi":"3.0.0","info":{"title":"Terragon API Document","version":"1.0.0"},"tags":[{"name":"KYC","description":"Know Your Customer verification"}],"servers":[{"url":"https://api.terragon.io/player/api","description":"Staging server"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"KycRequest":{"type":"object","properties":{"id":{"type":"integer","description":"KYC request ID"},"player_id":{"type":"integer","description":"Player ID"},"kyc_level_id":{"type":"integer","description":"KYC level ID"},"kyc_level":{"$ref":"#/components/schemas/KycLevel"},"document_type":{"type":"string","enum":["passport","national_id","driving_license"],"description":"Type of identity document"},"front_document_url":{"type":"string","description":"URL to front document image"},"back_document_url":{"type":"string","description":"URL to back document image"},"selfie_document_url":{"type":"string","description":"URL to selfie image"},"rejection_reason":{"type":"string","description":"Reason for rejection"},"status":{"type":"string","enum":["pending","approved","rejected"],"description":"KYC request status"},"created_at":{"type":"string","format":"date-time","description":"KYC request creation timestamp"},"updated_at":{"type":"string","format":"date-time","description":"KYC request last update timestamp"}}},"KycLevel":{"type":"object","properties":{"id":{"type":"integer","description":"KYC level ID"},"name":{"type":"string","description":"KYC level name"},"description":{"type":"string","description":"KYC level description"},"deposit_limit":{"type":"number","format":"float","description":"Deposit limit for this KYC level"},"withdraw_limit":{"type":"number","format":"float","description":"Withdrawal limit for this KYC level"},"is_default":{"type":"boolean","description":"Whether this is the default KYC level"},"required_documents":{"type":"array","items":{"type":"string"},"description":"Required document types"}}},"Error":{"type":"object","properties":{"message":{"type":"string","description":"Error message"}}}}},"paths":{"/v1/kyc-requests/verification":{"get":{"tags":["KYC"],"summary":"Get KYC verification status","description":"Retrieve the KYC verification status for the current player","operationId":"getKycVerificationStatus","responses":{"200":{"description":"KYC verification status retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KycRequest"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Get latest KYC request

> Retrieve the latest KYC request for the current player

```json
{"openapi":"3.0.0","info":{"title":"Terragon API Document","version":"1.0.0"},"tags":[{"name":"KYC","description":"Know Your Customer verification"}],"servers":[{"url":"https://api.terragon.io/player/api","description":"Staging server"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"KycRequest":{"type":"object","properties":{"id":{"type":"integer","description":"KYC request ID"},"player_id":{"type":"integer","description":"Player ID"},"kyc_level_id":{"type":"integer","description":"KYC level ID"},"kyc_level":{"$ref":"#/components/schemas/KycLevel"},"document_type":{"type":"string","enum":["passport","national_id","driving_license"],"description":"Type of identity document"},"front_document_url":{"type":"string","description":"URL to front document image"},"back_document_url":{"type":"string","description":"URL to back document image"},"selfie_document_url":{"type":"string","description":"URL to selfie image"},"rejection_reason":{"type":"string","description":"Reason for rejection"},"status":{"type":"string","enum":["pending","approved","rejected"],"description":"KYC request status"},"created_at":{"type":"string","format":"date-time","description":"KYC request creation timestamp"},"updated_at":{"type":"string","format":"date-time","description":"KYC request last update timestamp"}}},"KycLevel":{"type":"object","properties":{"id":{"type":"integer","description":"KYC level ID"},"name":{"type":"string","description":"KYC level name"},"description":{"type":"string","description":"KYC level description"},"deposit_limit":{"type":"number","format":"float","description":"Deposit limit for this KYC level"},"withdraw_limit":{"type":"number","format":"float","description":"Withdrawal limit for this KYC level"},"is_default":{"type":"boolean","description":"Whether this is the default KYC level"},"required_documents":{"type":"array","items":{"type":"string"},"description":"Required document types"}}},"Error":{"type":"object","properties":{"message":{"type":"string","description":"Error message"}}}}},"paths":{"/v1/kyc-requests/latest":{"get":{"tags":["KYC"],"summary":"Get latest KYC request","description":"Retrieve the latest KYC request for the current player","operationId":"getLatestKycRequest","responses":{"200":{"description":"Latest KYC request retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KycRequest"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No KYC request found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Resubmit rejected KYC request

> Resubmit a previously rejected KYC request with updated documents

```json
{"openapi":"3.0.0","info":{"title":"Terragon API Document","version":"1.0.0"},"tags":[{"name":"KYC","description":"Know Your Customer verification"}],"servers":[{"url":"https://api.terragon.io/player/api","description":"Staging server"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"KycRequest":{"type":"object","properties":{"id":{"type":"integer","description":"KYC request ID"},"player_id":{"type":"integer","description":"Player ID"},"kyc_level_id":{"type":"integer","description":"KYC level ID"},"kyc_level":{"$ref":"#/components/schemas/KycLevel"},"document_type":{"type":"string","enum":["passport","national_id","driving_license"],"description":"Type of identity document"},"front_document_url":{"type":"string","description":"URL to front document image"},"back_document_url":{"type":"string","description":"URL to back document image"},"selfie_document_url":{"type":"string","description":"URL to selfie image"},"rejection_reason":{"type":"string","description":"Reason for rejection"},"status":{"type":"string","enum":["pending","approved","rejected"],"description":"KYC request status"},"created_at":{"type":"string","format":"date-time","description":"KYC request creation timestamp"},"updated_at":{"type":"string","format":"date-time","description":"KYC request last update timestamp"}}},"KycLevel":{"type":"object","properties":{"id":{"type":"integer","description":"KYC level ID"},"name":{"type":"string","description":"KYC level name"},"description":{"type":"string","description":"KYC level description"},"deposit_limit":{"type":"number","format":"float","description":"Deposit limit for this KYC level"},"withdraw_limit":{"type":"number","format":"float","description":"Withdrawal limit for this KYC level"},"is_default":{"type":"boolean","description":"Whether this is the default KYC level"},"required_documents":{"type":"array","items":{"type":"string"},"description":"Required document types"}}},"Error":{"type":"object","properties":{"message":{"type":"string","description":"Error message"}}},"ValidationError":{"type":"object","properties":{"message":{"type":"string","description":"Error message"},"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"description":"Validation errors by field"}}}}},"paths":{"/v1/kyc-requests/{id}/resubmit":{"post":{"tags":["KYC"],"summary":"Resubmit rejected KYC request","description":"Resubmit a previously rejected KYC request with updated documents","operationId":"resubmitKycRequest","parameters":[{"name":"id","in":"path","required":true,"description":"KYC request ID","schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["front_document"],"properties":{"document_type":{"type":"string","enum":["passport","national_id","driving_license"],"description":"Type of identity document"},"front_document":{"type":"string","format":"binary","description":"Front side of identity document"},"back_document":{"type":"string","format":"binary","description":"Back side of identity document (if applicable)"},"selfie_document":{"type":"string","format":"binary","description":"Selfie with identity document"}}}}}},"responses":{"200":{"description":"KYC request resubmitted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KycRequest"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"KYC request not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation errors","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}}}}}}}
```

## Get KYC document types

> Retrieve available document types for KYC verification

```json
{"openapi":"3.0.0","info":{"title":"Terragon API Document","version":"1.0.0"},"tags":[{"name":"KYC","description":"Know Your Customer verification"}],"servers":[{"url":"https://api.terragon.io/player/api","description":"Staging server"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"Error":{"type":"object","properties":{"message":{"type":"string","description":"Error message"}}}}},"paths":{"/v1/kyc-requests/document-types":{"get":{"tags":["KYC"],"summary":"Get KYC document types","description":"Retrieve available document types for KYC verification","operationId":"getKycDocumentTypes","responses":{"200":{"description":"Document types retrieved successfully","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Document type ID"},"name":{"type":"string","description":"Document type name"},"requires_back":{"type":"boolean","description":"Whether the document requires a back side image"}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Get KYC levels

> Retrieve available KYC levels

```json
{"openapi":"3.0.0","info":{"title":"Terragon API Document","version":"1.0.0"},"tags":[{"name":"KYC","description":"Know Your Customer verification"}],"servers":[{"url":"https://api.terragon.io/player/api","description":"Staging server"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"KycLevel":{"type":"object","properties":{"id":{"type":"integer","description":"KYC level ID"},"name":{"type":"string","description":"KYC level name"},"description":{"type":"string","description":"KYC level description"},"deposit_limit":{"type":"number","format":"float","description":"Deposit limit for this KYC level"},"withdraw_limit":{"type":"number","format":"float","description":"Withdrawal limit for this KYC level"},"is_default":{"type":"boolean","description":"Whether this is the default KYC level"},"required_documents":{"type":"array","items":{"type":"string"},"description":"Required document types"}}},"Error":{"type":"object","properties":{"message":{"type":"string","description":"Error message"}}}}},"paths":{"/v1/kyc-levels":{"get":{"tags":["KYC"],"summary":"Get KYC levels","description":"Retrieve available KYC levels","operationId":"getKycLevels","responses":{"200":{"description":"KYC levels retrieved successfully","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/KycLevel"}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```
