Receptores de facturas

Un receptor es una persona que recibe facturas. En Fiscalapi, una persona es cualquier entidad fiscal, ya sea persona física (un individuo) o moral (una empresa). Sobre la persona se gestionan los demás recursos de tu organización: le asignas y retiras timbres, administras sus certificados (CSD), creas y revocas sus API keys y decides si puede generar facturas.

Qué representa una persona

Una misma persona puede ser emisor, receptor, empleado, empleador o usuario en la misma organización, y cualquier persona se gestiona desde un solo recurso, /api/v4/people. Puede representar una empresa que emite facturas o un cliente que las recibe, un empleado o la empresa que lo contrata, una organización con sus propios clientes, un holding con filiales o subsidiarias, un usuario que consume la API dentro de una organización o una persona física.

Receptor en facturas de nómina

Cuando un receptor actúa como empleado en facturas de nómina, debe tener registrados sus datos de empleado. Un empleado siempre es persona física, así que también debe tener su CURP en sus datos fiscales.

Modelo persona

El modelo persona contiene los datos de una persona. Las propiedades con el sufijo Id son claves de los catálogos del SAT: consúltalas en Catálogos CFDI 4.0 o desde la API, en catálogos.

Propiedades

  • Name
    id
    Type
    string?
    Description

    Identificador único de la persona asignado por Fiscalapi.

  • Name
    legalName
    Type
    string
    required
    Description

    Razón social de la persona, sin régimen de capital: para "MI EMPRESA S.A. de C.V.", envía MI EMPRESA. Si es persona física, envía su nombre completo como aparece en su constancia de situación fiscal.

  • Name
    email
    Type
    string
    required
    Description

    Correo electrónico de la persona, único en Fiscalapi: ninguna otra persona, de esta ni de otra cuenta, puede tener el mismo. Se compara sin distinguir mayúsculas ni los espacios de los extremos, y se guarda sin esos espacios. Solo admite letras sin acento de la A a la Z, en mayúsculas o minúsculas, dígitos y los caracteres -._@+; Fiscalapi rechaza cualquier otro carácter, como la ñ, una vocal acentuada, un apóstrofo o un espacio intermedio.

  • Name
    phoneNumber
    Type
    string?
    Description

    Teléfono de la persona.

  • Name
    password
    Type
    string?
    Description

    Contraseña de acceso al dashboard. Es obligatoria al crear la persona y opcional al actualizarla. Fiscalapi nunca la devuelve en las respuestas. Cualquier persona (emisor, receptor o usuario) entra al dashboard de Fiscalapi con su correo y esta contraseña; entregarle esas credenciales depende de las políticas de tu organización.

  • Name
    satTaxRegimeId
    Type
    string?
    expandible
    Description

    Régimen fiscal de la persona cuando actúa como emisor o receptor. Catálogo del SAT c_RegimenFiscal.

    Type
    enum:
    Values
    "601""603""605"
  • Name
    satCfdiUseId
    Type
    string?
    expandible
    Description

    Uso del CFDI de la persona cuando actúa como receptor. Catálogo del SAT c_UsoCFDI.

    Type
    enum:
    Values
    "G01""G02""G03"
  • Name
    userTypeId
    Type
    string?
    expandible
    Description

    Tipo de persona, con fines informativos.

    Type
    enum:
    Values
    "C""U""T"
  • Name
    tin
    Type
    string?
    Description

    RFC de la persona.

  • Name
    curp
    Type
    string?
    Description

    CURP de la persona. Fiscalapi la usa en el CFDI de nómina.

  • Name
    zipCode
    Type
    string?
    Description

    Código postal de la persona. Debe coincidir con el de su constancia de situación fiscal. Catálogo del SAT c_CodigoPostal.

  • Name
    countryId
    Type
    string?
    Description

    Clave del país de residencia fiscal de la persona cuando reside en el extranjero. Catálogo del SAT c_Pais (por ejemplo, USA). Si la persona es el receptor de una factura por referencias, Fiscalapi la usa como ResidenciaFiscal del receptor.

  • Name
    foreignTin
    Type
    string?
    Description

    Número de registro de identidad fiscal de la persona en su país de residencia, cuando reside en el extranjero. Máximo 40 caracteres. Si la persona es el receptor de una factura por referencias, Fiscalapi lo usa como NumRegIdTrib del receptor.

  • Name
    country
    Type
    CatalogDto?
    Description

    País de residencia fiscal expandido (countryId con su descripción). Solo lectura.

  • Name
    base64Photo
    Type
    string?
    Description

    Foto de perfil de la persona en formato base64.

  • Name
    taxPassword
    Type
    string?
    Description

    Contraseña de la llave privada (.key) de los certificados CSD que la persona guarda en su perfil. Máximo 24 caracteres. Fiscalapi no la usa para sellar las facturas: al timbrar usa la contraseña de los certificados registrados, en el modo por referencias, o la de taxCredentials, en el modo por valores. Solo la propia persona y el owner del tenant la reciben con valor en las respuestas; cualquier otra persona recibe null.

  • Name
    availableBalance
    Type
    number?
    Description

    Timbres disponibles para la persona: el saldo del tipo de crédito 1 de balances. Solo lectura y con fines informativos.

  • Name
    availableValidationBalance
    Type
    number?
    Description

    Créditos de validación disponibles para la persona, independientes de los timbres: el saldo del tipo de crédito 2 de balances. Solo lectura y con fines informativos.

  • Name
    committedBalance
    Type
    number?
    Description

    Campo heredado que Fiscalapi no calcula: siempre vale 0. Solo lectura: Fiscalapi lo ignora si lo envías al crear o actualizar.

    Para conocer el saldo, usa availableBalance, availableValidationBalance o balances.

  • Name
    balances
    Type
    array?
    Description

    Saldos de la persona por tipo de crédito, ordenados por creditType. Solo lectura y con fines informativos. Cada elemento trae el tipo de crédito y su saldo disponible (available). Ver timbres.

    El tipo 1 son timbres, el tipo 2 créditos de validación y el tipo 3 créditos de ticket. Solo aparecen los tipos de crédito que la persona ha tenido: un tipo ausente no tiene saldo. Pueden aparecer tipos de crédito nuevos; ignora los que tu integración no conozca.

  • Name
    tenantId
    Type
    string?
    Description

    ID del tenant al que pertenece la persona. Solo lectura y con fines informativos.

  • Name
    isOwner
    Type
    boolean?
    Description

    true si la persona es el owner del tenant (la persona que lo creó al registrarse). Solo lectura. Ver Owner del tenant.

  • Name
    validTo
    Type
    date?
    Description

    Fecha de fin de vigencia de la persona. Solo lectura: la asigna Fiscalapi, que la ignora si la envías al crear o actualizar. En la mayoría de las personas es null; algunas personas antiguas conservan una fecha histórica. Es informativa: no limita el timbrado ni el acceso a la API.

  • Name
    manifestStatusId
    Type
    string?
    expandible
    Description

    Estado del manifiesto de la persona: indica si se le invitó a firmarlo y si ya lo firmó.

    Type
    enum:
    Values
    "NotInvited""Unsigned""Signed"

