GEThttps://api.veriko.mx/v1/public/bin-lookup/{bin}

Get the bank of a card

Audience
public

Resolves the issuing bank of a payment card from its BIN (Bank Identification Number).

Accepts 6 to 16 digits, although only the leading 6-8 are used. The BIN returned in the response is the prefix that matched in the lookup, along with the banking institution's information.

The returned banxico_code is the 5-digit code that identifies each banking institution participating in SPEI.

Parameters
ParameterInTypeRequiredDescription
bin*pathstringrequired

BIN or card number (6 to 16 digits). Only the leading 6-8 are used.

e.g. 45320151
Request
curl -X GET 'https://api.veriko.mx/v1/public/bin-lookup/{bin}'
import requests

bin = "424242"
response = requests.get(f"https://api.veriko.mx/v1/public/bin-lookup/{bin}")
print(response.json())
const bin = "424242";

fetch(`https://api.veriko.mx/v1/public/bin-lookup/${bin}`)
  .then(response => response.json())
  .then(data => console.log(data));
<?php

$bin = "424242";
$ch = curl_init("https://api.veriko.mx/v1/public/bin-lookup/$bin");

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

echo $response;
Response 200BinLookupResponse — BIN information: issuing bank and metadata.
FieldTypeDescription
dataobject

Main response payload. Shape varies by endpoint (object, array, or JSON:API envelope with type, id, attributes).

type*string

API resource type (bin_lookup by default).

e.g. bin_lookup
id*string

The 6-8 digit BIN that matched in the lookup.

e.g. 45320151
attributes*object

Attributes of the BIN and the associated bank.

bin*string

The 6-8 digit BIN that matched in the lookup (same value as id).

e.g. 45320151
bank_name*string

Name of the bank registered for that BIN.

e.g. BBVA MEXICO
banxico_code*string | nullnullable

5-digit code of the banking institution in the SPEI system, or null when the bank is not a SPEI participant (e.g. Amex).

e.g. 40012
card_brandstring | nullnullable

Card network (VISA, MASTERCARD, …), or null when unknown.

e.g. VISA
card_typestring | nullnullable

Card type (CREDIT, DEBIT, PREPAID, …), or null when unknown.

e.g. CREDIT
card_levelstring | nullnullable

Card level (GOLD, PLATINUM, …), or null when unknown.

e.g. GOLD
country_iso*string

Issuing country code (in ISO-3166 alpha-2).

e.g. MX
metaobject

Response metadata including API version, route prefix, unique request identifier, and the server timestamp in UTC.

versionstring

API version that processed the request.

e.g. 1.47.0
api_versionstring

API route prefix version (e.g. v1).

e.g. v1
request_idstring

Unique request identifier (hex).

e.g. a1b2c3d4e5f66f5e4d3c2b1a
datetimeobject

Companion descriptor present in the meta block of every response (and in the meta of outgoing webhook bodies). Lets clients assert the timezone contract without re-reading the spec.

e.g. {"timezone":"UTC","format":"ISO 8601"}
timezone*string

Always UTC: The canonical timezone for every datetime field in the body.

e.g. UTC
format*string

Always ISO 8601: Explicit Z suffix on every datetime.

e.g. ISO 8601
linksobject

Pagination or related links, present only when the endpoint returns a paginated collection.

Response status codesGET /v1/public/bin-lookup/{bin}
StatusClassDescriptionBody
2002xxBIN information: issuing bank and metadata.BinLookupResponse
4044xxThe resource does not exist or is not visible to the clientError
4224xxRequest validation failed.ErrorResponse
4294xxRate limit exceededErrorResponse
Errors from GET /v1/public/bin-lookup/{bin}
StatusCodeExample
422validation_error

The fecha field is required.

Envelope
source.pointer
/data/attributes/fecha
meta.request_id
e6f7a8b9c0d11d0c9b8a7f6e
429rate_limit_exceeded

Rate limit exceeded. Try again in 45 seconds.

Envelope
meta.request_id
f7a8b9c0d1e22e1d0c9b8a7f
Response headers
  • Retry-After: integer — Seconds to wait before retrying. Matches the endpoint's rate-limit window (typically 60s for list endpoints, 1-5s for in-flight idempotent operations).
  • X-RateLimit-Limit: integer — Configured request cap for this bucket. It is emitted on every 429 and, on the authenticated API, also on successful responses, where it is the per-key cap of the account plan.
  • X-RateLimit-Remaining: integer — Requests remaining in the current window. Always 0 at the moment of the 429; on a successful response of the authenticated API it is what is left of the per-key cap.
  • X-RateLimit-Reset: integer — Absolute Unix epoch (seconds) when the window resets. Emitted on every 429, alongside Retry-After, and on successful responses of the authenticated API. Per-endpoint overrides exist (e.g. `rate_limited_login`).