Constaia
Guías por caso

Documentos de EE. UU.

Los tipos de documento de Estados Unidos del catálogo de Constaia, la lectura del código PDF417 (AAMVA) de permisos de conducir, las listas del formulario I-9 y la validación de SSN, EIN y otros identificadores.

El catálogo de Constaia incluye 31 tipos específicos de Estados Unidos (y 5 de Canadá) además de los universales, como el pasaporte ICAO. Se usan igual que cualquier otro: pásalos en expect y recibes un verdict con sus motivos, los campos extraídos y las comprobaciones deterministas de cada tipo.

Tipos de EE. UU. del catálogo (público, sin clave)
curl -s 'https://api.constaia.com/v1/document-types?country=USA&strict=true&language=es' \
  | jq -r '.data[] | "\(.type)\t\(.label)"'

Sin strict=true la lista incluye también los tipos universales (passport, invoice…). Campos, validadores y checks de cada tipo: GET /v1/document-types o el catálogo completo.

Qué tipos hay

GrupoTipos
Conducir e identidadus_driver_license, us_state_id (50 estados y DC, con PDF417), us_passport_book, us_passport_card, us_military_id, us_school_id, us_voter_registration_card, us_tribal_document, us_citizen_id_card, us_resident_citizen_id_card
Inmigración y trabajous_permanent_resident_card (Green Card), us_ead (I-766), us_foreign_passport_i551, us_i94, us_i9_form
Registro civil y Seguridad Socialus_birth_certificate, us_consular_birth_report, us_ssn_card
Saludus_medicare_card, us_health_insurance_card
Impuestosus_w9, us_w2, us_1099_nec, us_1099_misc, us_1099_int, us_irs_ein_letter
Ingresos, banca y direcciónus_paystub, us_bank_statement, us_utility_bill
Seguros y vehículosacord_25, us_vehicle_registration
Canadáca_driver_licence, ca_photo_id_card, ca_pr_card, ca_sin, ca_health_card

Permisos de conducir e ID estatales: el código PDF417

El reverso de un permiso de conducir o una ID estatal de EE. UU. (y de los permisos de Canadá) lleva un código de barras PDF417 con los datos del titular en el estándar AAMVA. Constaia lo lee en sus propios servidores, sin enviarlo a ningún proveedor de IA y sin coste adicional, y:

  • rellena con él los campos que falten (número, nombre, fechas, dirección…);
  • lo cruza con el anverso impreso: número, nombre, apellido, fecha de nacimiento y caducidad. El resultado es el check aamva_matches_visual; si algo no coincide, falla, los campos afectados quedan con validated: false y el veredicto pasa a invalid;
  • valida el formato del número de permiso según el estado (issuing_state) y el código ZIP (id_number_format).

Para que se lea, el fichero tiene que incluir el reverso: una imagen con las dos caras o un PDF de dos páginas (sigue costando 1 crédito). El widget con sides="2" captura las dos caras y las une. Si solo llega el anverso, no hay aamva_matches_visual y el resto funciona igual.

curl https://api.constaia.com/v1/analyze \
  -H "Authorization: Bearer $CONSTAIA_API_KEY" \
  -F file=@driver_license_both_sides.jpg \
  -F 'options={"expect":["us_driver_license","us_state_id"],"checks":{"min_age_years":21}}'
Fragmento de respuesta
{
  "document": { "type": "us_driver_license", "label": "Licencia de conducir (EE. UU.)", "country": "USA" },
  "verdict": {
    "status": "valid",
    "reasons": [
      { "code": "type_match", "severity": "info", "message": "El documento es Licencia de conducir (EE. UU.)." },
      { "code": "not_expired", "severity": "info", "message": "Vigente hasta el 30/07/2031." },
      { "code": "age", "severity": "info", "message": "El titular tiene 41 años." },
      { "code": "i9_list", "severity": "info", "message": "Documento aceptable para el formulario I-9: lista B." }
    ]
  },
  "checks": [
    { "code": "id_number_format", "passed": true, "message": "El identificador document_number (us_dl) es válido." },
    { "code": "id_number_format", "passed": true, "message": "El identificador postal_code (us_zip) es válido." },
    { "code": "aamva_matches_visual", "passed": true, "message": "El código PDF417 (AAMVA v10) se ha leído y coincide con los datos impresos." }
  ]
}

