# Cambiar cómo se vuelven tickets sus pedidos

`POST https://api.fiscalisto.com/v1/store_connections/{id}`

Cuenta para los pedidos que lleguen; los tickets ya hechos no cambian.

## Parámetros

| Nombre | Dónde | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `id` | ruta | sí | El id del objeto. |
| `Idempotency-Key` | encabezado |  | Opcional (los SDK la mandan solos). Si la respuesta se pierde, repita la solicitud con el mismo valor durante 24 horas: contesta lo mismo, con idempotent-replayed: true, y no lo hace dos veces (ni crea, ni manda correos, ni cobra). |

## Cuerpo

| Campo | Tipo | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `settings` | objeto | sí | Lo que cambia; lo demás queda. |
| `settings.product_key` | string |  | c_ClaveProdServ de lo que vende (8 dígitos). |
| `settings.unit_key` | string |  | c_ClaveUnidad. Por omisión, la de la clave del producto. |
| `settings.iva` | `0`, `0.16`, `0.08`, `exento` |  | Tasa de IVA incluida en los precios. Por omisión 0.16. |
| `settings.description` | string |  | El concepto de cada ticket. Por omisión, el pedido y sus artículos («Pedido 1001: Playera (2), Gorra»). (hasta 200 caracteres) |
| `settings.folio_prefix` | string |  | Lo que va antes del número del pedido en el folio del ticket. Por omisión SHOP- o ML-. |
| `settings.payment_form` | string |  | c_FormaPago cuando la forma de pago del pedido no está en payment_forms. Por omisión 04 (Shopify) o 31 (Mercado Libre). |
| `settings.payment_forms` | objeto |  | c_FormaPago por pasarela de Shopify (shopify_payments, paypal, manual…) o tipo de pago de Mercado Libre (credit_card, debit_card, account_money, ticket, bank_transfer). |
| `settings.auto_invoice` | boolean |  | Mercado Libre: timbrar en cuanto se paga si el comprador dejó sus datos fiscales completos. Por omisión true. |

Ejemplo:

```json
{
  "settings": {
    "folio_prefix": "WEB-",
    "iva": "0.16"
  }
}
```

## Con el SDK de TypeScript

```ts
import { Fiscalisto } from "fiscalisto";

// La llave viene de FISCALISTO_API_KEY.
const fiscalisto = new Fiscalisto();

const storeConnection = await fiscalisto.storeConnections.update("stc_OufpKqnrvx9p3Kd8sLm2XyT5uBcW8sKdLx", {
  settings: { folio_prefix: "WEB-", iva: "0.16" },
}, { idempotencyKey: "pedido-A-1042" });
```

## Con el SDK de Python

```python
from fiscalisto import Fiscalisto

# La llave viene de FISCALISTO_API_KEY.
fiscalisto = Fiscalisto()

store_connection = fiscalisto.store_connections.update("stc_OufpKqnrvx9p3Kd8sLm2XyT5uBcW8sKdLx", {
    "settings": {"folio_prefix": "WEB-", "iva": "0.16"},
}, idempotency_key="pedido-A-1042")
```

## Con el SDK de PHP

```php
<?php

use Fiscalisto\Fiscalisto;

// La llave viene de FISCALISTO_API_KEY.
$fiscalisto = new Fiscalisto();

$storeConnection = $fiscalisto->storeConnections->update('stc_OufpKqnrvx9p3Kd8sLm2XyT5uBcW8sKdLx', [
    'settings' => ['folio_prefix' => 'WEB-', 'iva' => '0.16'],
], ['idempotency_key' => 'pedido-A-1042']);
```

## Con el SDK de .NET

```csharp
using Fiscalisto;

// La llave viene de FISCALISTO_API_KEY.
var fiscalisto = new FiscalistoClient();

var storeConnection = await fiscalisto.StoreConnections.UpdateAsync("stc_OufpKqnrvx9p3Kd8sLm2XyT5uBcW8sKdLx", new UpdateStoreConnectionParams
{
    Settings = new() { FolioPrefix = "WEB-", Iva = "0.16" },
}, new RequestOptions { IdempotencyKey = "pedido-A-1042" });
```

## Con el SDK de Go

```go
package main

import (
	"context"
	"fmt"
	"log"

	fiscalisto "fiscalisto.com/go"
)

func main() {
	// La llave viene de FISCALISTO_API_KEY.
	client, err := fiscalisto.NewClient("")
	if err != nil {
		log.Fatal(err)
	}
	ctx := context.Background()

	storeConnection, err := client.StoreConnections.Update(ctx, "stc_OufpKqnrvx9p3Kd8sLm2XyT5uBcW8sKdLx", &fiscalisto.UpdateStoreConnectionParams{
		Settings: fiscalisto.UpdateStoreConnectionParamsSettings{
			FolioPrefix: fiscalisto.String("WEB-"),
			IVA:         fiscalisto.String("0.16"),
		},
	}, fiscalisto.WithIdempotencyKey("pedido-A-1042"))
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println(storeConnection.ID)
}
```

