Invoice recipients

A recipient is a person (any individual or legal entity registered in your tenant) who receives invoices. In Fiscalapi, a person is any taxpayer, either an individual (persona física) or a legal entity (persona moral), such as a company. You manage the other resources of your tenant (the space in Fiscalapi that holds your issuers, recipients, credits, and data) through the person. You assign stamps (one credit each, used each time you stamp a CFDI) to it and withdraw them, manage its tax files (the CSD and e.firma .cer and .key files you upload for a person), create and revoke its API keys, and decide whether it can issue invoices.

What a person represents

The same person can play several roles in your tenant: issuer, recipient, employee, employer, or someone who signs in to your tenant. You manage any person from a single resource, /api/v4/people. A person can represent a company that issues invoices or a customer who receives them, an employee or the company that hires them, an organization with its own customers, a holding company with affiliates or subsidiaries, someone who uses the API within a tenant, or an individual.

Recipients on payroll CFDIs

When a recipient acts as an employee on payroll CFDIs (CFDI: Mexico's electronic invoice; payroll CFDI: the CFDI issued for each salary payment, type N), they must have their employee data registered. An employee is always an individual, so the recipient must also have their CURP (Mexico's population registry ID, Clave Única de Registro de Población) in their tax details.

Person model

The person model contains a person's data. Properties with the Id suffix are keys from the SAT catalogs (SAT: Mexico's tax authority, Servicio de Administración Tributaria): look them up in CFDI 4.0 catalogs or query them through the API in SAT catalogs.

Properties

  • Name
    id
    Type
    string?
    Description

    The person's unique identifier, assigned by Fiscalapi.

  • Name
    legalName
    Type
    string
    required
    Description

    The person's legal name (as registered with the SAT), without the legal form: for "MI EMPRESA S.A. de C.V.", send MI EMPRESA. If the person is an individual, send their full name as it appears on their Constancia de Situación Fiscal (the SAT tax status certificate).

  • Name
    email
    Type
    string
    required
    Description

    The person's email, unique across Fiscalapi: no other person, in this tenant or any other, can have the same one. The comparison ignores case and leading or trailing spaces, and the email is saved without those spaces. It accepts only unaccented letters from A to Z, uppercase or lowercase, digits, and the characters -._@+. Fiscalapi rejects any other character, such as ñ, an accented vowel, an apostrophe, or a space in the middle.

  • Name
    phoneNumber
    Type
    string?
    Description

    The person's phone number.

  • Name
    password
    Type
    string?
    Description

    The sign-in password for the dashboard. It's required when you create the person and optional when you update it. Fiscalapi never returns it in responses. Every person (an issuer, a recipient, or anyone else who signs in to your tenant) uses their email and this password to access the Fiscalapi dashboard. Whether you give them those credentials depends on your own policies.

  • Name
    satTaxRegimeId
    Type
    string?
    expandable
    Description

    The person's tax regime (régimen fiscal, the SAT category a taxpayer is registered under, such as 601 or 626) when it acts as an issuer or recipient. SAT catalog c_RegimenFiscal.

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

    The person's CFDI use (how the recipient will use the CFDI for tax purposes) when it acts as a recipient. SAT catalog c_UsoCFDI.

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

    The person type, for informational purposes only.

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

    The person's RFC (Mexico's taxpayer ID, Registro Federal de Contribuyentes).

  • Name
    curp
    Type
    string?
    Description

    The person's CURP. Fiscalapi uses it in the payroll CFDI.

  • Name
    zipCode
    Type
    string?
    Description

    The person's postal code. It must match the one on their Constancia de Situación Fiscal. SAT catalog c_CodigoPostal.

  • Name
    countryId
    Type
    string?
    Description

    The key of the person's country of tax residence when they reside abroad. SAT catalog c_Pais (for example, USA). If the person is the recipient of an invoice by reference (you send the IDs of people and products already saved in Fiscalapi), Fiscalapi uses it as the recipient's ResidenciaFiscal.

  • Name
    foreignTin
    Type
    string?
    Description

    The person's tax ID number in their country of residence, when they reside abroad. Up to 40 characters. If the person is the recipient of an invoice by reference, Fiscalapi uses it as the recipient's NumRegIdTrib.

  • Name
    country
    Type
    CatalogDto?
    Description

    The expanded country of tax residence (countryId with its description). Read-only.

  • Name
    base64Photo
    Type
    string?
    Description

    The person's profile photo, in base64.

  • Name
    taxPassword
    Type
    string?
    Description

    The password of the private key (.key) for the CSD certificates (CSD: Certificado de Sello Digital, the digital seal certificate used to sign CFDIs) that the person saves in their profile. Up to 24 characters. Fiscalapi doesn't use it to seal invoices. When stamping (the certification by a SAT-authorized provider that makes a CFDI valid), it uses the password of the registered tax files in the by-reference mode, or the one in taxCredentials in the by-value mode (invoice by value: you send every issuer, recipient, and item value in the request). Only the person themselves and the tenant owner (the person who created the tenant) receive its value in responses. Any other person receives null.

  • Name
    availableBalance
    Type
    number?
    Description

    The person's available stamps: the balance of credit type 1 in balances. Read-only and for informational purposes only.

  • Name
    availableValidationBalance
    Type
    number?
    Description

    The person's available validation credits, separate from stamps: the balance of credit type 2 in balances. Read-only and for informational purposes only.

  • Name
    committedBalance
    Type
    number?
    Description

    A legacy field that Fiscalapi doesn't calculate: it's always 0. Read-only: Fiscalapi ignores it if you send it when you create or update a person.

    To get the balance, use availableBalance, availableValidationBalance, or balances.

  • Name
    balances
    Type
    array?
    Description

    The person's balances by credit type, sorted by creditType. Read-only and for informational purposes only. Each item has the credit type and its available balance (available). See stamps.

    Type 1 is stamps, type 2 is validation credits, and type 3 is ticket credits. Only the credit types the person has had appear: a missing type has no balance. New credit types can appear. Ignore the ones your integration doesn't know.

  • Name
    tenantId
    Type
    string?
    Description

    The ID of the tenant the person belongs to. Read-only and for informational purposes only.

  • Name
    isOwner
    Type
    boolean?
    Description

    true if the person is the tenant owner (the person who created the tenant when they signed up). Read-only. See Tenant owner.

  • Name
    validTo
    Type
    date?
    Description

    The date the person's validity ends. Read-only: Fiscalapi assigns it and ignores it if you send it when you create or update a person. For most people it's null; some people created long ago keep a historical date. It's informational: it doesn't limit stamping or API access.

  • Name
    manifestStatusId
    Type
    string?
    expandable
    Description

    The status of the person's Carta Manifiesto (the letter in which a taxpayer authorizes its PAC to certify its CFDIs): whether the person was invited to sign it and whether they already signed it.

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