Entre los campos están issuing_state, document_number, first_name, middle_name, last_name, birth_date, issue_date, expiry_date, address, postal_code, real_id_compliant, class, restrictions, endorsements, commercial y barcode_data (el texto del PDF417). La caducidad se comprueba por defecto. Guía completa: Verificar un permiso de conducir de EE. UU..

Formulario I-9: listas A, B y C

Los tipos que sirven para el formulario I-9 indican su lista en i9_lists (["A"], ["B"], ["C"] o ["B","C"]) en el catálogo, y al analizarlos con expect añaden un motivo informativo:

{ "code": "i9_list", "severity": "info", "message": "Documento aceptable para el formulario I-9: lista A." }
ListaTipos
Aus_passport_book, us_passport_card, us_permanent_resident_card, us_foreign_passport_i551, us_ead, us_i94
Bus_driver_license, us_state_id, us_school_id, us_voter_registration_card, us_military_id, us_tribal_document, ca_driver_licence
Cus_ssn_card, us_birth_certificate, us_consular_birth_report, us_tribal_document, us_citizen_id_card, us_resident_citizen_id_card

Constaia etiqueta la lista; si la combinación está completa (un documento de la A, o uno de la B más uno de la C) lo decide tu código, y el empleador sigue siendo responsable del formulario. No hay integración con E-Verify. Guía completa: Documentos del formulario I-9.

Identificadores de EE. UU.

Estos identificadores se validan de forma determinista (sin IA) en los tipos que los tienen. Solo se comprueba el formato o el dígito de control: Constaia nunca consulta a la SSA, al IRS ni a USCIS.

EsquemaQué validaDónde
us_dlFormato del número de permiso según el estado emisorus_driver_license, us_state_id
us_ssnFormato del SSN (área, grupo y serie válidos)us_ssn_card, us_w9, us_w2, 1099, us_i9_form
us_einFormato del EIN (prefijo del IRS válido)us_w9, us_w2, 1099, us_irs_ein_letter
us_uscisNúmero USCIS / A-Numberus_permanent_resident_card, us_ead, us_foreign_passport_i551, us_i9_form
us_mbiMedicare Beneficiary Identifierus_medicare_card
us_abaDígito de control del número de ruta bancario (ABA)us_bank_statement
us_zipCódigo ZIP de 5 o 9 cifraspermisos, W-9, extractos, facturas, carta EIN, registro de vehículo

El resultado va en checks[] como id_number_format o id_number_checksum. En algunos tipos el identificador está marcado como blando (por ejemplo el SSN de un W-2 o un 1099, que suele venir enmascarado): su fallo da un motivo con warning y lleva a review en vez de a invalid. Qué esquemas tiene cada tipo lo dice field_validators en el catálogo.

Probarlo

Con una clave ck_test_ no hay escenarios de EE. UU.: un documento americano devuelve el tipo generic y, con expect, el veredicto review con type_unknown. Para ver los tipos de EE. UU. de verdad, usa una clave live: los 150 créditos gratis del mes sirven (los créditos gratis en live exigen el email verificado). Ver Modo test.

Dónde se procesan los datos

Hoy todos los documentos, también los de clientes de EE. UU., se procesan y guardan en la UE, y processing.region es eu. Constaia no hace biometría ni consulta registros públicos (DMV, IRS, SSA, E-Verify). Notas sobre DPPA, CCPA, GLBA/FCRA y leyes biométricas en Residencia de datos y cumplimiento.

Próximamente: región de EE. UU.

Está prevista una región de procesamiento en EE. UU., todavía sin fecha. Sigue el changelog.

Guías

En esta página