GET/api/v4/people

Listar receptores

Este endpoint devuelve las personas en páginas de 50 por omisión. Usa los parámetros de consulta para elegir la página y su tamaño.

Query parameters

  • Name
    pageNumber
    Type
    integer | number
    required
    Description

    Número de página que quieres consultar.

    Default:
    1
  • Name
    pageSize
    Type
    integer | number
    required
    Description

    Cantidad de registros por página, de 1 a 50.

    Default:
    50

Request

GET
/api/v4/people
curl --location 'https://test.fiscalapi.com/api/v4/people?pageNumber=1&pageSize=2' \
--header 'X-TENANT-KEY: <tenant>' \
--header 'X-TIME-ZONE: America/Mexico_City' \
--header 'X-API-KEY: <api_key>'

Response

    {
    "data": {
        "items": [
            {
                "legalName": "KARLA FUENTE NOLASCO",
                "email": "karla@gmail.com",
                "phoneNumber": null,
                "validTo": null,
                "satTaxRegimeId": "626",
                "satTaxRegime": {
                    "id": "626",
                    "description": "Régimen Simplificado de Confianza",
                    "createdAt": "2024-08-10T15:46:30.3730000",
                    "updatedAt": null
                },
                "satCfdiUseId": "G03",
                "satCfdiUse": {
                    "id": "G03",
                    "description": "Gastos en general.",
                    "createdAt": "2024-08-10T15:46:30.3730000",
                    "updatedAt": null
                },
                "userTypeId": "C",
                "userType": {
                    "id": "C",
                    "description": "Cliente",
                    "createdAt": "2024-08-10T15:46:30.3730000",
                    "updatedAt": null
                },
                "manifestStatusId": "Unsigned",
                "manifestStatus": {
                    "id": "Unsigned",
                    "description": "No Firmado",
                    "createdAt": "2024-08-10T15:46:30.373",
                    "updatedAt": null
                },
                "tin": "FUNK671228PH6",
                "zipCode": "01160",
                "base64Photo": null,
                "taxPassword": null,
                "curp": null,
                "countryId": null,
                "country": null,
                "foreignTin": null,
                "availableBalance": 13,
                "committedBalance": 0,
                "availableValidationBalance": 0,
                "balances": [
                    {
                        "creditType": 1,
                        "available": 13
                    }
                ],
                "tenantId": "102e5f13-e114-41dd-bea7-507fce177281",
                "isOwner": false,
                "id": "78d380fd-1b69-4e3c-8bc0-4f57737f7d5f",
                "createdAt": "2025-01-07T15:26:06.9069715",
                "updatedAt": "2025-04-20T09:31:06.1825831"
            }
        ],
        "pageNumber": 1,
        "totalPages": 2,
        "totalCount": 5,
        "hasPreviousPage": false,
        "hasNextPage": true
    },
    "succeeded": true,
    "message": "",
    "details": "",
    "httpStatusCode": 200
}

