Mall
El producto ha sido diseñado especialmente para aquellas empresas integradoras de distintas marcas con diferentes líneas de negocio las cuales pueden agruparse manteniendo su diversidad en un mismo espacio virtual o mall.
Ofreciendo la posibilidad de agrupar el pago de las compras realizadas en múltiples tiendas virtuales en una sola transacción.
https://app.payku.cl/ (Default server) · https://des.payku.cl/ (Sandbox server)Crear transacción Mall
Sección titulada «Crear transacción Mall»/api/mallEsto método permite la inserción de datos de una transacción.
Cuerpo de la solicitud
| Parámetro | Tipo | Descripción |
|---|---|---|
emailrequerido |
string <email> | Email del cliente. |
paymentrequerido |
integer | Identificador del medio de pago. Si se envía el identificador, el pagador será redireccionado directamente al medio de pago que se indique.
|
merchantrequerido |
array of arrays | Arreglo que contiene los clientes, cada cliente es un arreglo que contiene su token público o id de afiliación de marketplace, valor de transacción, descripción, id del evento en especifico que si no posee debe pasar null y numero de orden individual. |
orderrequerido |
integer | Orden del comercio, este debe ser único. |
urlreturnrequerido |
string <url> | url de retorno del comercio donde payku redirigirá al pagador. |
urlnotify |
string <url> | url callback del comercio donde payku notificará el pago. |
curl -X POST \https://BASE_URL/api/mall \-H 'Accept: application/json, text/plain, */*' \-H 'Sign: SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO \-H 'Authorization: Bearer TOKEN_PUBLICO \-H 'Content-Type: application/json' \-H 'Host: BASE_URL' \-d { "email": "[email protected]", "payment": 1, "merchant": [ ["81b6179e4feeef2b50af71d660f830de", "30000", "item1", null, "4545"], ["bcf6c06c523d9394be41bc0174c43d1476f274abb342955aac93cc8014737b3b","25000","item2", null, "4546"], ["TOKEN-PUBLICO","15000","item3", null, "4547"] ], "order": 123, "urlreturn": "https://youwebsite.com/urlreturn", "urlnotify": "https://youwebsite.com/urlnotify" }'$client = new \GuzzleHttp\Client(); $body = $client->request('POST', 'https://BASE_URL/api/mall', [ 'json' => [ 'payment' => 1, 'merchant' => [ ['81b6179e4feeef2b50af71d660f830de', '30000', 'item1', null, '4545'], ['bcf6c06c523d9394be41bc0174c43d1476f274abb342955aac93cc8014737b3b','25000','item2', null, '4546'], ['TOKEN-PUBLICO','15000','item3', null, '4547'] ], 'order' => 123, 'urlreturn' => 'https://youwebsite.com/urlreturn', 'urlnotify' => 'https://youwebsite.com/urlnotify' ], 'headers' => [ 'Sign' => 'f96ddc14a73a4dd6e009db2514108a3f44832795cd5ac50e6a80fd0b0ae92112', 'Authorization' => 'Bearer TOKEN-PUBLICO' ] ])->getBody();$response = json_decode($body);const request = async (data) => { const response = await fetch('https://BASE_URL/api/mall', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Sign': 'f96ddc14a73a4dd6e009db2514108a3f44832795cd5ac50e6a80fd0b0ae92112', 'Authorization': 'Bearer TOKEN-PUBLICO' }, body: JSON.stringify(data) }); const result = await response.json(); console.log(result)}let data = { payment: 1, merchant: [ ["81b6179e4feeef2b50af71d660f830de", "30000", "item1", null, "4545"], ["bcf6c06c523d9394be41bc0174c43d1476f274abb342955aac93cc8014737b3b","25000","item2", null, "4546"], ["TOKEN-PUBLICO","15000","item3", null, "4547"] ], order: 123, urlreturn: "https://youwebsite.com/urlreturn", urlnotify: "https://youwebsite.com/urlnotify"};request(data);Respuestas
{ "status": "success", "id": "malld200058ab44739ddee2adcd2f5", "individual_orders": [ { "merchant": "81b6179e4feeef2b50af71d660f830de", "amount": 30000, "subject": "item1", "event": null, "identificador": "9917068816213146", "individual_order": "9654" }, { "merchant": "81b6179e4feeef2b50af71d66f7830de", "amount": 25000, "subject": "item2", "event": null, "identificador": "9917068816213146", "individual_order": "9654" }, { "merchant": "81b6179e4fffff2b50af71d66f7830de", "amount": 15000, "subject": "item3", "event": null, "identificador": "9917068816213146", "individual_order": "9654" } ], "url": "https://BASE_URL/gateway/mall/malld200058ab44739ddee2adcd2f5"}Campos de la respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
status |
string | Estatus de transacción.Los posibles estados que puede obtener son los siguientes:
|
id |
string | Identificador de la transacción creado por payku. |
individual_orders |
array of objects | Arreglo que contiene información de los beneficiarios. |
merchant |
string | Nombre del beneficiario. |
amount |
string | Monto del producto o servicio. |
detail |
string | Descripción de la transacción. |
event |
string | ID del evento, si no poseé evento debe pasar null. |
identificador |
string | Identificador de la transacción. |
individual_order |
string | Identificador individual de la transacción. |
url |
string | URL a redireccionar al usuario. |
Error en la solicitud.
{ "status": "failed", "type": "Unprocessable Entity", "message_error": "subject:invalid,amount:is empty,email:is empty,order:invalid"}Campos de la respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
status |
string | Estatus de la solicitud. |
type |
string | Tipo de error ocurrido. |
message_error |
string | Mensaje de error |
Token Publico incorrecto.
{ "type": "Unauthorized", "message_error": { "error": "waiting token public" }}Campos de la respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
type |
string | Tipo de error ocurrido. |
message_error |
object | |
error |
string | Mensaje de error |
Obtener transacción Mall
Sección titulada «Obtener transacción Mall»/api/mall/{identificadorTrasaccion}Este método permite obtener la información de un pago realizado en payku
Parámetros de ruta
| Parámetro | Tipo | Descripción |
|---|---|---|
idrequerido |
string | id de la transacción a solicitar |
curl -X GET \https://BASE-URL/api/mall/ID-IDENTIFICADOR \-H 'Accept: application/json, text/plain, */*' \-H 'Authorization: Bearer TOKEN-PUBLICO' \-H 'Content-Type: application/json' \-H 'Host: BASE-URL ' \$client = new \GuzzleHttp\Client(); $body = $client->request('GET', 'https://BASE_URL/api/mall/malld200058ab44739ddee2adcd2f5', [ 'headers' => [ 'Sign' => 'f96ddc14a73a4dd6e009db2514108a3f44832795cd5ac50e6a80fd0b0ae92112', 'Authorization' => 'Bearer TOKEN-PUBLICO' ] ])->getBody();$response = json_decode($body);const request = async () => { const response = await fetch('https://BASE_URL/api/mall/malld200058ab44739ddee2adcd2f5', { method: 'GET', headers: { 'Content-Type': 'application/json', 'Sign' => 'f96ddc14a73a4dd6e009db2514108a3f44832795cd5ac50e6a80fd0b0ae92112', 'Authorization' => 'Bearer TOKEN-PUBLICO' }, }); const result = await response.json(); console.log(result)}request();Respuestas
{ "status": "success", "id": "malld200058ab44739ddee2adcd2f5", "created_at": "2023-10-16 11:23:19", "amount": "30000", "payment": { "media": "Webpay", "verification_key": "d60aaa661ea74d824373806c8aa38137", "authorization_code": "441864", "last_4_digits": "5135", "card_type": "", "currency": "CLP" }, "merchant": [ { "name": "John Doe", "amount": 30000, "subject": "item1" }, { "name": "Jane Doe", "amount": 25000, "subject": "item2" }, { "name": "Enteprise", "amount": 15000, "subject": "item3" } ]}Campos de la respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
status |
string | Estatus de transacción.Los posibles estados que puede obtener son los siguientes:
|
id |
string | Identificador de la transacción creado por payku. |
created_at |
string | Fecha de registro. |
amount |
string | Monto. |
payment |
object | |
media |
string | Medio de pago, utilizado por el usuario. |
verification_key |
string | Código de verificación creado por payku. |
authorization_code |
string | Código de autorización. |
last_4_digits |
string | Últimos 4 dígitos de la tarjeta afiliada. |
card_type |
string | Tipo de tarjeta. |
currency |
string | Moneda. |
merchant |
array of objects | Arreglo que contiene información de los beneficiarios. |
name |
string | Nombre del beneficiario. |
amount |
string | Monto del producto o servicio. |
subject |
string | Descripción del producto o servicio. |
Error en la solicitud.
{ "status": "failed", "type": "Unprocessable Entity", "message_error": "subject:invalid,amount:is empty,email:is empty,order:invalid"}Campos de la respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
status |
string | Estatus de la solicitud. |
type |
string | Tipo de error ocurrido. |
message_error |
string | Mensaje de error |
Token Publico incorrecto.
{ "type": "Unauthorized", "message_error": { "error": "waiting token public" }}Campos de la respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
type |
string | Tipo de error ocurrido. |
message_error |
object | |
error |
string | Mensaje de error |
Identificador no existe.
{ "status": "failed", "type": "Not Found", "id": "is not valid"}Campos de la respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
status |
string | Estatus de la solicitud. |
type |
string | Tipo de error ocurrido. |
id |
string | Información de id |