GET/api/v4/people

List recipients

This endpoint returns people in pages of 50 by default. Use the query parameters to choose the page and its size.

Query parameters

  • Name
    pageNumber
    Type
    integer | number
    required
    Description

    The page number you want to retrieve.

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

    The number of records per page, from 1 to 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>

Get a recipient by ID

This endpoint returns a person by its ID.

Errors

In the message, <id> is the ID you sent. The message arrives in the details field of the response model.

StatusWhen it happensMessage
404The person doesn't exist in your 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

Create a recipient

This endpoint creates a person.

Request body

  • Name
    legalName
    Type
    string
    required
    Description

    The person's legal name, without the legal form: for "MI EMPRESA S.A. de C.V.", send MI EMPRESA. If the person is an individual, send their full name as it appears on their Constancia de Situación Fiscal.

  • Name
    email
    Type
    string
    required
    Description

    The person's email, unique across Fiscalapi: no other person, in this tenant or any other, can have the same one. The comparison ignores case and leading or trailing spaces, and the email is saved without those spaces. It accepts only unaccented letters from A to Z, uppercase or lowercase, digits, and the characters -._@+. Fiscalapi rejects any other character, such as ñ, an accented vowel, an apostrophe, or a space in the middle.

  • Name
    phoneNumber
    Type
    string?
    Description

    The person's phone number.

  • Name
    password
    Type
    string
    required
    Description

    The sign-in password for the dashboard. At least 6 characters, with at least one uppercase letter from A to Z, one lowercase letter from a to z, one digit, and one character that isn't a letter or a digit. Accented letters and ñ don't count as uppercase or lowercase letters, but they do count as characters that aren't a letter or a digit. Every person (an issuer, a recipient, or anyone else who signs in to your tenant) uses their email and this password to access the Fiscalapi dashboard. Whether you give them those credentials depends on your own policies.

  • Name
    satTaxRegimeId
    Type
    string?
    expandable
    Description

    The person's tax regime when it acts as an issuer or recipient. SAT catalog c_RegimenFiscal. Fiscalapi rejects any value that isn't in the catalog.

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

    The person's CFDI use when it acts as a recipient. SAT catalog c_UsoCFDI. Fiscalapi rejects any value that isn't in the catalog.

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

    The person type, for informational purposes only. If you don't send it, Fiscalapi saves C. Fiscalapi rejects any value outside this list, including T (Tenant), which is reserved for the person who creates the tenant when they sign up.

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

    The person's RFC.

  • Name
    curp
    Type
    string?
    Description

    The person's CURP. Fiscalapi uses it in the payroll CFDI.

  • Name
    zipCode
    Type
    string?
    Description

    The person's postal code. It must match the one on their Constancia de Situación Fiscal. SAT catalog c_CodigoPostal.

  • Name
    countryId
    Type
    string?
    Description

    The key of the person's country of tax residence when they reside abroad. SAT catalog c_Pais (for example, USA). Fiscalapi rejects any value that isn't in the catalog. If the person is the recipient of an invoice by reference, Fiscalapi uses it as the recipient's ResidenciaFiscal.

  • Name
    foreignTin
    Type
    string?
    Description

    The person's tax ID number in their country of residence, when they reside abroad. Up to 40 characters. If the person is the recipient of an invoice by reference, Fiscalapi uses it as the recipient's NumRegIdTrib.

  • Name
    base64Photo
    Type
    string?
    Description

    The person's profile photo, in base64.

  • Name
    taxPassword
    Type
    string?
    Description

    The password of the private key (.key) for the CSD certificates that the person saves in their profile. Up to 24 characters. Fiscalapi doesn't use it to seal invoices. When stamping, it uses the password of the registered tax files in the by-reference mode, or the one in taxCredentials in the by-value mode.

  • Name
    availableBalance
    Type
    number?
    Description

    The person's available stamps. Read-only and for informational purposes only.

  • Name
    availableValidationBalance
    Type
    number?
    Description

    The person's available validation credits, separate from stamps. Read-only and for informational purposes only.

  • Name
    tenantId
    Type
    string?
    Description

    The ID of the tenant the person belongs to. Read-only and for informational purposes only.

