CoinList Requirements API
The Requirements API from CoinList — 2 operation(s) for requirements.
The Requirements API from CoinList — 2 operation(s) for requirements.
openapi: 3.0.0
info:
title: Frontline DocumentSubmissions Requirements API
version: 0.1.0
servers:
- url: https://api.coinlist.co
variables: {}
security: []
tags:
- name: Requirements
paths:
/v1/offers/{offer_id}/requirements:
get:
callbacks: {}
operationId: listOfferRequirements
parameters:
- description: The offer ID
in: path
name: offer_id
required: true
schema:
type: string
x-struct: null
x-validate: null
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/OfferRequirements'
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Error response.
security:
- OAuth2: []
summary: List requirements for all options of an offer
tags:
- Requirements
/v1/offers/{offer_id}/requirements/statuses:
get:
callbacks: {}
operationId: listOfferRequirementStatuses
parameters:
- description: The offer ID
in: path
name: offer_id
required: true
schema:
type: string
x-struct: null
x-validate: null
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RequirementStatuses'
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Error response.
security:
- OAuth2: []
summary: List requirement statuses for all options of an offer
tags:
- Requirements
components:
schemas:
OptionRequirementJurisdictionDetails:
properties:
filter_type:
description: The type of filter
enum:
- allow
- reject
example: allow
type: string
x-struct: null
x-validate: null
filters:
description: List of jurisdiction filters
items:
$ref: '#/components/schemas/OptionRequirementJurisdictionFilter'
type: array
x-struct: null
x-validate: null
required:
- filter_type
- filters
title: OptionRequirementJurisdictionDetails
type: object
x-struct: Elixir.FrontlineAPIWeb.OpenApi.Schemas.OptionRequirement.JurisdictionDetails
x-validate: null
OptionRequirement:
properties:
details:
description: 'Requirement-specific details.
Null for kyc_approved, accreditation, identity_verified,
proof_of_address, and source_of_funds types.
ExternalWalletDetails for external_wallet type.
WhitelistedWalletDetails for whitelisted_wallet type.
JurisdictionDetails for jurisdiction type.
DocumentDetails for document type.
'
nullable: true
oneOf:
- $ref: '#/components/schemas/OptionRequirementExternalWalletDetails'
- $ref: '#/components/schemas/OptionRequirementWhitelistedWalletDetails'
- $ref: '#/components/schemas/OptionRequirementJurisdictionDetails'
- $ref: '#/components/schemas/OptionRequirementDocumentDetails'
x-struct: null
x-validate: null
id:
description: Unique identifier for the object.
example: 05edea81-98a7-4582-aa7c-040d57cb1858
type: string
x-struct: null
x-validate: null
object:
description: String representing the object's type. Objects of the same type share the same value.
enum:
- requirement
type: string
x-struct: null
x-validate: null
type:
description: The requirement type
enum:
- kyc_approved
- identity_verified
- proof_of_address
- source_of_funds
- external_wallet
- whitelisted_wallet
- jurisdiction
- accreditation
- document
example: kyc_approved
type: string
x-struct: null
x-validate: null
required:
- object
- id
- type
title: OptionRequirement
type: object
x-struct: Elixir.FrontlineAPIWeb.OpenApi.Schemas.OptionRequirement
x-validate: null
OptionRequirementDocumentDetails:
properties:
document_type:
description: The type of document the user must sign
enum:
- tax_certification
example: tax_certification
type: string
x-struct: null
x-validate: null
required:
- document_type
title: OptionRequirementDocumentDetails
type: object
x-struct: Elixir.FrontlineAPIWeb.OpenApi.Schemas.OptionRequirement.DocumentDetails
x-validate: null
OptionRequirementWhitelistedWalletDetails:
properties:
max_wallets:
description: Maximum number of whitelisted wallets a user may connect for this option
example: 1
type: integer
x-struct: null
x-validate: null
required:
- max_wallets
title: OptionRequirementWhitelistedWalletDetails
type: object
x-struct: Elixir.FrontlineAPIWeb.OpenApi.Schemas.OptionRequirement.WhitelistedWalletDetails
x-validate: null
OptionRequirementExternalWalletDetails:
properties:
protocol:
description: The blockchain protocol
example: ethereum
type: string
x-struct: null
x-validate: null
required:
- protocol
title: OptionRequirementExternalWalletDetails
type: object
x-struct: Elixir.FrontlineAPIWeb.OpenApi.Schemas.OptionRequirement.ExternalWalletDetails
x-validate: null
Error:
additionalProperties: false
properties:
code:
description: A human-readable message providing more details about the error.
type: string
x-struct: null
x-validate: null
errors:
additionalProperties:
items:
type: string
x-struct: null
x-validate: null
type: array
x-struct: null
x-validate: null
type: object
x-struct: null
x-validate: null
event_id:
description: The unique identifier for the error event. This is useful for tracking and debugging.
type: string
x-struct: null
x-validate: null
message:
description: For some errors that could be handled programmatically, a short string indicating the error code reported.
type: string
x-struct: null
x-validate: null
type:
description: The type of error returned. One of `api_error`, `invalid_request_error`
enum:
- api_error
- invalid_request_error
type: string
x-struct: null
x-validate: null
required:
- type
- message
title: Error
type: object
x-struct: Elixir.FrontlineAPIWeb.OpenApi.Schemas.ApiError
x-validate: null
RequirementStatuses:
properties:
object:
description: String representing the object's type. Objects of the same type share the same value.
enum:
- requirement_statuses
type: string
x-struct: null
x-validate: null
offer_id:
description: The offer ID
type: string
x-struct: null
x-validate: null
statuses:
additionalProperties:
anyOf:
- enum:
- not_started
- in_progress
- action_needed
- completed
- rejected
type: string
x-struct: null
x-validate: null
- description: 'Object form, used when the status carries extra data: the action-needed reason and/or the Sumsub flow that resolves the requirement (kyc_level + kyc_reset, to be sent to the kyc-token endpoint as-is).'
properties:
action:
enum:
- kyc_not_verified
- update_pii_data
type: string
x-struct: null
x-validate: null
kyc_level:
description: The Sumsub verification level that resolves this requirement
enum:
- Sorting_KYC_Level
- BasicKYCLevel
- AccreditationIndividual_FullVerification
type: string
x-struct: null
x-validate: null
kyc_reset:
description: Whether the Sumsub applicant must be reset before starting the flow (redoing an already-approved level, e.g. to update stale PII)
type: boolean
x-struct: null
x-validate: null
status:
enum:
- not_started
- in_progress
- action_needed
- completed
- rejected
type: string
x-struct: null
x-validate: null
required:
- status
type: object
x-struct: null
x-validate: null
x-struct: null
x-validate: null
description: Map of requirement ID to status
type: object
x-struct: null
x-validate: null
required:
- object
- offer_id
- statuses
title: RequirementStatuses
type: object
x-struct: Elixir.FrontlineAPIWeb.OpenApi.Schemas.RequirementStatuses
x-validate: null
OfferRequirements:
properties:
object:
description: String representing the object's type. Objects of the same type share the same value.
enum:
- offer_requirements
type: string
x-struct: null
x-validate: null
offer_id:
description: The offer ID
type: string
x-struct: null
x-validate: null
options:
additionalProperties:
properties:
data:
items:
$ref: '#/components/schemas/OptionRequirement'
type: array
x-struct: null
x-validate: null
object:
description: String representing the object's type. Objects of the same type share the same value.
enum:
- list
type: string
x-struct: null
x-validate: null
required:
- object
- data
type: object
x-struct: null
x-validate: null
description: Map of option ID to list of requirements for that option
type: object
x-struct: null
x-validate: null
required:
- object
- offer_id
- options
title: OfferRequirements
type: object
x-struct: Elixir.FrontlineAPIWeb.OpenApi.Schemas.OfferRequirements
x-validate: null
OptionRequirementJurisdictionFilter:
properties:
country_iso_2:
description: The ISO 3166-1 alpha-2 country code
example: US
type: string
x-struct: null
x-validate: null
regions:
description: List of region codes for the country
example:
- CA
- NY
items:
type: string
x-struct: null
x-validate: null
type: array
x-struct: null
x-validate: null
required:
- country_iso_2
title: OptionRequirementJurisdictionFilter
type: object
x-struct: Elixir.FrontlineAPIWeb.OpenApi.Schemas.OptionRequirement.JurisdictionFilter
x-validate: null
securitySchemes:
OAuth2:
description: OAuth 2.0 authorization and token endpoints
flows:
authorizationCode:
authorizationUrl: /oauth/authorize
refreshUrl: /oauth/token
scopes: {}
tokenUrl: /oauth/token
clientCredentials:
refreshUrl: /oauth/token
scopes: {}
tokenUrl: /oauth/token
type: oauth2
TokenAuth:
description: Session token for user authentication during OAuth authorization
scheme: bearer
type: http