{
  "descripcion": "CURPs de prueba para la API de Verificar CURP (POST /api/v1/curp), con la respuesta `data` exacta que devuelve cada una. Son CURPs construidas, no de personas reales. Cada llamada consume 1 token como cualquier otra. Solo cubren la validación y el cotejo: el resultado de RENAPO depende del registro.",
  "documentacion": "https://verificarcurp.com/docs",
  "casos": [
    {
      "caso": "valida",
      "descripcion": "CURP bien formada, hombre nacido en la Ciudad de México.",
      "request": {
        "curp": "PEGJ850101HDFRRL04"
      },
      "respuesta": {
        "curp": "PEGJ850101HDFRRL04",
        "valida": true,
        "razon": null,
        "fechaNacimiento": "1985-01-01",
        "sexo": "H",
        "claveEntidad": "DF",
        "entidad": "Ciudad de México",
        "cotejo": null,
        "cotejoCampos": null
      }
    },
    {
      "caso": "valida_mujer",
      "descripcion": "CURP bien formada, mujer nacida en Jalisco.",
      "request": {
        "curp": "LOMA900215MJCPRN00"
      },
      "respuesta": {
        "curp": "LOMA900215MJCPRN00",
        "valida": true,
        "razon": null,
        "fechaNacimiento": "1990-02-15",
        "sexo": "M",
        "claveEntidad": "JC",
        "entidad": "Jalisco",
        "cotejo": null,
        "cotejoCampos": null
      }
    },
    {
      "caso": "valida_nacido_en_el_extranjero",
      "descripcion": "Clave de entidad NE: nacido en el extranjero.",
      "request": {
        "curp": "PEGJ850101HNERRL00"
      },
      "respuesta": {
        "curp": "PEGJ850101HNERRL00",
        "valida": true,
        "razon": null,
        "fechaNacimiento": "1985-01-01",
        "sexo": "H",
        "claveEntidad": "NE",
        "entidad": "Nacido en el extranjero",
        "cotejo": null,
        "cotejoCampos": null
      }
    },
    {
      "caso": "cotejo_coincide",
      "descripcion": "Todos los datos de la persona coinciden con la CURP.",
      "request": {
        "curp": "PEGJ850101HDFRRL04",
        "persona": {
          "nombres": "Julio",
          "primerApellido": "Pérez",
          "segundoApellido": "García",
          "fechaNacimiento": "1985-01-01",
          "sexo": "H",
          "entidad": "Ciudad de México"
        }
      },
      "respuesta": {
        "curp": "PEGJ850101HDFRRL04",
        "valida": true,
        "razon": null,
        "fechaNacimiento": "1985-01-01",
        "sexo": "H",
        "claveEntidad": "DF",
        "entidad": "Ciudad de México",
        "cotejo": "coincide",
        "cotejoCampos": {
          "nombres": "coincide",
          "primerApellido": "coincide",
          "segundoApellido": "coincide",
          "fechaNacimiento": "coincide",
          "sexo": "coincide",
          "entidad": "coincide"
        }
      }
    },
    {
      "caso": "cotejo_no_coincide",
      "descripcion": "El nombre no coincide (Juan no produce la consonante L de Julio).",
      "request": {
        "curp": "PEGJ850101HDFRRL04",
        "persona": {
          "nombres": "Juan",
          "primerApellido": "Pérez",
          "segundoApellido": "García",
          "fechaNacimiento": "1985-01-01",
          "sexo": "H",
          "entidad": "Ciudad de México"
        }
      },
      "respuesta": {
        "curp": "PEGJ850101HDFRRL04",
        "valida": true,
        "razon": null,
        "fechaNacimiento": "1985-01-01",
        "sexo": "H",
        "claveEntidad": "DF",
        "entidad": "Ciudad de México",
        "cotejo": "no_coincide",
        "cotejoCampos": {
          "nombres": "no_coincide",
          "primerApellido": "coincide",
          "segundoApellido": "coincide",
          "fechaNacimiento": "coincide",
          "sexo": "coincide",
          "entidad": "coincide"
        }
      }
    },
    {
      "caso": "cotejo_sin_segundo_apellido",
      "descripcion": "segundoApellido: null (no tiene) contra una CURP que sí codifica uno.",
      "request": {
        "curp": "PEGJ850101HDFRRL04",
        "persona": {
          "nombres": "Julio",
          "segundoApellido": null
        }
      },
      "respuesta": {
        "curp": "PEGJ850101HDFRRL04",
        "valida": true,
        "razon": null,
        "fechaNacimiento": "1985-01-01",
        "sexo": "H",
        "claveEntidad": "DF",
        "entidad": "Ciudad de México",
        "cotejo": "no_coincide",
        "cotejoCampos": {
          "nombres": "coincide",
          "segundoApellido": "no_coincide"
        }
      }
    },
    {
      "caso": "invalida_longitud",
      "descripcion": "Le falta un carácter.",
      "request": {
        "curp": "PEGJ850101HDFRRL0"
      },
      "respuesta": {
        "curp": "PEGJ850101HDFRRL0",
        "valida": false,
        "razon": {
          "kind": "length",
          "length": 17
        },
        "fechaNacimiento": null,
        "sexo": null,
        "claveEntidad": null,
        "entidad": null,
        "cotejo": null,
        "cotejoCampos": null
      }
    },
    {
      "caso": "invalida_forma",
      "descripcion": "Un dígito donde van las iniciales.",
      "request": {
        "curp": "P3GJ850101HDFRRL04"
      },
      "respuesta": {
        "curp": "P3GJ850101HDFRRL04",
        "valida": false,
        "razon": {
          "kind": "shape",
          "part": "initials",
          "positions": [
            1,
            4
          ]
        },
        "fechaNacimiento": null,
        "sexo": null,
        "claveEntidad": null,
        "entidad": null,
        "cotejo": null,
        "cotejoCampos": null
      }
    },
    {
      "caso": "invalida_entidad",
      "descripcion": "Clave de entidad que no existe (XX).",
      "request": {
        "curp": "PEGJ850101HXXRRL03"
      },
      "respuesta": {
        "curp": "PEGJ850101HXXRRL03",
        "valida": false,
        "razon": {
          "kind": "entidad",
          "code": "XX"
        },
        "fechaNacimiento": null,
        "sexo": null,
        "claveEntidad": null,
        "entidad": null,
        "cotejo": null,
        "cotejoCampos": null
      }
    },
    {
      "caso": "invalida_fecha",
      "descripcion": "31 de febrero.",
      "request": {
        "curp": "PEGJ850231HDFRRL03"
      },
      "respuesta": {
        "curp": "PEGJ850231HDFRRL03",
        "valida": false,
        "razon": {
          "kind": "birth-date",
          "year": 1985,
          "month": 2,
          "day": 31
        },
        "fechaNacimiento": null,
        "sexo": null,
        "claveEntidad": null,
        "entidad": null,
        "cotejo": null,
        "cotejoCampos": null
      }
    },
    {
      "caso": "invalida_digito_verificador",
      "descripcion": "Último dígito incorrecto.",
      "request": {
        "curp": "PEGJ850101HDFRRL09"
      },
      "respuesta": {
        "curp": "PEGJ850101HDFRRL09",
        "valida": false,
        "razon": {
          "kind": "check-digit",
          "expected": "4",
          "actual": "9"
        },
        "fechaNacimiento": null,
        "sexo": null,
        "claveEntidad": null,
        "entidad": null,
        "cotejo": null,
        "cotejoCampos": null
      }
    }
  ]
}