Errors

In the messages, <valor> is the value you sent.

StatusWhen it happensMessage
400The email already belongs to another person. It arrives as a validation failure on Email.The email is already registered.
400The email contains a character that isn't allowed. It arrives as a validation failure on Email, with errorCode InvalidUserName. The message names the rejected characters; the one in the table is for an ñ.The email contains characters that are not allowed: 'ñ'. Allowed characters: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+
400The password doesn't meet the rules. It arrives as a single validation failure on Password, with the errorCode of the first requirement it doesn't meet, for example PasswordTooShort or PasswordRequiresUpper.A text that lists the password rules.
400The tax regime doesn't exist in the catalog. It arrives as a validation failure on SatTaxRegimeId.El régimen fiscal '<valor>' no existe en el catálogo c_RegimenFiscal del SAT.
400The CFDI use doesn't exist in the catalog. It arrives as a validation failure on SatCfdiUseId.El uso de CFDI '<valor>' no existe en el catálogo c_UsoCFDI del SAT.
400The person type is T or a value other than C and U. It arrives as a validation failure on UserTypeId.UserTypeId debe ser uno de: C, U. 'T' está reservado y solo se permite cuando la persona ya es Tenant.
400The country doesn't exist in the catalog. It arrives as a validation failure on 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>

Update a recipient

This endpoint updates a person.

If another request modifies the person while this one is being processed, nothing is saved and the endpoint returns 409. Any write to the person counts, for example a successful or failed sign-in with their email, or a change to their subscription. Retrieve the person again and repeat the request.

