Skip to main content
GET
/
capabilities
Get service capabilities
curl --request GET \
  --url https://kyc.provider.example/opencharge/capabilities \
  --header 'X-OC-ID: <x-oc-id>' \
  --header 'X-OC-Nonce: <x-oc-nonce>' \
  --header 'X-OC-Signature: <x-oc-signature>' \
  --header 'X-OC-Timestamp: <x-oc-timestamp>'
{
  "ocid": 540,
  "name": "TrustVerify KYC",
  "capabilities": [
    "kyc.grant",
    "kyc.validate",
    "kyc.data"
  ],
  "supported_grants": [
    "name",
    "email",
    "phone",
    "date_of_birth",
    "nationality",
    "address",
    "id_card",
    "passport",
    "driver_license",
    "proof_of_address",
    "liveness",
    "aml"
  ]
}
Unlike /metadata.json, this endpoint is authenticated. Return capabilities specific to the requesting partner.

Implementation

app.get('/capabilities', verifyAuth, async (req, res) => {
  const partnerOcid = req.headers['x-oc-id'];

  // Get partner-specific settings
  const partner = await db.getPartner(partnerOcid);

  if (!partner) {
    return res.status(401).json({
      error: { code: 'UNKNOWN_OCID', message: 'Unknown partner' }
    });
  }

  res.json({
    ocid: YOUR_OCID,
    name: "TrustVerify KYC",
    capabilities: ["kyc.grant", "kyc.validate", "kyc.data"],
    supported_grants: [
      "name",
      "email",
      "phone",
      "date_of_birth",
      "nationality",
      "address",
      "id_card",
      "passport",
      "driver_license",
      "proof_of_address",
      "liveness",
      "aml"
    ]
  });
});

Supported Grants

The supported_grants array tells partners which KYC data types you can provide:
GrantDescription
nameFull legal name
emailVerified email address
phoneVerified phone number
date_of_birthDate of birth
nationalityCountry of citizenship
addressPhysical address
id_cardGovernment-issued ID card
passportPassport document
driver_licenseDriver’s license
proof_of_addressUtility bill, bank statement
livenessSelfie/liveness check
amlAML screening result

Headers

X-OC-ID
string
required

Caller's OCID

X-OC-Timestamp
string
required

Unix timestamp in seconds

X-OC-Nonce
string
required

Unique request identifier

X-OC-Signature
string
required

secp256k1 ECDSA signature

Response

Service capabilities for the authenticated partner

ocid
integer
required
name
string
required
capabilities
string[]
required
supported_grants
enum<string>[]

List of KYC grants this provider supports

Available options:
name,
email,
phone,
date_of_birth,
nationality,
address,
id_card,
passport,
driver_license,
proof_of_address,
liveness,
aml