GET/api/v4/people/<id>

Obtener receptor por ID

Este endpoint obtiene una persona por su ID.

Errores

En el mensaje, <id> es el id que enviaste. El mensaje llega en details del modelo de respuesta.

EstadoCuándo ocurreMensaje
404La persona no existe en tu tenant.No such resource for the given Id: <id>

Request

GET
/api/v4/people/<id>
curl --location 'https://test.fiscalapi.com/api/v4/people/78d380fd-1b69-4e3c-8bc0-4f57737f7d5f' \
--header 'X-TENANT-KEY: <tenant>' \
--header 'X-TIME-ZONE: America/Mexico_City' \
--header 'X-API-KEY: <api_key>'
--data ''

Response

{
    "data": {
        "legalName": "KARLA FUENTE NOLASCO",
        "email": "karla@gmail.com",
        "phoneNumber": null,
        "validTo": null,
        "satTaxRegimeId": "626",
        "satTaxRegime": {
            "id": "626",
            "description": "Régimen Simplificado de Confianza",
            "createdAt": "2024-08-10T15:46:30.3730000",
            "updatedAt": null
        },
        "satCfdiUseId": "G03",
        "satCfdiUse": {
            "id": "G03",
            "description": "Gastos en general.",
            "createdAt": "2024-08-10T15:46:30.3730000",
            "updatedAt": null
        },
        "userTypeId": "C",
        "userType": {
            "id": "C",
            "description": "Cliente",
            "createdAt": "2024-08-10T15:46:30.3730000",
            "updatedAt": null
        },
        "manifestStatusId": "Unsigned",
        "manifestStatus": {
            "id": "Unsigned",
            "description": "No Firmado",
            "createdAt": "2024-08-10T15:46:30.373",
            "updatedAt": null
        },
        "tin": "FUNK671228PH6",
        "zipCode": "01160",
        "base64Photo": null,
        "taxPassword": null,
        "curp": null,
        "countryId": null,
        "country": null,
        "foreignTin": null,
        "availableBalance": 13,
        "committedBalance": 0,
        "availableValidationBalance": 0,
        "balances": [
            {
                "creditType": 1,
                "available": 13
            }
        ],
        "tenantId": "102e5f13-e114-41dd-bea7-507fce177281",
        "isOwner": false,
        "id": "78d380fd-1b69-4e3c-8bc0-4f57737f7d5f",
        "createdAt": "2025-01-07T15:26:06.9069715",
        "updatedAt": "2025-04-20T09:31:06.1825831"
    },
    "succeeded": true,
    "message": "",
    "details": "",
    "httpStatusCode": 200
}

