Suscripción
Permite la vinculación de un plan a un cliente, para posteriormente realizar cargos recurrentes automáticamente, según se defina en cada plan.
https://app.payku.cl/ (Default server) · https://des.payku.cl/ (Sandbox server)Crear cliente
Sección titulada «Crear cliente»/api/suclientEste método permite la inserción de datos de un cliente.
Cuerpo de la solicitud
| Parámetro | Tipo | Descripción |
|---|---|---|
emailrequerido |
string <email> | Email del cliente. |
namerequerido |
string | Nombre del cliente |
rut |
string | Registro Único Tributario del cliente, será permitido el ingreso de este dato con ó sin guión. |
phonerequerido |
string | Teléfono del cliente. |
address |
string | Dirección del cliente. |
country |
string | País del cliente. |
region |
string | Región del cliente. |
city |
string | Ciudad del cliente. |
postal_code |
string | Código postal del cliente. |
additional_parameters |
object | Parámetros adicionales del cliente (Opcional). |
parameter_1 |
string | Nombre del parámetro dado por el usuario payku |
parameter_2 |
string | Nombre del parámetro dado por el usuario payku |
curl -X POST \https://BASE_URL/api/suclient \-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]", "name": "John Doe", "rut": "111111111", "phone": "923122312", "address": "Moneda 101", "country": "Chile", "region": "Metropolitana", "city": "Santiago", "postal_code": "850000, "additional_parameters":{ "parameter_1": "example", "parameter_2": "example 2", } }'$client = new \GuzzleHttp\Client(); $body = $client->request('POST', 'https://BASE_URL/api/suclient', [ 'json' => [ 'name' => 'John Doe', 'rut' => '111111111', 'phone' => '923122312', 'address' => 'Moneda 101', 'country' => 'Chile', 'region' => 'Metropolitana', 'city' => 'Santiago', 'postal_code' => '850000', 'additional_parameters' => [ 'parameter_1' => 'example', 'parameter_2' => 'example 2' ] ], 'headers' => [ 'Sign' => 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization' => 'Bearer TOKEN_PUBLICO' ] ])->getBody();$response = json_decode($body);const request = async (data) => { const response = await fetch('https://BASE_URL/api/suclient', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Sign': 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization': 'Bearer TOKEN_PUBLICO' }, body: JSON.stringify(data) }); const result = await response.json(); console.log(result)}
let data = { name: "John Doe", rut: "111111111", phone: "923122312", address: "Moneda 101", country: "Chile", region: "Metropolitana", city: "Santiago", postal_code: "850000", additional_parameters:{ parameter_1: "example", parameter_2: "example 2", }};
request(data);Respuestas
{ "status": "active", "id": "cl0be4c8e623c167bc8b777", "rut": "11111111", "name": "John Doe", "phone": "923122312", "address": "Moneda 101", "country": "Chile", "region": "Metropolitana", "city": "Santiago", "postal_code": "850000", "created_at": "2023-09-29", "update_at": null, "subcriptions": null, "additional_parameters": { "parameter_1": "example", "parameter_2": "example" }}Campos de la respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
status |
string | Estatus del cliente. |
id |
string | Identificador de la transacción creado por payku. |
rut |
string | Registro Único Tributario del cliente. |
name |
string | Nombre del cliente. |
phone |
string | Teléfono del cliente. |
email |
string | Email del cliente. |
address |
string | Dirección del cliente. |
country |
string | País del cliente. |
region |
string | Región del cliente. |
city |
string | Ciudad del cliente. |
postal_code |
string | Código postal del cliente. |
created_at |
string <datetime> | Fecha de registro. |
update_at |
string <datetime> | Fecha de modificación. |
subcriptions |
object | suscripciones del cliente. |
additional_parameters |
object | Parámetros adicionales del cliente (Opcional). |
parameter_1 |
string | Nombre del parámetro dado por el usuario payku |
parameter_2 |
string | Nombre del parámetro dado por el usuario payku |
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 Público 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 cliente
Sección titulada «Obtener cliente»/api/suclient/{identificadorCliente} o {emailCliente}Este método permite obtener el detalle de un cliente.
Parámetros de ruta
| Parámetro | Tipo | Descripción |
|---|---|---|
idrequerido |
string | Identificador único de transacción por payku o email del cliente. |
curl -X GET \https://BASE_URL/api/suclient/id \-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' \$client = new \GuzzleHttp\Client(); $body = $client->request('GET', 'https://BASE_URL/api/suclient/cla90927fa9b30e1dfffa0', [ 'headers' => [ 'Sign' => 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization' => 'Bearer TOKEN_PUBLICO' ] ])->getBody();$response = json_decode($body);const request = async () => { const response = await fetch('https://BASE_URL/api/suclient/cla90927fa9b30e1dfffa0', { method: 'GET', headers: { 'Content-Type': 'application/json', 'Sign': 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization': 'Bearer TOKEN_PUBLICO' }, }); const result = await response.json(); console.log(result)}
request(data);Respuestas
{ "status": "active", "id": "cl0be4c8e623c167bc8b777", "rut": "11111111", "name": "John Doe", "phone": "923122312", "address": "Moneda 101", "city": "Santiago", "region": "Metropolitana", "country": "Chile", "postal_code": "850000", "created_at": "2023-09-29 22:00:00", "update_at": null, "active_cards": [ { "last_4_digits": "XXXXXXXXXXXX6622", "identifier": "surec804a8ed60c747cb8839", "card_type": "Visa", "register": "2023-07-26 08:00:19" }, { "last_4_digits": "XXXXXXXXXXXX1234", "identifier": "surec804a8ed60c747cb8843", "card_type": "MasterCard", "register": "2023-01-01 12:00:00" } ], "additional_parameters": { "parameter_1": "example", "parameter_2": "example" }, "subcriptions": { "id": "su867f07772aa5f5175527", "created_at": "2023-09-29 19:58:35", "status": "active", "amount": "15000", "plan": [ { "id": "pl9697fb170834ad42dd00", "name": "test plan", "currency": "CLP" } ], "cards": [ { "last_4_digits": "XXXXXXXXXXXX6623", "card_type": "Visa" } ], "transactions": [ { "created_at": "2023-09-30 19:58:35", "date_payment": "2023-09-30", "amount": 10000, "transaction": 204444, "authorization_code": "1234", "order": "001", "description": "descripcion", "status": "success" } ] }}Campos de la respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
status |
string | Estatus del cliente. |
id |
string | Identificador de la transacción creado por payku. |
rut |
string | Registro Único Tributario del cliente. |
name |
string | Nombre del cliente. |
phone |
string | Teléfono del cliente. |
email |
string | Email del cliente. |
address |
string | Dirección del cliente. |
city |
string | Ciudad del cliente. |
region |
string | Región del cliente. |
country |
string | País del cliente. |
postal_code |
string | Código postal del cliente. |
created_at |
string <datetime> | Fecha de registro. |
update_at |
string <datetime> | Fecha de modificación. |
active_cards |
array of objects | |
last_4_digits |
string | Últimos 4 dígitos de la tarjeta afiliada. |
identifier |
string | identificador de la tarjeta. |
card_type |
string | Tipo de tarjeta. |
register |
string | Fecha de registro. |
additional_parameters |
object | Parámetros adicionales del cliente (Opcional). |
parameter_1 |
string | Nombre del parámetro dado por el usuario payku |
parameter_2 |
string | Nombre del parámetro dado por el usuario payku |
subcriptions |
object | |
id |
string | Identificador de la suscripción creado por payku. |
created_at |
string <datetime> | Fecha de registro. |
status |
string | Estatus de la suscripción. Los posibles estados que puede obtener son los siguientes:
|
amount |
string | Monto de la suscripción. |
plan |
array of objects | |
id |
string | Identificador del plan creado por payku. |
name |
string | Nombre del plan. |
currency |
string | Moneda. |
cards |
array of objects | |
last_4_digits |
string | Últimos 4 dígitos de la tarjeta afiliada. |
card_type |
string | Tipo de tarjeta. |
transactions |
array of objects | |
created_at |
string | Fecha de creación de la transacción. |
date_payment |
string | Fecha en que se realizo la transacción. |
amount |
int | Monto de transacción. |
transaction |
int | Número de transacción. |
authorization_code |
string | Código de autorización. |
order |
string | Número de orden. |
description |
string | Descripción. |
status |
string | Estatus de transacción. Los posibles estados que puede obtener son los siguientes:
|
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 Público 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 |
Actualizar cliente
Sección titulada «Actualizar cliente»/api/suclient/{identificadorCliente} o {emailCliente}Este método permite la actualización de los datos de un cliente.
Parámetros de ruta
| Parámetro | Tipo | Descripción |
|---|---|---|
idrequerido |
string | Identificador único de transacción por payku. |
Cuerpo de la solicitud
| Parámetro | Tipo | Descripción |
|---|---|---|
email |
string | Nombre del cliente |
name |
string | Nombre del cliente |
phone |
string | Teléfono del cliente. |
address |
string | Dirección del cliente. |
country |
string | País del cliente. |
region |
string | Región del cliente. |
city |
string | Ciudad del cliente. |
postal_code |
string | Código postal del cliente. |
additional_parameters |
object | Parámetros adicionales del cliente (Opcional). |
parameter_1 |
string | Nombre del parámetro dado por el usuario payku |
parameter_2 |
string | Nombre del parámetro dado por el usuario payku |
curl -X PUT \https://BASE_URL/api/suclient/id \-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]", "name": "John Doe Doe", "phone": "923122312", "address": "Moneda 121", "country": "Chile", "region": "Metropolitana", "city": "Santiago", "postal_code": "750000", "additional_parameters":{ "parameter_1": "example", "parameter_2": "example 2", } }'$client = new \GuzzleHttp\Client(); $body = $client->request('PUT', 'https://BASE_URL//api/suclient/cla90927fa9b30e1dfffa0', [ 'json' => [ 'name' => 'John Doe Doe', 'phone' => '923122312', 'address' => 'Moneda 121', 'country' => 'Chile', 'region' => 'Metropolitana', 'city' => 'Santiago', 'postal_code' => '750000', 'additional_parameters' => [ 'parameter_1' => 'example', 'parameter_2' => 'example 2' ] ], ], ], 'headers' => [ 'Sign' => 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization' => 'Bearer TOKEN_PUBLICO' ]])->getBody();$response = json_decode($body);const request = async (data) => { const response = await fetch('https://BASE_URL/api/suclient', { method: 'PUT', headers: { 'Content-Type': 'application/json', 'Sign': 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization': 'Bearer TOKEN_PUBLICO' }, body: JSON.stringify(data) }); const result = await response.json(); console.log(result)}
let data = { name: "John Doe Doe", phone: "923122312", address: "Moneda 121", country: "Chile", region: "Metropolitana", city: "Santiago", postal_code: "750000", additional_parameters:{ parameter_1: "example", parameter_2: "example 2", }};
request(data);Respuestas
{ "status": "active", "id": "cl0be4c8e623c167bc8b777", "name": "John Doe Doe", "phone": "923122312", "address": "Moneda 121", "city": "Santiago", "region": "Metropolitana", "country": "Chile", "postal_code": "750000", "created_at": "2023-09-29 22:00:00", "update_at": "2023-10-2 08:32:52", "additional_parameters": { "parameter_1": "example", "parameter_2": "example" }, "subcriptions": { "id": "su867f07772aa5f5175527", "created_at": "2023-09-29 19:58:35", "status": "active", "amount": "15000", "plan": [ { "id": "pl9697fb170834ad42dd00", "name": "test plan", "currency": "CLP" } ], "cards": [ { "last_4_digits": "XXXXXXXXXXXX6623", "card_type": "Visa" } ], "transactions": [ { "created_at": "2023-09-30 19:58:35", "date_payment": "2023-09-30", "amount": 10000, "transaction": 204444, "authorization_code": "1234", "order": "001", "description": "descripcion", "status": "success" } ] }}Campos de la respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
status |
string | Estatus del cliente. |
id |
string | Identificador de la transacción creado por payku. |
name |
string | Nombre del cliente. |
phone |
string | Teléfono del cliente. |
email |
string | Email del cliente. |
address |
string | Dirección del cliente. |
city |
string | Ciudad del cliente. |
region |
string | Región del cliente. |
country |
string | País del cliente. |
postal_code |
string | Código postal del cliente. |
created_at |
string <datetime> | Fecha de registro. |
update_at |
string <datetime> | Fecha de modificación. |
additional_parameters |
object | Parámetros adicionales del cliente (Opcional). |
parameter_1 |
string | Nombre del parámetro dado por el usuario payku |
parameter_2 |
string | Nombre del parámetro dado por el usuario payku |
subcriptions |
object | |
id |
string | Identificador de la suscripción creado por payku. |
created_at |
string <datetime> | Fecha de registro. |
status |
string | Estatus de la suscripción. Los posibles estados que puede obtener son los siguientes:
|
amount |
string | Monto de la suscripción. |
plan |
array of objects | |
id |
string | Identificador del plan creado por payku. |
name |
string | Nombre del plan. |
currency |
string | Moneda. |
cards |
array of objects | |
last_4_digits |
string | Últimos 4 dígitos de la tarjeta afiliada. |
card_type |
string | Tipo de tarjeta. |
transactions |
array of objects | |
created_at |
string | Fecha de creación de la transacción. |
date_payment |
string | Fecha en que se realizo la transacción. |
amount |
int | Monto de transacción. |
transaction |
int | Número de transacción. |
authorization_code |
string | Código de autorización. |
order |
string | Número de orden. |
description |
string | Descripción. |
status |
string | Estatus de transacción.Los posibles estados que puede obtener son los siguientes:
|
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 Público 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 |
Eliminar cliente
Sección titulada «Eliminar cliente»/api/suclient/{identificadorCliente} o {emailCliente}Este método permite la eliminación de un cliente asociado a un ID de usuario.
Parámetros de ruta
| Parámetro | Tipo | Descripción |
|---|---|---|
idrequerido |
string | Identificador único del cliente creado por payku. |
curl -X DELETE \https://BASE_URL/api/suclient/id \-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' \$client = new \GuzzleHttp\Client(); $body = $client->request('DELETE', 'https://BASE_URL/api/suclient/cla90927fa9b30e1dfffa0', [ 'headers' => [ 'Sign' => 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization' => 'Bearer TOKEN_PUBLICO' ] ])->getBody(); $response = json_decode($body);const request = async () => { const response = await fetch('https://BASE_URL/api/suclient/cla90927fa9b30e1dfffa0', { method: 'DELETE', headers: { 'Content-Type': 'application/json', 'Sign': 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization': 'Bearer TOKEN_PUBLICO' }, }); const result = await response.json(); console.log(result)}
request(data);Respuestas
{ "status": "success", "id": "cl0be4c8e623c167bc8b777"}Campos de la respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
status |
string | Estatus de cliente. |
id |
string | Identificador de la transacción creado por payku. |
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 Público 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 clientes
Sección titulada «Obtener clientes»/api/suclient/customersEste método permite obtener todos los clientes asociados a un ID de usuario , este método permite una paginación con un máximo de 100 registros por página, además, posee un filtro de fecha, si este parámetro no es ingresado se tomará la fecha actual, para la paginación es necesario agregar al final del endpoint lo siguiente ?page=1&per_page=100 siendo el primer parámetro el número de la página y el segundo el número de registros por página.
curl -X GET \https://BASE_URL/api/suclient/customers \-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' \$client = new \GuzzleHttp\Client(); $body = $client->request('GET', 'https://BASE_URL/api/suclient/customers', [ 'headers' => [ 'Sign' => 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization' => 'Bearer TOKEN_PUBLICO' ] ])->getBody();$response = json_decode($body);const request = async () => { const response = await fetch('https://BASE_URL/api/suclient/customers', { method: 'GET', headers: { 'Content-Type': 'application/json', 'Sign': 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization': 'Bearer TOKEN_PUBLICO' }, }); const result = await response.json(); console.log(result)}
request(data);Respuestas
[ { "Customers": [ { "last_4_digits": "XXXXXXXXXXXX6622", "identifier": "surec804a8ed60c747cb8839", "card_type": "Visa", "register": "2023-07-26 08:00:19" }, { "last_4_digits": "XXXXXXXXXXXX1234", "identifier": "surec804a8ed60c747cb8843", "card_type": "MasterCard", "register": "2023-01-01 12:00:00", "additional_parameters": { "type": "array", "description": "Parámetros adicionales que puede enviar payku.", "example": "" }, "subcriptions": { "type": "array", "items": { "type": "object", "properties": { "id": { "description": "Identificador de la suscripción creado por payku.", "type": "string", "example": "su867f07772aa5f5175527" }, "created_at": { "description": "Fecha de registro.", "type": "string", "example": "2023-09-29 19:58:35", "format": "datetime" }, "status": { "description": "Estatus de la suscripción. Los posibles estados que puede obtener son los siguientes:\n- register\n- active\n- finish\n- delete\n- cancel\n- suspended\n", "type": "string", "example": "active" }, "amount": { "description": "Monto de la suscripción.", "type": "string", "example": "15000" }, "plan": { "type": "array", "items": { "type": "object", "properties": { "id": { "description": "Identificador del plan creado por payku.", "type": "string", "example": "pl9697fb170834ad42dd00" }, "name": { "description": "Nombre del plan.", "type": "string", "example": "test plan" }, "currency": { "description": "Moneda.", "type": "string", "example": "CLP" } } } }, "cards": { "type": "array", "items": { "type": "object", "properties": { "last_4_digits": { "description": "Últimos 4 dígitos de la tarjeta afiliada.", "type": "string", "example": "XXXXXXXXXXXX6623" }, "card_type": { "description": "Tipo de tarjeta.", "type": "string", "example": "Visa" } } } }, "transactions": { "type": "array", "items": { "type": "object", "properties": { "created_at": { "description": "Fecha de creación de la transacción.", "type": "string", "example": "2023-09-30 19:58:35" }, "date_payment": { "description": "Fecha en que se realizo la transacción.", "type": "string", "example": "2023-09-30" }, "amount": { "description": "Monto de transacción.", "type": "int", "example": 10000 }, "transaction": { "description": "Número de transacción.", "type": "int", "example": 204444 }, "authorization_code": { "description": "Código de autorización.", "type": "string", "example": "1234" }, "order": { "description": "Número de orden.", "type": "string", "example": "001" }, "description": { "description": "Descripción.", "type": "string", "example": "descripcion" }, "status": { "description": "Estatus de transacción.Los posibles estados que puede obtener son los siguientes:\n- pending\n- success\n- retry\n- canceled by customer\n- canceled by paymaster\n- canceled by payku\n- maximum attempt limit\n- first payment rejected\n- payment consumes failed\n", "type": "string", "example": "success" } } } } } } } } ] }]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 Público 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 |
Crear suscripción
Sección titulada «Crear suscripción»/api/sususcriptionEste método permite al usuario de una cuenta payku crear una suscripción a un plan de suscripción de monto fijo, suscripción de plan de consumo y suscripción de monto variable a uno de sus clientes, para este ultimo tipo de suscripción es necesario enviar el monto que sera cobrado en la suscripción, es importante destacar que al realizar esta solicitud por primera vez se realizará un cobro de $50 que permite comprobar que la tarjeta se encuentra activa y es válida, en el caso de un plan de suscripción fijo el cobro del servicio será automático a partir del mes siguiente de la fecha de suscripción y en el caso que la suscripción sea a un plan de consumo será necesario utilizar el endpoint api/sutransaction para generar la transacción.
Cuerpo de la solicitud
| Parámetro | Tipo | Descripción |
|---|---|---|
planrequerido |
string | Id del plan. |
clientrequerido |
string | Id del cliente. |
amountoneOf · opción 1requerido |
string | Este campo solo sera usado en caso de planes de suscripciones de monto variable, es importante destacar que la moneda a utilizar en este tipo de plan es CLP. |
coupononeOf · opción 2requerido |
string | Código del cupón |
curl -X POST \https://BASE_URL/api/sususcription \-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 { "plan": "pl9697fb170834ad42dd00", "client": "cl9b1e1dd988694f30fa30" }'$client = new \GuzzleHttp\Client(); $body = $client->request('POST', 'https://BASE_URL/api/sususcription, [ 'json' => [ 'plan' => 'pl9697fb170834ad42dd00', 'client' => 'cl9b1e1dd988694f30fa30', ], 'headers' => [ 'Sign' => 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization' => 'Bearer TOKEN_PUBLICO' ] ])->getBody(); $response = json_decode($body);const request = async (data) => { const response = await fetch('https://BASE_URL/api/sususcription', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Sign': 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization': 'Bearer TOKEN_PUBLICO' }, body: JSON.stringify(data) }); const result = await response.json(); console.log(result)}
let data = { plan: "pl9697fb170834ad42dd00", client: "cl9b1e1dd988694f30fa30",};
request(data);Respuestas
{ "status": "register", "id": "sucaab7865dceaff49d8b3", "url": "http://BASE_URL/gateway/registrosuscripcion?tipoplan=2&plan=true&token=219&validacion=e6c50ba0e0"}Campos de la respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
status |
string | Estatus. |
id |
string | Identificador único de suscripción por payku. |
url |
string | Url pago y activación de suscripción. |
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 Público 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 suscripciones
Sección titulada «Obtener suscripciones»/api/sususcriptionEste método permite obtener todos las suscripciones asociados a un ID de usuario , este método permite una paginación con un máximo de registros por página, además, posee un filtro de fecha, si este parámetro no es ingresado se tomará la fecha actual, para la paginación es necesario agregar al final del endpoint lo siguiente ?page=1&per_page=100 siendo el primer parámetro el número de la página y el segundo el número de registros por página. estatus: se puede filtrar la búsqueda de las suscripciones dependiendo del estatus que se desea buscar agregando el estatus a buscar igual a true, en caso de no agregar ninguno por defecto se buscaran todas las suscripciones sin discriminar por su estatus.
curl -X GET \https://BASE_URL/api/sususcription \-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' \$client = new \GuzzleHttp\Client(); $body = $client->request('GET', 'https://BASE_URL/api/sususcription', [ 'headers' => [ 'Sign' => 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization' => 'Bearer TOKEN_PUBLICO' ] ])->getBody();$response = json_decode($body);const request = async () => { const response = await fetch('https://BASE_URL/api/sususcription', { method: 'GET', headers: { 'Content-Type': 'application/json', 'Sign': 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization': 'Bearer TOKEN_PUBLICO' }, }); const result = await response.json(); console.log(result)}
request(data);Respuestas
[ { "subscriptions": [ { "id": "sucaab7865dceaff49d8b7", "status": "active", "last_status_current_payment": "pending", "start": "2019-07-22 18:34:49", "end": "2023-06-12 00:00:00", "client": { "id": "su7e5e1c0b1bd2e37ec557", "name": "name", "rut": "11.111.111-1", "phone": "56928265454", "parámetros": [], "additional_parameters": "" }, "plan": { "id": "pl9697fb170834ad42dd00", "name": "test plan", "currency": "CLP" }, "cards": { "last_4_digits": "XXXXXXXXXXXX6622", "card_type": "Visa" }, "transactions": [ { "created_at": "2023-09-30 19:58:35", "amount": 10000, "transaction": 204444, "authorization_code": "1234", "order": "001", "description": "descripcion", "status": "success" } ], "logs": { "status": [ { "change_date": null, "initial_status": null, "final_status": null } ] } } ] }]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 Público 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 suscripciones V3
Sección titulada «Obtener suscripciones V3»/api/sususcriptionv3Este método permite obtener todos las suscripciones asociados a un ID de usuario , este método permite una paginación con un máximo de 4000 registros por página, además, posee los siguientes filtros:
date_init: indica la fecha desde donde se desea comenzar la búsqueda de suscripciones, si este parámetro no es enviado la busqueda iniciara la fecha actual . date_end: indica la fecha donde se desea que termine la búsqueda de suscripciones, si este parámetro no es enviado la busque tendrá como fecha final la fecha actual. estatus: se puede filtrar la búsqueda de las suscripciones dependiendo del estatus que se desea buscar agregando el estatus a buscar igual a true, en caso de no agregar ninguno por defecto se buscaran todas las suscripciones sin discriminar por su estatus.
para la paginación es necesario agregar al final del endpoint lo siguiente ?page=1&per_page=100 siendo el primer parámetro el número de la página y el segundo el número de registros por página. En caso de querer buscar las suscripciones entre las fechas 01-09-2021 y 15-09-2021, además que solo sean las suscripciones de estado active, la url a utilizar seria la siguiente: https://[URL_BASE]/api/sususcriptionv3?date_init=2021-09-01&date_end=2021-09-15&active=true.
curl -X GET \https://BASE_URL/api/sususcriptionv3 \-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' \$client = new \GuzzleHttp\Client(); $body = $client->request('GET', 'https://BASE_URL/api/sususcriptionv3', [ 'headers' => [ 'Sign' => 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization' => 'Bearer TOKEN_PUBLICO' ] ])->getBody();$response = json_decode($body);const request = async () => { const response = await fetch('https://BASE_URL/api/sususcriptionv3', { method: 'GET', headers: { 'Content-Type': 'application/json', 'Sign': 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization': 'Bearer TOKEN_PUBLICO' }, }); const result = await response.json(); console.log(result)}
request(data);Respuestas
[ { "subscriptions": [ { "id": "sucaab7865dceaff49d8b7", "estatus": "active", "start": "2019-07-22 18:34:49", "end": "2023-06-12 00:00:00", "client": { "id": "su7e5e1c0b1bd2e37ec557", "name": "name", "rut": "11.111.111-1", "phone": "56928265454", "parámetros": [], "additional_parameters": "" }, "plan": { "id": "pl9697fb170834ad42dd00", "name": "test plan", "currency": "CLP" }, "active_cards": { "last_4_digits": "XXXXXXXXXXXX6622", "card_type": "Visa" }, "logs": { "status": [ { "change_date": null, "initial_status": null, "final_status": null } ] }, "paid": [ { "payment_cycle_day": "2021-07-09", "payment_day": "2021-07-09", "status": "success", "amount_paid": 2500, "try_number": 1, "paid_number": 1, "transactions": [] } ] } ] }]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 Público 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 |
Crear transacción
Sección titulada «Crear transacción»/api/sutransactionEste método permite al usuario de una cuenta payku generar una transacción única a uno de sus clientes que encuentre suscrito a un plan de consumo.
Cuerpo de la solicitud
| Parámetro | Tipo | Descripción |
|---|---|---|
suscriptionrequerido |
string | Identificador único de suscripción por payku. |
amount |
string | Monto. |
order |
string | Orden. |
description |
string | Descripción. |
curl -X POST \https://BASE_URL/api/sutransaction \-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 { "suscription": "sucaab7865dceaff49d8b3", "amount": "10000", "order": "001", "description": "Descripción" }'$client = new \GuzzleHttp\Client(); $body = $client->request('POST', 'https://BASE_URL/api/sutransaction, [ 'json' => [ 'suscription' => sucaab7865dceaff49d8b3, 'order' => '001', 'amount' => '10000', 'description' => 'descripcion' ], 'headers' => [ 'Sign' => 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization' => 'Bearer TOKEN_PUBLICO' ] ])->getBody(); $response = json_decode($body);const request = async (data) => { const response = await fetch('https://BASE_URL/api/sutransaction', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Sign': 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization': 'Bearer TOKEN_PUBLICO' }, body: JSON.stringify(data) }); const result = await response.json(); console.log(result)}
let data = { suscription: "sucaab7865dceaff49d8b3", amount: "10000", order: "001", description: "Descripción"};
request(data);Respuestas
{ "status": "success", "order": "001", "amount": "10000", "transaction_id": "204444", "verification_key": "025dcad37e071daa8bfc2df35189009db65692a4ff766856108be1675e870839"}Campos de la respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
status |
string | Estatus de transacción.Los posibles estados que puede obtener son los siguientes:
|
order |
string | Orden. |
amount |
string | Monto. |
transaction_id |
string | Número de transacción. |
verification_key |
string |
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 Público 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 suscripción
Sección titulada «Obtener suscripción»/api/sususcription/{identificadorSuscripcion}Este método permite obtener el detalle de una suscripción.
Parámetros de ruta
| Parámetro | Tipo | Descripción |
|---|---|---|
idrequerido |
string | Identificador único de transacción por payku. |
curl -X GET \https://BASE_URL/api/sususcription/id \-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' \$client = new \GuzzleHttp\Client(); $body = $client->request('GET', 'https://BASE_URL/api/sususcription/sucaab7865dceaff49d8b', [ 'headers' => [ 'Sign' => 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization' => 'Bearer TOKEN_PUBLICO' ] ])->getBody();$response = json_decode($body);const request = async () => { const response = await fetch('https://BASE_URL/api/sususcription/sucaab7865dceaff49d8b', { method: 'GET', headers: { 'Content-Type': 'application/json', 'Sign': 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization': 'Bearer TOKEN_PUBLICO' }, }); const result = await response.json(); console.log(result)}
request(data);Respuestas
{ "id": "sucaab7865dceaff49d8b7", "status": "active", "start": "2019-07-22 18:34:49", "end": "2023-06-12 00:00:00", "client": { "id": "cld0835b9063a5903f4ae7", "name": "name", "rut": "11.111.111-1", "phone": "56972756487", "parámetros": [], "additional_parameters": "" }, "plan": { "id": "pl9697fb170834ad42dd00", "name": "test plan", "currency": "CLP" }, "cards": { "last_4_digits": "XXXXXXXXXXXX6622", "card_type": "Visa" }, "active_cards": [ { "last_4_digits": "XXXXXXXXXXXX6622", "identifier": "surec804a8ed60c747cb8839", "card_type": "Visa", "register": "2023-07-26 08:00:19" }, { "last_4_digits": "XXXXXXXXXXXX1234", "identifier": "surec804a8ed60c747cb8843", "card_type": "MasterCard", "register": "2023-01-01 12:00:00" } ], "transactions": [ { "created_at": "2023-09-30 19:58:35", "amount": 10000, "transaction": 204444, "authorization_code": "1234", "order": "001", "description": "descripcion", "status": "success" } ], "logs": { "status": [ { "change_date": "2021-02-17 16:11:53", "initial_status": "register", "final_status": "active" } ] }}Campos de la respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
id |
string | Identificador de la suscripción creado por payku. |
status |
string | Estatus de la suscripción. Los posibles estados que puede obtener son los siguientes:
|
start |
string | Fecha de inicio de la suscripción. |
end |
string | Fecha de termino de la suscripción. |
client |
object | |
id |
string | Identificador del cliente creado por payku. |
name |
string | Nombre del cliente. |
email |
string | Email del cliente. |
rut |
string | Rol único Tributario. |
phone |
string | Teléfono del cliente. |
parámetros |
array of anys | |
additional_parameters |
array of anys | Parámetros adicionales que puede enviar payku. |
plan |
object | |
id |
string | Identificador del plan creado por payku. |
name |
string | Nombre del plan. |
currency |
string | Moneda. |
cards |
object | |
last_4_digits |
string | Últimos 4 dígitos de la tarjeta afiliada. |
card_type |
string | Tipo de tarjeta. |
active_cards |
array of objects | |
last_4_digits |
string | Últimos 4 dígitos de la tarjeta afiliada. |
identifier |
string | identificador de la tarjeta. |
card_type |
string | Tipo de tarjeta. |
register |
string | Fecha de registro. |
transactions |
array of objects | |
created_at |
string | Fecha de creación de la transacción. |
amount |
int | Monto de transacción. |
transaction |
int | Número de transacción. |
authorization_code |
string | Código de autorización. |
order |
string | Número de orden. |
description |
string | Descripción. |
status |
string | Estatus de transacción.Los posibles estados que puede obtener son los siguientes:
|
logs |
object | Objeto con registros de información sobre las suscripciones |
status |
array of objects | Arreglo que contiene los cambios de estatus que se realizaron en la suscripción |
change_date |
string | Fecha en que se realizo el cambio |
initial_status |
string | Estatus inicial de la suscripción |
final_status |
string | Estatus final de la suscripción |
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 Público 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 |
Eliminar suscripción
Sección titulada «Eliminar suscripción»/api/sususcription/{identificadorSuscripcion}Este método permite la eliminación de una suscripción asociada a un ID de suscripción.
Parámetros de ruta
| Parámetro | Tipo | Descripción |
|---|---|---|
idrequerido |
string | Identificador único de suscripción creado por payku. |
curl -X DELETE \https://BASE_URL/api/sususcription/id \-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' \$client = new \GuzzleHttp\Client(); $body = $client->request('DELETE', 'https://BASE_URL/api/sususcription/sucaab7865dceaff49d8b3, [ 'headers' => [ 'Sign' => 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization' => 'Bearer TOKEN_PUBLICO' ] ])->getBody(); $response = json_decode($body);const request = async () => { const response = await fetch('https://BASE_URL/api/sususcription/sucaab7865dceaff49d8b', { method: 'DELETE', headers: { 'Content-Type': 'application/json', 'Sign': 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization': 'Bearer TOKEN_PUBLICO' }, }); const result = await response.json(); console.log(result)}
request(data);Respuestas
{ "id": "sucaab7865dceaff49d8b3", "status": "success"}Campos de la respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
id |
string | Identificador de la transacción creado por payku. |
status |
string | Estatus. |
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 Público 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 |
Afiliar tarjeta
Sección titulada «Afiliar tarjeta»/api/suinscriptionscardsEste método permite la Inserción de los datos de una tarjeta para suscripción.
Improtante
En caso de necesitar de la renovacion de tarjeta de su cliente, el método le permitira agregar una nueva tarjeta a la suscripcion.
¡Inmediatamente a la actualización de la tarjeta asociada a la suscripción, el sistema podrá realizar los cargos atrasados correspondientes según configuración del plan suscrito!, Es decir, si la suscripción se encuentra en estatus suspendido por máximos intentos de cobros realizados, y el cliente registra una nueva tarjeta, el sistema podrá revisar los pagos pendientes, hacer el cargo correspondiente, y activar automáticamente la suscripción
Cuerpo de la solicitud
| Parámetro | Tipo | Descripción |
|---|---|---|
suscriptionrequerido |
string | ID de suscripción. |
curl -X POST \https://BASE_URL/api/suinscriptionscards \-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 { "suscription": "sucaab7865dceaff49d8b3" }'$client = new \GuzzleHttp\Client(); $body = $client->request('POST', 'https://BASE_URL/api/suinscriptionscards', [ 'json' => [ 'suscription' => sucaab7865dceaff49d8b3, ], 'headers' => [ 'Sign' => 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization' => 'Bearer TOKEN_PUBLICO' ] ])->getBody(); $response = json_decode($body);const request = async (data) => { const response = await fetch('https://BASE_URL/api/suinscriptionscards', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Sign': 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization': 'Bearer TOKEN_PUBLICO' }, body: JSON.stringify(data) }); const result = await response.json(); console.log(result)}
let data = { suscription: "sucaab7865dceaff49d8b3"};
request(data);Respuestas
{ "status": "success", "id": "sucaab7865dceaff49d8b3", "url": "https://BASE_URL/gateway/registrosuscripcion?plan=true&token=246&validacion=d6b32"}Campos de la respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
status |
string | Estatus. |
id |
string | Identificador único de suscripción por payku. |
url |
string | URL pago y activación de suscripción. |
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 Público 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 |
Eliminar tarjeta
Sección titulada «Eliminar tarjeta»/api/suscriptionsdeletecardsEste método permite eliminar una tarjeta asociada a la suscripción.
Cuerpo de la solicitud
| Parámetro | Tipo | Descripción |
|---|---|---|
suscriptionrequerido |
string | ID de la tarjeta asociada. |
curl -X POST \https://BASE_URL/api/suscriptionsdeletecards \-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 { "card": "surec804a8ed60c0a8cb8839" }'$client = new \GuzzleHttp\Client(); $body = $client->request('POST', 'https://BASE_URL/api/suscriptionsdeletecards', [ 'json' => [ 'card' => surec804a8ed60c0a8cb8839, ], 'headers' => [ 'Sign' => 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization' => 'Bearer TOKEN_PUBLICO' ] ])->getBody(); $response = json_decode($body);const request = async (data) => { const response = await fetch('https://BASE_URL/api/suscriptionsdeletecards', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Sign': 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization': 'Bearer TOKEN_PUBLICO' }, body: JSON.stringify(data) }); const result = await response.json(); console.log(result)}
let data = { card: "surec804a8ed60c0a8cb8839"};
request(data);Respuestas
{ "status": "Delete", "card": "surec804a8ed60c0a8cb8839"}Campos de la respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
status |
string | Status. |
card |
string | Identificador único de La tarjeta asociada a la suscripción. |
Error en la solicitud.
{ "status": "failed", "type": "card", "message_error": "is not valid"}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 Público 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 plan
Sección titulada «Obtener plan»/api/suplan/{identificadorPlan}Este método permite obtener el detalle de un plan.
Parámetros de ruta
| Parámetro | Tipo | Descripción |
|---|---|---|
idrequerido |
string | Identificador único de plan por payku. |
curl -X GET \https://BASE_URL/api/suplan/id \-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' \$client = new \GuzzleHttp\Client(); $body = $client->request('GET', 'https://BASE_URL/api/suplan/pl29f6ad69fbd594148c39', [ 'headers' => [ 'Sign' => 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization' => 'Bearer TOKEN_PUBLICO' ] ])->getBody();$response = json_decode($body);const request = async () => { const response = await fetch('https://BASE_URL/api/suplan/pl29f6ad69fbd594148c39', { method: 'GET', headers: { 'Content-Type': 'application/json', 'Sign': 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization': 'Bearer TOKEN_PUBLICO' }, }); const result = await response.json(); console.log(result)}
request(data);Respuestas
{ "status": "success", "plans": { "id": "pl4293e97a87195bb9edcd", "status": "active", "name": "Test plan", "code": "001", "description": "Test Plan", "url_notify_payment": "", "url_notify_suscription": "", "total_suscription": 0, "total_suscription_active": 0 }}Campos de la respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
status |
string | Estatus. |
plans |
object | |
id |
string | Identificador único de plan por payku. |
status |
string | Estatus del plan. |
name |
string | Nombre del plan. |
code |
string | Código del plan. |
description |
string | Descripción del plan. |
url_notify_payment |
string <url> | |
url_notify_suscription |
string <url> | |
total_suscription |
integer | Total de suscripciones. |
total_suscription_active |
integer | Total de suscripciones activas. |
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 Público 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 planes
Sección titulada «Obtener planes»/api/suplan/plansEste método permite obtener el detalle de todos los planes.
curl -X GET \https://BASE_URL/api/suplan/plans \-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' \$client = new \GuzzleHttp\Client(); $body = $client->request('GET', 'https://BASE_URL/api/suplan/plans', [ 'headers' => [ 'Sign' => 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization' => 'Bearer TOKEN_PUBLICO' ] ])->getBody();$response = json_decode($body);const request = async () => { const response = await fetch('https://BASE_URL/api/suplan/plans', { method: 'GET', headers: { 'Content-Type': 'application/json', 'Sign': 'SHA256-REQUEST-PATH-VALUE-TOKEN-PRIVADO', 'Authorization': 'Bearer TOKEN_PUBLICO' }, }); const result = await response.json(); console.log(result)}
request(data);Respuestas
{ "status": "success", "plans": [ { "id": "pl4293e97a87195bb9edcd", "status": "active", "name": "Test plan", "code": "001", "description": "Test Plan", "url_notify_payment": "", "url_notify_suscription": "", "total_suscription": 0, "total_suscription_active": 0 } ]}Campos de la respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
status |
string | Estatus. |
plans |
array of objects | |
id |
string | Identificador único de plan por payku. |
status |
string | Estatus del plan. |
name |
string | Nombre del plan. |
code |
string | Código del plan. |
description |
string | Descripción del plan. |
url_notify_payment |
string <url> | |
url_notify_suscription |
string <url> | |
total_suscription |
integer | Total de suscripciones. |
total_suscription_active |
integer | Total de suscripciones. |
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 Público 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 |
url Callback notificación suscripción
Sección titulada «url Callback notificación suscripción»/urlnotifysuscriptionLuego de realizar la activación de la suscripción por parte del usuario, payku notificara al comercio, el resultado de la operación (status), realizando una solicitud post a la url de notificación de suscripción suministrada previamente en la creación de la suscripción y a su vez entregará una serie de datos para las validaciones internas por parte de la aplicación del comercio, el id de la suscripción el cual corresponde al identificador único en payku. Estos datos permitirán al comercio conocer el estado de sus suscripciones y respaldarlas en su base de datos.
Respuestas
{ "id": "su74866857980c7d2b4306", "status": "active"}Campos de la respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
id |
string | Identificador de la suscripción creado por payku. |
status |
string | Estatus de la suscripción. Los posibles estados que puede obtener son los siguientes:
|
url Callback notificación cobro
Sección titulada «url Callback notificación cobro»/urlnotifypaymentLuego de realizado el cobro de la suscripción de forma automatica, payku notificara al comercio, el resultado de la operación (status), realizando una solicitud post a la url de notificación de cobro suministrada previamente en la creación de la suscripción y a su vez entregará una serie de datos para las validaciones internas por parte de la aplicación del comercio, el transactionn_id el cual corresponde al identificador único en payku y un verification_key, que corresponde a un hash de validación único por transacción. Estos datos permitirán al comercio conocer el estado de sus transaciones y respaldarlas en su base de datos.
Respuestas
{ "transaction_id": 9123123, "verification_key": "2ba83615f863e72sdca5dfd0a6df2782", "order": 1568041684, "status": "success", "subscriptions": { "id": "su3ce571420e90b600eafb", "client": "cl795704ece0a3690baaf" }}Campos de la respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
transaction_id |
number | Identificador único de transacción por payku. |
verification_key |
string | Hash único de transacción. |
order |
string | Identificador único de transacción enviado por el comercio. |
status |
string | Estatus de transacción.Los posibles estados que puede obtener son los siguientes:
|
subscriptions |
object | Contiene los id de la suscripción y el cliente suscrito |
id |
string | Identificador único de suscripción por payku. |
client |
string | Identificador único del cliente por payku |