curl -X POST 'https://crypto-api.yativo.com/api/v1/yativo-card/onboard' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"email": "you@example.com"}'
const response = await fetch(
'https://crypto-api.yativo.com/api/v1/yativo-card/onboard',
{
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({ email: 'you@example.com' }),
}
);
const { data } = await response.json();
// data.yativo_card_id — save this for all subsequent calls
{
"success": true,
"message": "Card onboarding initiated. Check your email for verification code.",
"data": {
"yativo_card_id": "yativo_card_0xAbCd1234EfGh5678IjKl9012_1769031332068",
"email_masked": "yo***@example.com",
"next_step": "verify_otp",
"otp_expires_in_seconds": 600
}
}
{
"success": false,
"error_code": "INVALID_EMAIL",
"message": "Valid email is required"
}
{
"success": false,
"error_code": "CARD_ALREADY_ACTIVE",
"message": "Card onboarding already in progress",
"data": {
"yativo_card_id": "yativo_card_0xAbCd1234EfGh5678IjKl9012_1769031332068",
"flow_status": "otp_requested",
"next_step": "verify_otp"
}
}
{
"success": false,
"error_code": "JWT_EXPIRED",
"message": "Session expired. Please re-authenticate.",
"data": {
"yativo_card_id": "yativo_card_0xAbCd1234EfGh5678IjKl9012_1769031332068",
"needs_reauth": true,
"flow_status": "kyc_initiated"
}
}
Yativo Card (Own Account)
Start Card Onboarding
Initiate Yativo Card onboarding for your own account. Generates a wallet, authenticates with the card provider, and sends an OTP to your email.
POST
/
v1
/
yativo-card
/
onboard
curl -X POST 'https://crypto-api.yativo.com/api/v1/yativo-card/onboard' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"email": "you@example.com"}'
const response = await fetch(
'https://crypto-api.yativo.com/api/v1/yativo-card/onboard',
{
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({ email: 'you@example.com' }),
}
);
const { data } = await response.json();
// data.yativo_card_id — save this for all subsequent calls
{
"success": true,
"message": "Card onboarding initiated. Check your email for verification code.",
"data": {
"yativo_card_id": "yativo_card_0xAbCd1234EfGh5678IjKl9012_1769031332068",
"email_masked": "yo***@example.com",
"next_step": "verify_otp",
"otp_expires_in_seconds": 600
}
}
{
"success": false,
"error_code": "INVALID_EMAIL",
"message": "Valid email is required"
}
{
"success": false,
"error_code": "CARD_ALREADY_ACTIVE",
"message": "Card onboarding already in progress",
"data": {
"yativo_card_id": "yativo_card_0xAbCd1234EfGh5678IjKl9012_1769031332068",
"flow_status": "otp_requested",
"next_step": "verify_otp"
}
}
{
"success": false,
"error_code": "JWT_EXPIRED",
"message": "Session expired. Please re-authenticate.",
"data": {
"yativo_card_id": "yativo_card_0xAbCd1234EfGh5678IjKl9012_1769031332068",
"needs_reauth": true,
"flow_status": "kyc_initiated"
}
}
string
required
Bearer token:
Bearer YOUR_ACCESS_TOKENstring
required
Your email address. Yativo sends a one-time verification code here. Must not already be in use by an active card session under your account.
curl -X POST 'https://crypto-api.yativo.com/api/v1/yativo-card/onboard' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"email": "you@example.com"}'
const response = await fetch(
'https://crypto-api.yativo.com/api/v1/yativo-card/onboard',
{
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({ email: 'you@example.com' }),
}
);
const { data } = await response.json();
// data.yativo_card_id — save this for all subsequent calls
{
"success": true,
"message": "Card onboarding initiated. Check your email for verification code.",
"data": {
"yativo_card_id": "yativo_card_0xAbCd1234EfGh5678IjKl9012_1769031332068",
"email_masked": "yo***@example.com",
"next_step": "verify_otp",
"otp_expires_in_seconds": 600
}
}
{
"success": false,
"error_code": "INVALID_EMAIL",
"message": "Valid email is required"
}
{
"success": false,
"error_code": "CARD_ALREADY_ACTIVE",
"message": "Card onboarding already in progress",
"data": {
"yativo_card_id": "yativo_card_0xAbCd1234EfGh5678IjKl9012_1769031332068",
"flow_status": "otp_requested",
"next_step": "verify_otp"
}
}
{
"success": false,
"error_code": "JWT_EXPIRED",
"message": "Session expired. Please re-authenticate.",
"data": {
"yativo_card_id": "yativo_card_0xAbCd1234EfGh5678IjKl9012_1769031332068",
"needs_reauth": true,
"flow_status": "kyc_initiated"
}
}
Next Steps
After a201 response, check your email for the OTP and continue:
- Verify OTP —
POST /v1/yativo-card/{yativoCardId}/verify-otp - Get KYC link —
GET /v1/yativo-card/{yativoCardId}/kyc-link - Poll KYC status —
GET /v1/yativo-card/{yativoCardId}/kyc-status - Deploy card wallet —
POST /v1/yativo-card/{yativoCardId}/safe/deploy - Create virtual card —
POST /v1/yativo-card/{yativoCardId}/cards/virtual