Request body

  • Name
    legalName
    Type
    string
    required
    Description

    The person's legal name, without the legal form: for "MI EMPRESA S.A. de C.V.", send MI EMPRESA. If the person is an individual, send their full name as it appears on their Constancia de Situación Fiscal.

  • Name
    email
    Type
    string
    required
    Description

    The person's email, unique across Fiscalapi: no other person, in this tenant or any other, can have the same one. The comparison ignores case and leading or trailing spaces, and the email is saved without those spaces. It accepts only unaccented letters from A to Z, uppercase or lowercase, digits, and the characters -._@+. Fiscalapi rejects any other character, such as ñ, an accented vowel, an apostrophe, or a space in the middle. The current email of the person you're updating doesn't count as a duplicate.

  • Name
    phoneNumber
    Type
    string?
    Description

    The person's phone number.

  • Name
    password
    Type
    string?
    Description

    The sign-in password for the dashboard. Optional: if you don't send it, or you send it as null or empty, the current password stays. With a value, it replaces the current password and follows the same rules as on create: at least 6 characters, with at least one uppercase letter from A to Z, one lowercase letter from a to z, one digit, and one character that isn't a letter or a digit. Only the tenant owner can change another person's password. See Tenant owner.

  • Name
    satTaxRegimeId
    Type
    string?
    expandable
    Description

    The person's tax regime when it acts as an issuer or recipient. SAT catalog c_RegimenFiscal. Fiscalapi rejects any value that isn't in the catalog.

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

    The person's CFDI use when it acts as a recipient. SAT catalog c_UsoCFDI. Fiscalapi rejects any value that isn't in the catalog.

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

    The person type, for informational purposes only. If you don't send it, or you send it as null, Fiscalapi keeps the saved type. It accepts T (Tenant) only if the person is already T, and it rejects any other value outside this list.

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

    The person's RFC.

  • Name
    curp
    Type
    string?
    Description

    The person's CURP. Fiscalapi uses it in the payroll CFDI.

  • Name
    zipCode
    Type
    string?
    Description

    The person's postal code. It must match the one on their Constancia de Situación Fiscal. SAT catalog c_CodigoPostal.

  • Name
    countryId
    Type
    string?
    Description

    The key of the person's country of tax residence when they reside abroad. SAT catalog c_Pais (for example, USA). Fiscalapi rejects any value that isn't in the catalog. If the person is the recipient of an invoice by reference, Fiscalapi uses it as the recipient's ResidenciaFiscal.

  • Name
    foreignTin
    Type
    string?
    Description

    The person's tax ID number in their country of residence, when they reside abroad. Up to 40 characters. If the person is the recipient of an invoice by reference, Fiscalapi uses it as the recipient's NumRegIdTrib.

  • Name
    base64Photo
    Type
    string?
    Description

    The person's profile photo, in base64.

  • Name
    taxPassword
    Type
    string?
    Description

    The password of the private key (.key) for the CSD certificates that the person saves in their profile. Up to 24 characters. Fiscalapi doesn't use it to seal invoices. When stamping, it uses the password of the registered tax files in the by-reference mode, or the one in taxCredentials in the by-value mode. If you don't send it, or you send it as null, the saved password stays. With "", it's deleted.

  • Name
    availableBalance
    Type
    number?
    Description

    The person's available stamps. Read-only and for informational purposes only.

  • Name
    availableValidationBalance
    Type
    number?
    Description

    The person's available validation credits, separate from stamps. Read-only and for informational purposes only.

  • Name
    tenantId
    Type
    string?
    Description

    The ID of the tenant the person belongs to. Read-only and for informational purposes only.

Errors

In the messages, <id> is the person's ID and <valor> is the value you sent. The 403, 404, and 409 messages arrive in the details field of the response model.

StatusWhen it happensMessage
404The person doesn't exist in your tenant.No such resource for the given Id: <id>
403The requester isn't the owner, and the person being updated is the owner.Solo el propietario de la cuenta puede modificar al propietario de la cuenta.
403The requester is neither the owner nor the person, and the request changes the person's credentials.Solo el propietario de la cuenta puede gestionar las credenciales de otra persona: correo, contraseña, API keys y certificados.
409Another request modified the person while this one was being processed.The person was modified by another request (for example, a failed sign-in). Reload it and try again.
400The email already belongs to another person. It arrives as a validation failure on Email.The email is already registered.
400The email contains a character that isn't allowed. It arrives as a validation failure on Email, with errorCode InvalidUserName. The message names the rejected characters; the one in the table is for an ñ.The email contains characters that are not allowed: 'ñ'. Allowed characters: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+
400The password doesn't meet the rules. It arrives as a single validation failure on Password, with the errorCode of the first requirement it doesn't meet, for example PasswordTooShort or PasswordRequiresUpper.A text that lists the password rules.
400The tax regime doesn't exist in the catalog. It arrives as a validation failure on SatTaxRegimeId.El régimen fiscal '<valor>' no existe en el catálogo c_RegimenFiscal del SAT.
400The CFDI use doesn't exist in the catalog. It arrives as a validation failure on SatCfdiUseId.El uso de CFDI '<valor>' no existe en el catálogo c_UsoCFDI del SAT.
400The person type is T and the person isn't already of that type, or it's a value other than C and U. It arrives as a validation failure on UserTypeId.UserTypeId debe ser uno de: C, U. 'T' está reservado y solo se permite cuando la persona ya es Tenant.
400The country doesn't exist in the catalog. It arrives as a validation failure on 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>

Delete a recipient

This endpoint deletes a person and, in the same operation, revokes its API keys: they stop authenticating (requests that use them return 401), they don't appear in the API keys list, and retrieving them by ID returns 404. You can't delete the tenant owner: the endpoint returns 403.

If another request modifies the person while this one is being processed, nothing is saved and the endpoint returns 409. Any write to the person counts, for example a successful or failed sign-in with their email, or a change to their subscription. Retrieve the person again and repeat the request.

Errors

In the message, <id> is the person's ID. The messages arrive in the details field of the response model.

StatusWhen it happensMessage
404The person doesn't exist in your tenant.No such resource for the given Id: <id>
409Another request modified the person while this one was being processed.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
}

Was this page helpful?