API transaction validation ES
From Wiki
Deutsch | English | Español | Français | Italiano | Nederlands | Polski | Português (Brasil) | Svenska
Contents |
Punto final de la API de validación de transacciones
La API de anunciante de Awin admite validaciones de transacciones, lo que te permite aprobar, rechazar y modificar transacciones con la API de Awin.
La API de validación de transacciones incluye un punto final de lotes que te permite agrupar múltiples solicitudes de validación de una vez.
El punto final de la API de validación de transacciones forma parte de la infraestructura global de API de Awin. Como tal, utiliza un token OAUTH2 basado en el usuario. Para obtener más información sobre OAUTH2, consulta la página de wiki API Authentication and Authorisation.
El objetivo de Awin es procesar tus solicitudes de validación de transacciones dentro de los límites temporales y financieros de tu empresa. Así, te aconsejamos que envíes las solicitudes antes de las 12:00 (CET) del día 15 del mes y antes de las 12:00 (CET) del último día del mes. |
Validación de transacciones en lote
La validación de transacciones en lote permite la transferencia y el posterior procesamiento de una lista de una o más transacciones con formato JSON de una vez. Awin proporciona un jobID rastreable para que puedas supervisar el progreso de tus solicitudes de validación.
Cómo llamar a la API
Método:
POST
URL:
https://api.awin.com/advertisers/<yourAdvertiserId>/transactions/batch
Cuerpo de la solicitud:
El cuerpo de la solicitud incluye un conjunto de objetos de transacción. Cada objeto representa la acción que se va a ejecutar, la transacción y, si es preciso, parámetros adicionales.
Las transacciones se identifican mediante transactionId o mediante orderRef, transactionDate y timezone.
"transactionId": "484816099",
"orderRef": "123ABC555", "transactionDate": "2017-02-20T22:04:00", "timezone": "Europe/Paris"
Operaciones disponibles
Aprobar
Aprobar con transactionId:
{ "action": "approve", "transaction": { "transactionId": 1234567 } }
Aprobar con orderRef, transactionDate y timezone:
{ "action": "approve", "transaction": { "orderRef": "123ABC555", "transactionDate": "2017-02-20T22:04:00", "timezone": "Europe/Paris" } }
Rechazar
Rechazar con transactionId:
{ "action": "decline", "transaction": { "transactionId": 1234567, "declineReason": "order returned" } }
Rechazar con orderRef, transactionDate y timezone:
{ "action": "decline", "transaction": { "orderRef": "123ABC555", "transactionDate": "2017-02-20T22:04:00", "timezone": "Europe/Paris", "declineReason": "order returned" } }
Modificar
Modificar con transactionId:
{ "action": "amend", "approve": false, "transaction": { "transactionId": 1234567, "amendReason": "partial return", "currency": "EUR", "saleAmount": 55.96, "transactionParts": [ { "amount": 44.76, "commissionGroupCode": "DEFAULT" }, { "amount": 11.20, "commissionGroupCode": "EXISTING" } ] } }
Modificar con orderRef, transactionDate y timezone:
{ "action": "amend", "approve": false, "transaction": { "orderRef": "123ABC555", "transactionDate": "2017-02-20T22:04:00", "timezone": "Europe/Paris", "amendReason": "partial return", "currency": "EUR", "saleAmount": 55.96, "transactionParts": [ { "amount": 44.76, "commissionGroupCode": "DEFAULT" }, { "amount": 11.20, "commissionGroupCode": "EXISTING" } ] } }
Nota:
Para garantizar la integridad de las transacciones de modificación, el total de las partes de la transacción debe ser igual a saleAmount. De lo contrario, para equilibrar las posibles diferencias, "DEFAULT" commissionGroup se ajusta de forma automática.
Si estableces el parámetro de aprobación en «true», la API modifica en primer lugar la transacción y, después, la aprueba de inmediato.
Cuerpo de la solicitud
Debes combinar las acciones del cuerpo de la solicitud con el cuerpo de la solicitud en lote final. A continuación, se incluye un ejemplo de un lote de tres transacciones, una transacción de «aprobar», una de «modificar» y una de «rechazar»:
[ { "action": "amend", "approve": false, "transaction": { "transactionId": "484816099", "amendReason": "partial return", "currency": "EUR", "saleAmount": 44.76, "transactionParts": [{ "amount": 44.76, "commissionGroupCode": "DEFAULT" }] } }, { "action": "decline", "transaction": { "transactionId": 1234567, "declineReason": "order returned" } }, { "action": "approve", "transaction": { "orderRef": "123ABC555", "transactionDate": "2017-02-20T22:04:00", "timezone": "Europe/Paris" } } ]
Para obtener los datos necesarios, como transactionId, utiliza el método GET para este punto final. Consulta Transacciones GET (lista) para obtener más información.
Cuerpo de la respuesta
{ "jobId": "5cbefc8646e0fb0001c4670e" }
Este jobId te permite comprobar el estado de cualquier trabajo que esté en curso hasta 60 días después de haberlo creado.
Punto final de estado de trabajo
Estado de trabajo general
Método:
GET
URL:
https://api.awin.com/advertisers/<yourAdvertiserId>/transactions/jobs/<jobId>
Cuerpo de la respuesta
{ "jobId": 5cbefc8646e0fb0001c4670e, "status": "DONE", "transactionCount": 100, "allTransactions": null, "errorCount": 0, "failedTransactions": null, "creationDate": "2017-02-20T22:04:00", "completionDate": "2017-02-20T22:24:00" }
Si no consultas una lista de transacciones detallada o una lista de errores para un trabajo, los objetos allTransactions y failedTransactions recuperan el valor predeterminado «null». Para obtener más información, consulta el apartado «Lista detallada de errores» en esta página.
Lista detallada de errores
Para proporcionar una lista adicional de las transacciones que generaron un error durante la validación, añade el parámetro «output=errors» a la URL. La API enumera las transacciones individuales que se incluyen en el objeto failedTransactions. Para generar una lista completa de todas las transacciones que incluye el objeto allTransactions, añade el parámetro «output=all» a la URL en su lugar.
Método:
GET
URL:
https://api.awin.com/advertisers/<yourAdvertiserId>/transactions/jobs/<jobId>?output=errors https://api.awin.com/advertisers/<yourAdvertiserId>/transactions/jobs/<jobId>?output=all
Cuerpo de la respuesta
{ "jobId":"5cb8290460b59a6e7ae22d0b", "status":"DONE", "transactions":2, "allTransactions":null, "errors":2, "failedTransactions": [ { "transactionId":1234567, "orderRef":null, "transactionDate":null, "timezone":"", "code":"[404 NOT_FOUND]", "description":null }, { "transactionId":1234568, "orderRef":null, "transactionDate":null, "timezone":"", "code":"[404 NOT_FOUND]", "description":null } ], "creationDate":"2019-04-18T09:49:35.558", "completionDate":"2019-04-18T09:49:36.513" }
Lista de trabajos
Para generar una lista de todos los trabajos de los últimos 60 días, llama al punto final de trabajos sin indicar una ID de trabajo específica.
Método:
GET
URL:
https://api.awin.com/advertisers/<yourAdvertiserId>/transactions/jobs
Códigos de respuesta habituales
La siguiente tabla incluye una lista de posibles motivos de respuesta para códigos de respuesta comunes que pueden aparecer al utilizar la API:
Código de respuesta | Mensaje de respuesta | Posible motivo de respuesta |
200 | OK | La transacción se ha validado según lo deseado. |
304 | NOT_MODIFIED | La transacción ya se encontraba en el estado de comisión deseado. Por ejemplo, si se intenta rechazar una transacción rechazada. |
404 | NOT_FOUND | El valor transactionId o el conjunto de valores orderRef, transactionDate y timezone no se corresponden con una transacción. |
422 | UNPROCESSABLE_ENTITY | No ha sido posible procesar la solicitud debido al estado actual de la transacción. Por ejemplo, si se intenta aprobar una transacción rechazada. |