POST/api/v4/people

Crear receptor

Este endpoint crea una persona.

Modelo

  • Name
    legalName
    Type
    string
    required
    Description

    Razón social de la persona, sin régimen de capital: para "MI EMPRESA S.A. de C.V.", envía MI EMPRESA. Si es persona física, envía su nombre completo como aparece en su constancia de situación fiscal.

  • Name
    email
    Type
    string
    required
    Description

    Correo electrónico de la persona, único en Fiscalapi: ninguna otra persona, de esta ni de otra cuenta, puede tener el mismo. Se compara sin distinguir mayúsculas ni los espacios de los extremos, y se guarda sin esos espacios. Solo admite letras sin acento de la A a la Z, en mayúsculas o minúsculas, dígitos y los caracteres -._@+; Fiscalapi rechaza cualquier otro carácter, como la ñ, una vocal acentuada, un apóstrofo o un espacio intermedio.

  • Name
    phoneNumber
    Type
    string?
    Description

    Teléfono de la persona.

  • Name
    password
    Type
    string
    required
    Description

    Contraseña de acceso al dashboard. Mínimo 6 caracteres, con al menos una mayúscula de la A a la Z, una minúscula de la a a la z, un dígito y un carácter que no sea letra ni dígito. Las letras con acento y la ñ no cuentan como mayúsculas ni minúsculas, pero sí como carácter que no es letra ni dígito. Cualquier persona (emisor, receptor o usuario) entra al dashboard de Fiscalapi con su correo y esta contraseña; entregarle esas credenciales depende de las políticas de tu organización.

  • Name
    satTaxRegimeId
    Type
    string?
    expandible
    Description

    Régimen fiscal de la persona cuando actúa como emisor o receptor. Catálogo del SAT c_RegimenFiscal. Fiscalapi rechaza cualquier valor que no esté en el catálogo.

    Type
    enum:
    Values
    "601""603""605"
  • Name
    satCfdiUseId
    Type
    string?
    expandible
    Description

    Uso del CFDI de la persona cuando actúa como receptor. Catálogo del SAT c_UsoCFDI. Fiscalapi rechaza cualquier valor que no esté en el catálogo.

    Type
    enum:
    Values
    "G01""G02""G03"
  • Name
    userTypeId
    Type
    string?
    expandible
    Description

    Tipo de persona, con fines informativos. Si no lo envías, Fiscalapi guarda C. Fiscalapi rechaza cualquier valor fuera de esta lista, incluido T (Tenant), que está reservado para la persona que crea el tenant al registrarse.

    Type
    enum:
    Values
    "C""U"
  • Name
    tin
    Type
    string?
    Description

    RFC de la persona.

  • Name
    curp
    Type
    string?
    Description

    CURP de la persona. Fiscalapi la usa en el CFDI de nómina.

  • Name
    zipCode
    Type
    string?
    Description

    Código postal de la persona. Debe coincidir con el de su constancia de situación fiscal. Catálogo del SAT c_CodigoPostal.

  • Name
    countryId
    Type
    string?
    Description

    Clave del país de residencia fiscal de la persona cuando reside en el extranjero. Catálogo del SAT c_Pais (por ejemplo, USA). Fiscalapi rechaza cualquier valor que no esté en el catálogo. Si la persona es el receptor de una factura por referencias, Fiscalapi la usa como ResidenciaFiscal del receptor.

  • Name
    foreignTin
    Type
    string?
    Description

    Número de registro de identidad fiscal de la persona en su país de residencia, cuando reside en el extranjero. Máximo 40 caracteres. Si la persona es el receptor de una factura por referencias, Fiscalapi lo usa como NumRegIdTrib del receptor.

  • Name
    base64Photo
    Type
    string?
    Description

    Foto de perfil de la persona en formato base64.

  • Name
    taxPassword
    Type
    string?
    Description

    Contraseña de la llave privada (.key) de los certificados CSD que la persona guarda en su perfil. Máximo 24 caracteres. Fiscalapi no la usa para sellar las facturas: al timbrar usa la contraseña de los certificados registrados, en el modo por referencias, o la de taxCredentials, en el modo por valores.

  • Name
    availableBalance
    Type
    number?
    Description

    Timbres disponibles para la persona. Solo lectura y con fines informativos.

  • Name
    availableValidationBalance
    Type
    number?
    Description

    Créditos de validación disponibles para la persona, independientes de los timbres. Solo lectura y con fines informativos.

  • Name
    tenantId
    Type
    string?
    Description

    ID del tenant al que pertenece la persona. Solo lectura y con fines informativos.

