developers Entrar a AdvantaCloud
Árbol del API · Clientes › upsertCustomerAddress

Registrar o actualizar un lugar de entrega

upsertCustomerAddress

Tipo

Mutation

Devuelve

UpsertCustomerAddressPayload

Permiso de la llave

Creacion de Cliente

Reintentos

Seguros con idempotencyKey

Estable

Registra un lugar de entrega nuevo para un cliente o actualiza uno que ya tiene, y devuelve el lugar de entrega como quedó.

Con el id que devuelve, el lugar de entrega queda disponible para las órdenes del cliente: aparece en addresses de orderDefaults y se envía en addressId al crear la orden con createOrder.

Al actualizar, envía otra vez todos los datos obligatorios, no sólo los que cambian. Si omites interiorNumber, se conserva el que tenía.

El lugar de entrega que devuelve trae la clave, la calle, la ciudad, el estado y el código postal. El número exterior e interior, la colonia, el municipio, el país y la descripción se guardan, pero CustomerAddress no los devuelve.

Reintentos seguros

Si la conexión se corta y no sabes si el cambio se guardó, repite la petición con la misma idempotencyKey, la misma llave y exactamente el mismo input: recibes el lugar de entrega como está en ese momento, sin duplicarlo. Una clave repetida con datos distintos responde CONFLICT; un dato omitido y uno enviado en null cuentan como distintos. Si la petición se rechazó por un dato inválido, la clave no queda usada. Las claves se recuerdan alrededor de 30 días.

upsertCustomerAddress(
  input: CustomerAddressInput!  idempotencyKey: String!
): UpsertCustomerAddressPayload

Argumentos

2

ArgumentoTipoDescripción
Lugar de entrega
inputCustomerAddressInput! CustomerAddressInput!

Los datos del lugar de entrega. Con input.id actualiza ese lugar de entrega; sin él registra uno nuevo. Ver CustomerAddressInput.

Obligatorio.
Reintentos
idempotencyKeyString! String!

Clave única que generas por cada registro o cambio, por ejemplo un UUID, de hasta 200 caracteres. Si repites la petición con la misma clave y los mismos datos, recibes el lugar de entrega que ya se guardó en lugar de otro nuevo.

Obligatorio.

Lo que devuelve

UpsertCustomerAddressPayload

Campos principales de UpsertCustomerAddressPayload:

CampoTipoDescripción
addressCustomerAddress CustomerAddress El lugar de entrega como quedó guardado; null si hubo errores.
errors[FieldError!]! [FieldError!]! Errores de los datos, cada uno con el dato que lo causó. Lista vacía si se guardó.

Ver todos los campos de UpsertCustomerAddressPayload

Permisos

Llave API Integraciones

Creacion de Cliente

La llave ve los registros de toda la empresa del subdominio.

Sin el permiso HTTP 422

La respuesta es HTTP 422 con el cuerpo {"error": "invalid_graphql_request"}, sin data.

Errores

CódigoCuándo ocurreQué hacer
HTTP 401Falta el header Authorization o la llave no existe en la empresa del subdominio. La respuesta no trae cuerpo.Revisa la llave y el subdominio. No reintentes.
HTTP 422La llave no tiene «Creacion de Cliente». La respuesta es HTTP 422 con el cuerpo {"error": "invalid_graphql_request"}, sin data.La llave necesita ese permiso; reintentar no ayuda.
VALIDATIONUn dato obligatorio llega vacío, o la idempotencyKey está vacía o pasa de 200 caracteres. Llega en upsertCustomerAddress.errors con el dato en field (por ejemplo exteriorNumber o idempotencyKey) y address llega null.Corrige el dato y vuelve a enviar.
NOT_FOUNDEl cliente no existe, o input.id no es un lugar de entrega de ese cliente. Llega en errors de la respuesta.Revisa customerId e input.id.
CONFLICTLa idempotencyKey ya se usó con otros datos.Para otros datos usa otra clave.
HTTP 422Falla interna o dato rechazado al guardar. El cuerpo es {"error": …}, sin data.Si no cambiaste nada, reintenta con la misma idempotencyKey.

Los errores de la consulta llegan con HTTP 200 en errors, con su código en extensions.code. Revisa siempre errors, no sólo el estatus HTTP. Errores y reintentos.

Relacionadas

Schema del 26 oct 2026 · Ver cambios¿Algo no cuadra? Repórtalo en ayuda.advanta.mx