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

# Campos

> Qué campos enviar y qué categoría de señal habilita cada uno

`POST /analyze` acepta un objeto plano con los datos de la transacción. Cuatro campos son
obligatorios; el resto son opcionales y cada uno habilita una categoría de señal adicional.

## Campos obligatorios

| Campo                | Tipo   | Alias de wire aceptado  |
| -------------------- | ------ | ----------------------- |
| `order_id`           | string | —                       |
| `user_id`            | string | —                       |
| `transaction_amount` | number | `total_value_usd`       |
| `payment_method`     | string | `paymentInstrumentType` |

El nombre canónico que debes enviar es `payment_method`. `paymentInstrumentType` es el
mismo concepto con otro nombre en el JSON, no un segundo campo. Valores y rieles:
[Métodos de pago](/referencia/metodos-de-pago).

## Campos opcionales

| Campo                      | Tipo    | Categoría que habilita |
| -------------------------- | ------- | ---------------------- |
| `cavv_result`              | string  | authentication         |
| `cvv_result`               | string  | authentication         |
| `cc_verified`              | boolean | authentication         |
| `avs_result`               | string  | authentication         |
| `auth_response_code`       | string  | authentication         |
| `cc_is_foreign_bin`        | boolean | geo                    |
| `merchant_country_code`    | string  | geo                    |
| `bin_country_code`         | string  | geo                    |
| `country_id`               | string  | geo                    |
| `store_to_user_distance`   | number  | geo                    |
| `ip_address`               | string  | network                |
| `device_id`                | string  | device                 |
| `device_fingerprint`       | string  | device                 |
| `device_age_days`          | integer | device                 |
| `is_new_device_login`      | boolean | device                 |
| `shipping_address_hash`    | string  | shipping               |
| `billing_address_hash`     | string  | shipping               |
| `user_email`               | string  | user                   |
| `user_age_days`            | integer | user                   |
| `session_id`               | string  | user                   |
| `session_start_time`       | string  | user                   |
| `time_to_checkout_sec`     | integer | user                   |
| `login_attempt_count`      | integer | user                   |
| `login_success`            | boolean | user                   |
| `password_reset_flag`      | boolean | user                   |
| `is_guest_checkout`        | boolean | user                   |
| `currency`                 | string  | payment                |
| `transaction_type`         | string  | payment                |
| `customer_present`         | string  | payment                |
| `pos_entry_mode`           | string  | payment                |
| `card_hash`                | string  | payment                |
| `expanded_bin`             | string  | payment                |
| `merchant_id`              | string  | payment                |
| `channel`                  | string  | payment                |
| `mcc`                      | string  | payment                |
| `is_subscription`          | boolean | payment                |
| `payment_attempts_count`   | integer | payment                |
| `cards_tried_count`        | integer | payment                |
| `declined_before_approved` | integer | payment                |

`auth_response_code` también se acepta como `response_code` (mismo campo).

<Note>
  `device_id`, `ip_address` y `user_id`, además de habilitar sus categorías directas, son
  también la base sobre la que se calculan señales de velocidad a través de transacciones —
  no hay un campo único que active esa categoría por sí solo.
</Note>

## Otros campos aceptados

* `created_at` (opcional, ISO 8601): marca de tiempo de la transacción. Si no la envías, se
  usa el momento de la petición.
* `is_chargeback`, `is_friendly_fraud`: etiquetas de resultado histórico, útiles para
  reentrenamiento — no son señales de scoring.
* `extra_fields`, `tags`: no participan en el scoring; se guardan como información
  adicional de la transacción. No uses `tags` para simular el modo sandbox: eso es la ruta
  [`/analyze/sandbox`](/referencia/analyze-sandbox).

## Más campos, más cobertura

No hay un mínimo de campos opcionales requerido — el motor scorea con lo que reciba. Pero
mientras más campos envíes, más categorías de señal se evalúan. No existe una relación fija
entre cuántos campos envías y el resultado: dos transacciones con la misma cobertura de
campos pueden terminar en decisiones distintas.

Siguiente paso: [Paso a producción](/integrar/produccion).
