Tapi Logo

Recomendamos ingresar en Desktop

Nuestra documentación y herramientas de integración están optimizadas para brindarte la mejor experiencia en computadora.

Por favor, accede desde una computadora para continuar.

Referencia API

Giftcard Purchase Confirmation

POST/payment

Permite confirmar y registrar el resultado final de una operación de giftcard.

Objetivo

Este endpoint permite realizar la compra de subscripciones y pines digitales. Una vez completada la transacción exitosamente, la respuesta incluye el código de activación necesario para que el usuario final pueda activar y utilizar su giftcard en la plataforma correspondiente.

Request

Headers

CampoTipoObligatorioDescripción
x-api-key
StringSíAPI Key requerida para validar la autenticidad del mensaje.
x-authorization-token
StringSíToken de autenticación obtenido en el login.

Body Parameters

ParámetroTipoRequeridoDescripción
companyCode
StringSíCódigo de la compañía asociada al producto.
productId
StringSíIdentificador del producto asociado a la operación.
amount
NumberSíMonto a pagar por la suscripción o giftcard.
paymentMethod
StringSíMétodo de pago utilizado. Valores posibles: DEBIT, ACCOUNT, CREDIT.
externalPaymentId
StringSíID de la operación provisto por el cliente.
externalClientId
StringSíID del usuario final asignado por el cliente.

Response

Response Body

ParámetroTipoDescripción
operationId
StringID de la operación.
createdAt
StringFecha y hora de creación de la operación.
companyCode
StringCódigo de la compañía asociada al producto.
companyName
StringNombre de la compañía.
amount
NumberMonto de la transacción.
activatePin
StringPIN de activación para la giftcard.
clientUserName
StringNombre de usuario del cliente.
externalClientId
StringID del usuario final asignado por el cliente.
externalPaymentId
StringID de la operación provisto por el cliente.
additionalData
ObjectObjeto de estructura variable según el proveedor y el producto. Ver Campos de additionalData.

Campos de additionalData

El contenido de additionalData depende del proveedor y del producto comprado. Ningún campo de este objeto está garantizado.

Al integrar, tené en cuenta lo siguiente:

  • Tratá additionalData como un objeto de estructura variable.
  • Ignorá los campos que tu integración no reconozca.
  • Tu integración no debe fallar si falta algún campo, ni si additionalData llega vacío ({}) o como null.

El PIN o código de activación llega siempre en el campo activatePin, en el nivel raíz de la respuesta. Nunca llega dentro de additionalData.

CampoTipoObligatorioDescripción
legendStringNoLeyenda o instrucciones de canje del producto, para mostrar al usuario final.
expirationDateString (fecha YYYY-MM-DD)NoFecha de vencimiento del PIN o gift card, cuando el proveedor la informa.
serialNumberStringNoNúmero de serie del PIN o tarjeta, cuando el proveedor lo informa.
providerOperationIdStringNoIdentificador de la operación del lado del proveedor.

Ejemplo: additionalData con leyenda y vencimiento

{
  "operationId": "3f9c2a1e-7b4d-4e8a-9c21-5d6e8f0a1b2c",
  "createdAt": "2026-04-09T15:32:10.000Z",
  "companyCode": "MX-S-00001",
  "companyName": "Gift Card Ejemplo",
  "amount": 200,
  "activatePin": "ABCD-EFGH-IJKL-1234",
  "clientUserName": "cliente_demo",
  "externalClientId": "cliente-0001",
  "externalPaymentId": "pago-0001",
  "additionalData": {
    "legend": "Ingresá el código en la sección Canjear de la tienda del proveedor.",
    "expirationDate": "2026-10-09"
  }
}

Ejemplo: additionalData mínimo

{
  "operationId": "8a1d4c7e-2f3b-4a9d-b6e5-0c1f2a3b4d5e",
  "createdAt": "2026-04-09T16:05:44.000Z",
  "companyCode": "MX-S-00002",
  "companyName": "Suscripción Ejemplo",
  "amount": 150,
  "activatePin": "WXYZ-9876-5432",
  "clientUserName": "cliente_demo",
  "externalClientId": "cliente-0002",
  "externalPaymentId": "pago-0002",
  "additionalData": {
    "serialNumber": "SN-000123456"
  }
}

Según el producto, additionalData también puede llegar vacío ({}) o como null.

Consideraciones

  • Este endpoint debe ser implementado por el cliente para recibir la confirmación de resultado de TAPI.
  • El campo 'status' puede ser 'confirmed' o 'failed'.
Ver la librería de errores de esta referencia

CLIENT LIBRARIES

REQUEST EXAMPLE

curl --request POST \
--url https://subscriptions.homo.tapila.cloud/payment \
--header 'x-authorization-token: YOUR_TOKEN_HERE' \
--header 'x-api-key: YOUR_API_KEY_HERE' \
--header 'Content-Type: application/json' \
--data '{
  "companyCode": "",
  "productId": "",
  "amount": "",
  "paymentMethod": "ACCOUNT",
  "externalPaymentId": "",
  "externalClientId": ""
}'