## Con el SDK de Java

```java
import com.fiscalisto.FiscalistoClient;
import com.fiscalisto.RequestOptions;
import com.fiscalisto.model.UpdateStoreConnectionParams;
import com.fiscalisto.model.UpdateStoreConnectionParamsSettings;

// La llave viene de FISCALISTO_API_KEY.
var fiscalisto = new FiscalistoClient();

var storeConnection = fiscalisto.storeConnections().update("stc_OufpKqnrvx9p3Kd8sLm2XyT5uBcW8sKdLx", new UpdateStoreConnectionParams()
        .setSettings(new UpdateStoreConnectionParamsSettings()
                .setFolioPrefix("WEB-")
                .setIva("0.16")), RequestOptions.idempotencyKey("pedido-A-1042"));
System.out.println(storeConnection.getId());
```

## Respuesta 200

Correcto.

Un objeto `StoreConnection`:

| Campo | Tipo | Siempre viene | Descripción |
| --- | --- | --- | --- |
| `id` | string | sí | Identificador del objeto, con su prefijo (iss_, inv_, ret_, cus_, prd_, emp_, bat_, brn_, whs_, stm_, adj_, evt_, whe_). |
| `livemode` | boolean | sí | true en producción (llaves fk_live_), false en pruebas (fk_test_). Lo de pruebas no vale ante el SAT. |
| `object` | `"store_connection"` | sí | Qué tipo de objeto es («invoice», «customer»…). |
| `issuer` | string | sí | El emisor dueño de la tienda. |
| `platform` | `shopify`, `mercadolibre` | sí | shopify o mercadolibre. |
| `shop` | string o null | sí | El dominio de la tienda de Shopify, o el id del vendedor en Mercado Libre (al autorizar). |
| `status` | `pending`, `active`, `disconnected` | sí | pending (Mercado Libre espera que el vendedor autorice en authorize_url), active o disconnected. |
| `authorize_url` | string o null | sí | Si está pending: la página de Mercado Libre donde el vendedor autoriza (vale un día; cada consulta da una nueva). Si no, null. |
| `settings` | objeto | sí | Cómo se vuelve ticket cada pedido. |
| `settings.product_key` | string o null | sí | c_ClaveProdServ de lo que vende, o null. |
| `settings.unit_key` | string o null | sí | c_ClaveUnidad, o null (la de la clave del producto). |
| `settings.iva` | `0`, `0.16`, `0.08`, `exento` | sí | Tasa de IVA incluida en los precios. |
| `settings.description` | string o null | sí | El concepto fijo de cada ticket, o null (el pedido y sus artículos). |
| `settings.folio_prefix` | string | sí | Lo que va antes del número del pedido en el folio. |
| `settings.payment_form` | string o null | sí | c_FormaPago cuando la del pedido no está en payment_forms, o null. |
| `settings.payment_forms` | objeto | sí | c_FormaPago por pasarela o tipo de pago. |
| `settings.auto_invoice` | boolean o null | sí | Mercado Libre: si se timbra al momento con los datos fiscales del comprador; null en Shopify. |
| `orders_count` | integer | sí | Cuántos pedidos se han vuelto tickets. (de -9007199254740991 a 9007199254740991) |
| `last_order_at` | string (date-time) o null | sí | Cuándo llegó el último, o null. |
| `last_error` | objeto o null | sí | El último problema (un pedido en dólares, un ticket que ya se facturó cuando se canceló el pedido…), o null. |
| `last_error.message` | string | sí | Qué pasó. |
| `last_error.at` | string (date-time) o null | sí | Cuándo. |
| `created_at` | string (date-time) o null | sí | Cuándo se conectó. |

```json
{
  "id": "stc_OufpKqnrvx9p3Kd8sLm2XyT5uBcW8sKdLx",
  "object": "store_connection",
  "livemode": false,
  "issuer": "iss_OufpKqnrvx9p",
  "platform": "shopify",
  "shop": "mi-tienda.myshopify.com",
  "status": "active",
  "authorize_url": null,
  "settings": {
    "product_key": "53101600",
    "unit_key": null,
    "iva": "0.16",
    "description": null,
    "folio_prefix": "SHOP-",
    "payment_form": null,
    "payment_forms": {
      "paypal": "31"
    },
    "auto_invoice": null
  },
  "orders_count": 128,
  "last_order_at": "2026-10-25T10:12:44-06:00",
  "last_error": null,
  "created_at": "2026-10-01T09:00:00-06:00"
}
```

## Errores

Puede responder 400, 401, 403, 404, 429, 500 con el cuerpo de error de siempre; cada código está en https://fiscalisto.com/docs/api/errores.md.