Errores

En los mensajes, <valor> es el valor que enviaste.

EstadoCuándo ocurreMensaje
400El correo ya pertenece a otra persona. Llega como falla de validación en Email.The email is already registered.
400El correo tiene un carácter no permitido. Llega como falla de validación en Email, con errorCode InvalidUserName. El mensaje nombra los caracteres rechazados; el de la tabla es el de una ñ.The email contains characters that are not allowed: 'ñ'. Allowed characters: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+
400La contraseña no cumple las reglas. Llega como una sola falla de validación en Password, con el errorCode del primer requisito que no se cumple, por ejemplo PasswordTooShort o PasswordRequiresUpper.Un texto que enumera las reglas de la contraseña.
400El régimen fiscal no existe en el catálogo. Llega como falla de validación en SatTaxRegimeId.El régimen fiscal '<valor>' no existe en el catálogo c_RegimenFiscal del SAT.
400El uso de CFDI no existe en el catálogo. Llega como falla de validación en SatCfdiUseId.El uso de CFDI '<valor>' no existe en el catálogo c_UsoCFDI del SAT.
400El tipo de persona es T o un valor distinto de C y U. Llega como falla de validación en UserTypeId.UserTypeId debe ser uno de: C, U. 'T' está reservado y solo se permite cuando la persona ya es Tenant.
400El país no existe en el catálogo. Llega como falla de validación en CountryId.El país '<valor>' no existe en el catálogo c_Pais del SAT.

Request

POST
/api/v4/people
curl --location 'https://test.fiscalapi.com/api/v4/people' \
--header 'X-TENANT-KEY: <tenant_key>' \
--header 'X-TIME-ZONE: America/Mexico_City' \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api_key>' \
--data-raw '{
  "legalName": "EMPRESA",
  "email": "email@domain.com",
  "password": "MiSuperPass123!"
}'

Response

{
    "data": {
        "legalName": "EMPRESA",
        "email": "email@domain.com",
        "phoneNumber": null,
        "validTo": null,
        "satTaxRegimeId": null,
        "satTaxRegime": null,
        "satCfdiUseId": null,
        "satCfdiUse": null,
        "userTypeId": "C",
        "userType": null,
        "manifestStatusId": "NotInvited",
        "manifestStatus": null,
        "tin": null,
        "zipCode": null,
        "base64Photo": null,
        "taxPassword": null,
        "curp": null,
        "countryId": null,
        "country": null,
        "foreignTin": null,
        "availableBalance": 0,
        "committedBalance": 0,
        "availableValidationBalance": 0,
        "balances": [],
        "tenantId": "102e5f13-e114-41dd-bea7-507fce177281",
        "isOwner": false,
        "id": "d7992a07-4161-48ba-b3bf-558790c9bcdb",
        "createdAt": "2025-05-01T07:44:53.9725097",
        "updatedAt": "2025-05-01T07:44:53.9791644"
    },
    "succeeded": true,
    "message": "",
    "details": "",
    "httpStatusCode": 200
}

