Validate Card (Zero Auth)
POST
/api/v1/bank/wallet/zeroauth/Bearer TokenValidate a card without charging itAuthentication
Include your API key in the Authorization header. See Authentication for details.
Request fields
| Field | Type | Required | Description |
|---|---|---|---|
wallet_uuid | UUID | Yes | Wallet identifier |
holder_name | string | Yes | Cardholder name as printed on the card |
card_number | string | Yes | Full card number (PAN) |
expiry_month | string | Yes | Two-digit expiry month (01-12) |
expiry_year | string | Yes | Four-digit expiry year |
cvv | string | Yes | Card verification value |
brand | string | Yes | Card brand: visa, mastercard, amex, elo |
Request example
- cURL
- Python
- JavaScript
curl -X POST https://core-manager.a55.tech/api/v1/bank/wallet/zeroauth/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"wallet_uuid":"abc-123","holder_name":"MARIA SILVA",
"card_number":"4111111111111111","expiry_month":"12",
"expiry_year":"2028","cvv":"123","brand":"visa"}'
import requests
resp = requests.post(
"https://core-manager.a55.tech/api/v1/bank/wallet/zeroauth/",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"wallet_uuid": "abc-123", "holder_name": "MARIA SILVA",
"card_number": "4111111111111111", "expiry_month": "12",
"expiry_year": "2028", "cvv": "123", "brand": "visa"},
)
data = resp.json()
if data["is_valid"]:
print("Card is valid - proceed to tokenize")
else:
print(f"Validation failed - code: {data['code']}")
const resp = await fetch("https://core-manager.a55.tech/api/v1/bank/wallet/zeroauth/", {
method: "POST",
headers: { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" },
body: JSON.stringify({ wallet_uuid: "abc-123", holder_name: "MARIA SILVA",
card_number: "4111111111111111", expiry_month: "12",
expiry_year: "2028", cvv: "123", brand: "visa" }),
});
const data = await resp.json();
console.log(data.is_valid ? "Valid" : `Failed: ${data.code}`);
Response examples
- Valid Card
- Invalid Card
- Restricted
{ "is_valid": true, "code": "00", "internal_uuid": "za-001" }
{ "is_valid": false, "code": "57", "internal_uuid": "za-002" }
{ "is_valid": false, "code": "389", "internal_uuid": "za-003" }
Response interpretation
Response codes
| Code | Meaning | Recommended action |
|---|---|---|
00 | Approved | Proceed with tokenization or charge |
05 | Do not honor | Ask cardholder to contact issuing bank |
14 | Invalid card number | Prompt re-entry of card details |
54 | Expired card | Request a valid card |
57 | Transaction not permitted | Card restricted for this type |
62 | Restricted card | Contact issuing bank |
63 | Security violation | Do not retry — flag for review |
N7 | CVV mismatch | Re-enter CVV |
91 | Issuer unavailable | Retry after 30 seconds |
96 | System error | Retry after 30 seconds |
389 | Restricted by issuer | Do not retry |
500 | Internal error | Contact A55 support |
Traceability
Save the internal_uuid from every response — A55 support uses it to trace validation attempts. Combine zero-auth with Tokenization to validate and store a card in one flow.