Skip to content
All guides

CFDI invoicing

SAT product codes

How Toldo assigns SAT codes (ClaveProdServ and ClaveUnidad) to each line item, and which codes it uses for shipping and credit notes.

Rolling outUpdated

This feature is rolling out: we're turning it on in stages with our founding partners. What this guide describes may change before general availability.

In short

Every line item on a CFDI carries a product or service code (ClaveProdServ) and a unit code (ClaveUnidad) from the SAT catalogs. Toldo looks for them in this order: the variant, the product, a rule by collection, product type or vendor, a suggestion based on the product's category in Shopify and, last, your default code.

What they are

  • ClaveProdServ: says what you sell, according to the SAT's c_ClaveProdServ catalog (more than 52,000 codes).
  • ClaveUnidad: says the unit you sell it in, according to the c_ClaveUnidad catalog. For example, H87 "Pieza" (piece).

Where Toldo looks for the codes

For each product in the sale, Toldo uses the first code it finds, in this order:

  1. The variant. A code saved on the Shopify variant.
  2. The product. A code saved on the product.
  3. A rule. By collection, by product type or by vendor. For example: "everything in the T-shirts collection uses the T-shirt code."
  4. A suggestion. Based on the product's category in Shopify's standard product taxonomy.
  5. Your default code. The one you choose when you set up invoicing.

Toldo saves the codes in app fields on your Shopify products and variants.

Codes Toldo uses by default

Line itemClaveProdServClaveUnidad
ProductsYour default codeH87 "Pieza" (piece)
ServicesYour default codeE48 "Unidad de servicio" (unit of service)
Shipping78102203 "Servicios de envío, recogida o entrega de correo" (mail shipping, pickup or delivery services)E48 "Unidad de servicio" (unit of service)
Credit notes for an amount (no products returned)84111506 "Servicios de facturación" (billing services)ACT "Actividad" (activity)

Toldo doesn't make up a default code: you choose it when you set up invoicing.

The 01010101 code

The code 01010101 ("No existe en el catálogo", not in the catalog) is only used on the global invoice (factura global), where each sale is one line item. On an invoice in a customer's name, Toldo would only use it as a last resort and would ask you to review it.

Tools for assigning codes

  • A "falta clave SAT" (missing SAT code) filter, to see the products that don't have a code yet.
  • A bulk editor, to assign a code to many products at once.
  • Search in Spanish, by name and by similar words from the SAT catalog.
  • CSV import and export, if you'd rather work in a spreadsheet.

Taxes on each product

By default, Toldo applies 16% IVA (VAT). You can mark the products that carry 0% IVA or that are exempt. Products with IEPS are flagged for review before invoicing.

Steps to assign your codes

  1. Choose your default code. Any product without a more specific code uses it.
  2. Create rules for your collections or product types. They cover many products at once.
  3. Check the "falta clave SAT" (missing SAT code) filter. Assign a code to the products that are left.
  4. Adjust the special cases. Put the code on the variant or the product when a rule isn't enough.

Frequently asked questions

Where do I find the right code?

In the SAT's c_ClaveProdServ catalog. Toldo helps you search by name in Spanish. If you're unsure, confirm the code with your accountant.

What happens if a product doesn't have a code?

Toldo uses the rule, the suggestion or your default code, in that order.