PUT/api/v4/people/<id>

Actualizar receptor

Este endpoint actualiza una persona.

Si otra petición modifica a la persona mientras se procesa esta, no se guarda nada y el endpoint responde 409. Cuenta cualquier escritura a la persona; por ejemplo, un inicio de sesión con su correo, exitoso o fallido, o un cambio en su suscripción. Vuelve a consultar la persona y repite la petición.

Modelo

  • Name
    legalName
    Type
    string
    required
    Description

    Razón social de la persona, sin régimen de capital: para "MI EMPRESA S.A. de C.V.", envía MI EMPRESA. Si es persona física, envía su nombre completo como aparece en su constancia de situación fiscal.

  • Name
    email
    Type
    string
    required
    Description

    Correo electrónico de la persona, único en Fiscalapi: ninguna otra persona, de esta ni de otra cuenta, puede tener el mismo. Se compara sin distinguir mayúsculas ni los espacios de los extremos, y se guarda sin esos espacios. Solo admite letras sin acento de la A a la Z, en mayúsculas o minúsculas, dígitos y los caracteres -._@+; Fiscalapi rechaza cualquier otro carácter, como la ñ, una vocal acentuada, un apóstrofo o un espacio intermedio. El correo actual de la persona que se actualiza no cuenta como repetido.

  • Name
    phoneNumber
    Type
    string?
    Description

    Teléfono de la persona.

  • Name
    password
    Type
    string?
    Description

    Contraseña de acceso al dashboard. Opcional: si no la envías, o la envías en null o vacía, se conserva la contraseña actual. Con valor, la reemplaza y sigue las mismas reglas que al crear: mínimo 6 caracteres, con al menos una mayúscula de la A a la Z, una minúscula de la a a la z, un dígito y un carácter que no sea letra ni dígito. Solo el owner del tenant cambia la contraseña de otra persona. Ver Owner del tenant.

  • Name
    satTaxRegimeId
    Type
    string?
    expandible
    Description

    Régimen fiscal de la persona cuando actúa como emisor o receptor. Catálogo del SAT c_RegimenFiscal. Fiscalapi rechaza cualquier valor que no esté en el catálogo.

    Type
    enum:
    Values
    "601""603""605"
  • Name
    satCfdiUseId
    Type
    string?
    expandible
    Description

    Uso del CFDI de la persona cuando actúa como receptor. Catálogo del SAT c_UsoCFDI. Fiscalapi rechaza cualquier valor que no esté en el catálogo.

    Type
    enum:
    Values
    "G01""G02""G03"
  • Name
    userTypeId
    Type
    string?
    expandible
    Description

    Tipo de persona, con fines informativos. Si no lo envías o lo envías en null, Fiscalapi conserva el tipo guardado. Acepta T (Tenant) solo si la persona ya es T y rechaza cualquier otro valor fuera de esta lista.

    Type
    enum:
    Values
    "C""U"
  • Name
    tin
    Type
    string?
    Description

    RFC de la persona.

  • Name
    curp
    Type
    string?
    Description

    CURP de la persona. Fiscalapi la usa en el CFDI de nómina.

  • Name
    zipCode
    Type
    string?
    Description

    Código postal de la persona. Debe coincidir con el de su constancia de situación fiscal. Catálogo del SAT c_CodigoPostal.

  • Name
    countryId
    Type
    string?
    Description

    Clave del país de residencia fiscal de la persona cuando reside en el extranjero. Catálogo del SAT c_Pais (por ejemplo, USA). Fiscalapi rechaza cualquier valor que no esté en el catálogo. Si la persona es el receptor de una factura por referencias, Fiscalapi la usa como ResidenciaFiscal del receptor.

  • Name
    foreignTin
    Type
    string?
    Description

    Número de registro de identidad fiscal de la persona en su país de residencia, cuando reside en el extranjero. Máximo 40 caracteres. Si la persona es el receptor de una factura por referencias, Fiscalapi lo usa como NumRegIdTrib del receptor.

  • Name
    base64Photo
    Type
    string?
    Description

    Foto de perfil de la persona en formato base64.

  • Name
    taxPassword
    Type
    string?
    Description

    Contraseña de la llave privada (.key) de los certificados CSD que la persona guarda en su perfil. Máximo 24 caracteres. Fiscalapi no la usa para sellar las facturas: al timbrar usa la contraseña de los certificados registrados, en el modo por referencias, o la de taxCredentials, en el modo por valores. Si no la envías o la envías en null, se conserva la contraseña guardada; con "" se borra.

  • Name
    availableBalance
    Type
    number?
    Description

    Timbres disponibles para la persona. Solo lectura y con fines informativos.

  • Name
    availableValidationBalance
    Type
    number?
    Description

    Créditos de validación disponibles para la persona, independientes de los timbres. Solo lectura y con fines informativos.

  • Name
    tenantId
    Type
    string?
    Description

    ID del tenant al que pertenece la persona. Solo lectura y con fines informativos.

