> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gigstack.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Payment Forms Catalog (Formas de Pago)

> Integration guide for Payment Forms Catalog (Formas de Pago)

## Overview

For Mexican CFDI, `payment_form` describes **how the payment was made**. For example,
`"03"` is a bank transfer. It is separate from `payment_method` (`PUE` or `PPD`),
which describes timing. Sending a code does not initiate or confirm a payment.

## What We See

The income-invoice schema accepts the 22 string codes listed below. A code's presence
in the input enum does not mean it is appropriate for every transaction or document.
The table preserves SAT labels; choose from the actual payment facts.

## How to Use It

Send the code as a string so its leading zero is preserved. For the already-paid
transfer example, use `"03"`. For the ordinary unpaid invoice example, use `"99"`
with `PPD`, then identify the actual instrument in the payment flow.
See [Payment methods](/guides/catalogs/payment_methods).

## Payment Forms Table

| Code | Description (English) | Descripción (Español) | Usage Notes |
| - | - | - | - |
| `01` | Cash | Efectivo | Physical currency payments |
| `02` | Nominative check | Cheque nominativo | Checks made out to a specific payee |
| `03` | Electronic funds transfer | Transferencia electrónica de fondos | Bank-to-bank electronic transfers |
| `04` | Credit card | Tarjeta de crédito | Credit card payments |
| `05` | Electronic wallet | Monedero electrónico | Confirm the applicable SAT classification |
| `06` | Electronic money | Dinero electrónico | Digital currency systems |
| `08` | Food vouchers | Vales de despensa | Employee benefit vouchers |
| `12` | Payment in kind | Dación en pago | Payment with goods instead of money |
| `13` | Subrogation payment | Pago por subrogación | Third-party payment on behalf of debtor |
| `14` | Consignment payment | Pago por consignación | Court-ordered deposit payment |
| `15` | Debt forgiveness | Condonación | Voluntary debt cancellation |
| `17` | Compensation | Compensación | Offsetting mutual debts |
| `23` | Novation | Novación | Replacing old debt with new obligation |
| `24` | Confusion | Confusión | Creditor and debtor become same person |
| `25` | Debt remission | Remisión de deuda | Formal debt release |
| `26` | Statute of limitations | Prescripción o caducidad | Debt expired by time limit |
| `27` | Creditor satisfaction | A satisfacción del acreedor | Payment accepted by creditor |
| `28` | Debit card | Tarjeta de débito | Debit card payments |
| `29` | Service card | Tarjeta de servicios | Use the instrument's actual classification |
| `30` | Advance application | Aplicación de anticipos | Using previously paid advances |
| `31` | Payment intermediary | Intermediario pagos | Third-party payment processors |
| `99` | To be defined | Por definir | Used in the ordinary unpaid PPD example |

## Implementation Examples

### API Request Example

**Top-level request fragment** for the tutorial's already-paid invoice:

```json theme={null}
{"payment_form":"03","payment_method":"PUE"}
```

This is not a complete invoice body. Follow the [invoice recipe](/recipes/invoice)
for required customer and line-item fields and the exact [income contract](/reference/createInvoicesIncome).
To record money already received, use the [payment recipe](/recipes/payment).

### Validation Logic

Check the enum on the endpoint being called. Validate membership separately from
whether the instrument fits the actual transaction. A provider or wallet brand alone
does not determine the SAT payment form; inspect the actual means of payment.

## Common Use Cases

| Actual instrument | Code in the ordinary example |
| - | - |
| Cash | `01` |
| Nominative check | `02` |
| Bank transfer | `03` |
| Credit card | `04` |
| Debit card | `28` |

Do not map every PayPal or other wallet transaction to `05` merely from its brand.
Use the [SAT filling guidance](https://www.sat.gob.mx/minisitio/Factura/emite_materialdeayudaparafactura.htm) for special instruments and combinations.

## Important Notes

The [Colombia guide](/countries/colombia) explains the adapter's different mapping:
a transfer still uses the public API value `"03"`, not the provider's DIAN code `"47"`.
The labels in this catalog are Mexican SAT meanings.

## Related Documentation

* [Payment methods](/guides/catalogs/payment_methods)
* [Record an existing payment](/recipes/payment)
* [Paid-later flow](/recipes/paid-later)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.