Coinbax API

compliance

View as Markdown

Create a new verification request

POST/api/v1/api/v1/compliance/verificationsX-API-Key

Request body

  • userIdstringrequired

    User ID to verify

  • typeenumrequired"identity" · "document" · "address" · "phone" · "email"

    Type of verification to perform

  • metadataobject

    Additional metadata for verification

    object

    Additional metadata for verification

Responses

201Verification created successfully
  • idstringrequired
  • platformIdstringrequired
  • userIdstringrequired
  • typeenumrequired"identity" · "document" · "address" · "phone" · "email"
  • statusenumrequired"pending" · "in_progress" · "approved" · "rejected" · "needs_review" · "expired"
  • levelenumrequired"none" · "basic" · "intermediate" · "advanced"
  • riskRatingenum"low" · "medium" · "high" · "very_high"
  • providerobject
    object
  • externalInquiryIdobject
    object
  • externalSessionTokenobject
    object
  • metadataobject
    object
  • rejectionReasonobject
    object
  • verifiedAtobject
    object
  • expiresAtobject
    object
  • createdAtstring (date-time)required
  • updatedAtstring (date-time)required
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "platformId": "550e8400-e29b-41d4-a716-446655440001",
  "userId": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
  "type": "identity",
  "status": "approved",
  "level": "basic",
  "riskRating": "low",
  "provider": "persona",
  "externalInquiryId": "inq_ABC123",
  "externalSessionToken": "session_token_xyz",
  "metadata": {
    "email": "user@example.com",
    "country": "US"
  },
  "rejectionReason": null,
  "verifiedAt": "2024-01-15T10:30:00Z",
  "expiresAt": "2025-01-15T10:30:00Z",
  "createdAt": "2024-01-15T10:00:00Z",
  "updatedAt": "2024-01-15T10:30:00Z"
}
400Invalid request data

Response follows the unified success / data / meta / error envelope.

401Invalid or missing API key

Response follows the unified success / data / meta / error envelope.

curl -X POST https://api-staging.coinbax.com/api/v1/api/v1/compliance/verifications \
  -H "X-API-Key: $COINBAX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "userId": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
  "type": "identity",
  "metadata": {
    "email": "user@example.com",
    "country": "US"
  }
}'
const response = await fetch('https://api-staging.coinbax.com/api/v1/api/v1/compliance/verifications', {
  method: 'POST',
  headers: {
    'X-API-Key': process.env.COINBAX_API_KEY,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "userId": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
    "type": "identity",
    "metadata": {
      "email": "user@example.com",
      "country": "US"
    }
  }),
});
const result = await response.json();

Check verification status

POST/api/v1/api/v1/compliance/verifications/checkX-API-Key

Request body

  • userIdstringrequired

    User ID to check verification status

  • typeenumrequired"identity" · "document" · "address" · "phone" · "email"

    Type of verification to check

Responses

200Verification status retrieved
  • idstringrequired
  • platformIdstringrequired
  • userIdstringrequired
  • typeenumrequired"identity" · "document" · "address" · "phone" · "email"
  • statusenumrequired"pending" · "in_progress" · "approved" · "rejected" · "needs_review" · "expired"
  • levelenumrequired"none" · "basic" · "intermediate" · "advanced"
  • riskRatingenum"low" · "medium" · "high" · "very_high"
  • providerobject
    object
  • externalInquiryIdobject
    object
  • externalSessionTokenobject
    object
  • metadataobject
    object
  • rejectionReasonobject
    object
  • verifiedAtobject
    object
  • expiresAtobject
    object
  • createdAtstring (date-time)required
  • updatedAtstring (date-time)required
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "platformId": "550e8400-e29b-41d4-a716-446655440001",
  "userId": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
  "type": "identity",
  "status": "approved",
  "level": "basic",
  "riskRating": "low",
  "provider": "persona",
  "externalInquiryId": "inq_ABC123",
  "externalSessionToken": "session_token_xyz",
  "metadata": {
    "email": "user@example.com",
    "country": "US"
  },
  "rejectionReason": null,
  "verifiedAt": "2024-01-15T10:30:00Z",
  "expiresAt": "2025-01-15T10:30:00Z",
  "createdAt": "2024-01-15T10:00:00Z",
  "updatedAt": "2024-01-15T10:30:00Z"
}
404Verification not found

Response follows the unified success / data / meta / error envelope.

curl -X POST https://api-staging.coinbax.com/api/v1/api/v1/compliance/verifications/check \
  -H "X-API-Key: $COINBAX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "userId": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
  "type": "identity"
}'
const response = await fetch('https://api-staging.coinbax.com/api/v1/api/v1/compliance/verifications/check', {
  method: 'POST',
  headers: {
    'X-API-Key': process.env.COINBAX_API_KEY,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "userId": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
    "type": "identity"
  }),
});
const result = await response.json();

Get verification by ID

GET/api/v1/api/v1/compliance/verifications/{id}X-API-Key

Path parameters

  • idstringrequired

Responses

200Verification found
  • idstringrequired
  • platformIdstringrequired
  • userIdstringrequired
  • typeenumrequired"identity" · "document" · "address" · "phone" · "email"
  • statusenumrequired"pending" · "in_progress" · "approved" · "rejected" · "needs_review" · "expired"
  • levelenumrequired"none" · "basic" · "intermediate" · "advanced"
  • riskRatingenum"low" · "medium" · "high" · "very_high"
  • providerobject
    object
  • externalInquiryIdobject
    object
  • externalSessionTokenobject
    object
  • metadataobject
    object
  • rejectionReasonobject
    object
  • verifiedAtobject
    object
  • expiresAtobject
    object
  • createdAtstring (date-time)required
  • updatedAtstring (date-time)required
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "platformId": "550e8400-e29b-41d4-a716-446655440001",
  "userId": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
  "type": "identity",
  "status": "approved",
  "level": "basic",
  "riskRating": "low",
  "provider": "persona",
  "externalInquiryId": "inq_ABC123",
  "externalSessionToken": "session_token_xyz",
  "metadata": {
    "email": "user@example.com",
    "country": "US"
  },
  "rejectionReason": null,
  "verifiedAt": "2024-01-15T10:30:00Z",
  "expiresAt": "2025-01-15T10:30:00Z",
  "createdAt": "2024-01-15T10:00:00Z",
  "updatedAt": "2024-01-15T10:30:00Z"
}
404Verification not found

Response follows the unified success / data / meta / error envelope.

curl https://api-staging.coinbax.com/api/v1/api/v1/compliance/verifications/<id> \
  -H "X-API-Key: $COINBAX_API_KEY"
const response = await fetch('https://api-staging.coinbax.com/api/v1/api/v1/compliance/verifications/<id>', {
  headers: {
    'X-API-Key': process.env.COINBAX_API_KEY,
  },
});
const result = await response.json();

Webhook endpoint for Persona verification updates

POST/api/v1/api/v1/compliance/webhooks/personaX-API-Key

Responses

200Webhook processed successfully

Response follows the unified success / data / meta / error envelope.

curl -X POST https://api-staging.coinbax.com/api/v1/api/v1/compliance/webhooks/persona \
  -H "X-API-Key: $COINBAX_API_KEY"
const response = await fetch('https://api-staging.coinbax.com/api/v1/api/v1/compliance/webhooks/persona', {
  method: 'POST',
  headers: {
    'X-API-Key': process.env.COINBAX_API_KEY,
  },
});
const result = await response.json();