Errores

En los mensajes, <id> es el id de la persona y <valor> es el valor que enviaste. Los mensajes de 403, 404 y 409 llegan en details del modelo de respuesta.

EstadoCuándo ocurreMensaje
404La persona no existe en tu tenant.No such resource for the given Id: <id>
403Quien hace la petición no es el owner y la persona que se actualiza es el owner.Solo el propietario de la cuenta puede modificar al propietario de la cuenta.
403Quien hace la petición no es el owner ni la propia persona, y la petición cambia sus credenciales.Solo el propietario de la cuenta puede gestionar las credenciales de otra persona: correo, contraseña, API keys y certificados.
409Otra petición modificó a la persona mientras se procesaba esta.The person was modified by another request (for example, a failed sign-in). Reload it and try again.
400El correo ya pertenece a otra persona. Llega como falla de validación en Email.The email is already registered.
400El correo tiene un carácter no permitido. Llega como falla de validación en Email, con errorCode InvalidUserName. El mensaje nombra los caracteres rechazados; el de la tabla es el de una ñ.The email contains characters that are not allowed: 'ñ'. Allowed characters: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+
400La contraseña no cumple las reglas. Llega como una sola falla de validación en Password, con el errorCode del primer requisito que no se cumple, por ejemplo PasswordTooShort o PasswordRequiresUpper.Un texto que enumera las reglas de la contraseña.
400El régimen fiscal no existe en el catálogo. Llega como falla de validación en SatTaxRegimeId.El régimen fiscal '<valor>' no existe en el catálogo c_RegimenFiscal del SAT.
400El uso de CFDI no existe en el catálogo. Llega como falla de validación en SatCfdiUseId.El uso de CFDI '<valor>' no existe en el catálogo c_UsoCFDI del SAT.
400El tipo de persona es T y la persona no es Tenant, o es un valor distinto de C y U. Llega como falla de validación en UserTypeId.UserTypeId debe ser uno de: C, U. 'T' está reservado y solo se permite cuando la persona ya es Tenant.
400El país no existe en el catálogo. Llega como falla de validación en CountryId.El país '<valor>' no existe en el catálogo c_Pais del SAT.

Request

PUT
/api/v4/people/<id>
curl --location --request PUT 'https://test.fiscalapi.com/api/v4/people/d7992a07-4161-48ba-b3bf-558790c9bcdb' \
--header 'X-TENANT-KEY: <tenant_key>' \
--header 'X-TIME-ZONE: America/Mexico_City' \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api_key>' \
--data-raw '{
      "id": "d7992a07-4161-48ba-b3bf-558790c9bcdb",
      "legalName": "ESCUELA KEMPER URGATE",
      "email": "mi.nueva.empresa@gmail.com",
      "password": "SuperPassword1234!",
      "taxPassword": "MiSuperPass123!",
      "phoneNumber": "3312345678",
      "satTaxRegimeId": "601",
      "satCfdiUseId": "G01",
      "tin": "XAXX010101001",
      "curp": "XEXX010101HNEXXXA4",
      "zipCode": "44620",
      "base64Photo": "base64..."
}' 

Response

{
    "data": {
        "legalName": "ESCUELA KEMPER URGATE",
        "email": "mi.nueva.empresa@gmail.com",
        "phoneNumber": "3312345678",
        "validTo": null,
        "satTaxRegimeId": "601",
        "satTaxRegime": {
            "id": "601",
            "description": "General de Ley Personas Morales",
            "createdAt": "2024-08-10T15:46:30.373",
            "updatedAt": null
        },
        "satCfdiUseId": "G01",
        "satCfdiUse": {
            "id": "G01",
            "description": "Adquisición de mercancías.",
            "createdAt": "2024-08-10T15:46:30.373",
            "updatedAt": null
        },
        "userTypeId": "C",
        "userType": {
            "id": "C",
            "description": "Cliente",
            "createdAt": "2024-08-10T15:46:30.373",
            "updatedAt": null
        },
        "manifestStatusId": "NotInvited",
        "manifestStatus": {
            "id": "NotInvited",
            "description": "No invitado",
            "createdAt": "2024-08-10T15:46:30.373",
            "updatedAt": null
        },
        "tin": "XAXX010101001",
        "zipCode": "44620",
        "base64Photo": "base64...",
        "taxPassword": null,
        "curp": "XEXX010101HNEXXXA4",
        "countryId": null,
        "country": null,
        "foreignTin": null,
        "availableBalance": 0,
        "committedBalance": 0,
        "availableValidationBalance": 0,
        "balances": [],
        "tenantId": "102e5f13-e114-41dd-bea7-507fce177281",
        "isOwner": false,
        "id": "d7992a07-4161-48ba-b3bf-558790c9bcdb",
        "createdAt": "2025-05-01T07:44:53.9725097",
        "updatedAt": "2025-05-01T07:46:12.7809120"
    },
    "succeeded": true,
    "message": "",
    "details": "",
    "httpStatusCode": 200
}

DELETE/api/v4/people/<id>

Eliminar receptor

Este endpoint elimina una persona y, en la misma operación, revoca sus API keys: dejan de autenticar (responden 401), no aparecen en el listado de API keys y consultarlas por id responde 404. No se puede eliminar al owner del tenant: el endpoint responde 403.

Si otra petición modifica a la persona mientras se procesa esta, no se guarda nada y el endpoint responde 409. Cuenta cualquier escritura a la persona; por ejemplo, un inicio de sesión con su correo, exitoso o fallido, o un cambio en su suscripción. Vuelve a consultar la persona y repite la petición.

Errores

En el mensaje, <id> es el id de la persona. Los mensajes llegan en details del modelo de respuesta.

EstadoCuándo ocurreMensaje
404La persona no existe en tu tenant.No such resource for the given Id: <id>
409Otra petición modificó a la persona mientras se procesaba esta.The person was modified by another request (for example, a failed sign-in). Reload it and try again.

Request

DELETE
/api/v4/people/<id>
curl --location --request DELETE 'https://test.fiscalapi.com/api/v4/people/d7992a07-4161-48ba-b3bf-558790c9bcdb' \
--header 'X-TENANT-KEY: <tenant_key>' \
--header 'X-TIME-ZONE: America/Mexico_City' \
--header 'X-API-KEY: <api_key>' \
--data ''

Response

{
    "data": true,
    "succeeded": true,
    "message": "",
    "details": "",
    "httpStatusCode": 200
}

¿Le resultó útil esta página?