Quotation

Regresa un arreglo con los servicios y tarifas. Genera una orden en el panel de eShip con los datos recibidos.

Quotation

Parameters

address_from

array

requerido

Dirección del remitente.

name

string(35)

requerido

Nombre del cliente.

company

string(35)

opcional

Empresa de la persona (opcional).

street1

string(35)

requerido

Línea de Dirección 1. Normalmente va la calle y número (exterior e interior).

street2

string(35)

opcional

Línea de Dirección 2. Normalmente va la colonia. (opcional).

city

string(35)

requerido

Ciudad.

zip

string(35)

requerido

Código postal.

state

string(35)

requerido

Estado o Provincia.

country

string(2)

requerido

País (Formato ISO 2).

phone

string(35)

requerido

Teléfono del cliente.

email

string(35)

opcional

Correo electrónico del cliente.

address_to

array

requerido

Dirección de destino.

name

string(35)

requerido

Nombre del cliente.

company

string(35)

opcional

Empresa de la persona (opcional).

street1

string(35)

requerido

Línea de Dirección 1. Normalmente va la calle y número.

street2

string(35)

opcional

Línea de Dirección 2. Normalmente va la colonia. (opcional).

city

string(35)

requerido

Ciudad.

zip

string(35)

requerido

Código postal.

state

string(35)

requerido

Estado o Provincia.

country

string(2)

requerido

País (formato ISO 2).

phone

string(35)

requerido

Teléfono del cliente.

email

string(35)

opcional

Correo electrónico del cliente.

parcels

array

requerido

Paquetes del envío.

[0...25 Max]

array

require (at least one)

No. de pieza.

length

decimal(10,2)

requerido

Largo de la pieza.

width

decimal(10,2)

requerido

Ancho de la pieza.

height

decimal(10,2)

requerido

Alto de la pieza.

distance_unit

"cm"

"in"

requerido

Unidad de distancia. Centimetros (cm) o Pulgadas (in).

weight

decimal(10,2)

requerido

Peso del paquete.

mass_unit

"kg"

"lb"

requerido

Unidad de peso: Centimetros (cm) o Libras (lb).

reference

string(35)

opcional

Texto adicional de referencia para el paquete (aparecerá en algunas guías).

items

array

opcional

Productos en envío. Obligatorio para envíos internacionales. De referencia para envíos locales.

[0… 99 Max]

array

opcional

quantity

integer

requerido

Cantidad de productos.

description

string(35)

requerido

Descripción del producto.

SKU

string(35)

requerido

SKU del producto.

price

string(35)

requerido

Precio del producto.

weight

float

opcional

Peso del producto.

currency

'MXN'

'USD'

'EUR'

'NZD'

'GBP'

'BRL'

opcional

Moneda del precio del producto.

store_id

string(35)

opcional

ID del producto en la tienda para hacer el fulfillment.

insurance

array

opcional

Seguro adicional a los paquetes del envío.

amount

decimal(10,2)

requerido

Cantidad por asegurar.

currency

'MXN'

'USD'

'EUR'

'NZD'

'GBP'

requerido

Moneda del seguro.

order_info

array

opcional

Información adicional sobre la orden.

order_num

string(35)

opcional

Número de orden en la tienda.

paid

boolean

opcional

Si ya se realizó el pago de la compra es TRUE.

fulfilled

boolean

opcional

Si ya se realizó el envío es TRUE.

store

string(35)

opcional

La plataforma de eCommerce donde se creó la orden.

shipment

string(35)

opcional

Tipo de envío seleccionado por el cliente.

total_price

decimal(10,2)

opcional

Precio total de la compra.

subtotal_price

decimal(10,2)

opcional

Subtotal de la compra.

total_tax

float

opcional

Impuestos en la compra.

total_shipment

float

opcional

Precio total del envío.

store_id

string(35)

opcional

ID de la orden en la plataforma de eCommerce. Es útil si se quiere hacer el fulfillment en la tienda.

custom_declaration

array

opcional

contents_type

'GIFT'

'DOCUMENTS'

'SAMPLE'

'MERCHANDISE'

'HUMANITARIAN_DONATION'

'RETURN_MERCHANDISE'

'OTHER'

requerido

inconterm

'DDP'

'DDU'

requerido

exporter_reference

string(35)

opcional

importer_reference

string(35)

opcional

contents_explanation

string(35)

opcional

invoice

string(35)

opcional

license

string(35)

opcional

certificate

string(35)

opcional

notes

string(35)

opcional

eel_pfc

'NOEEI_30_37_a'

'NOEEI_30_37_h'

'NOEEI_30_37_f'

'NOEEI_30_36'

'AES_ITN'

opcional

non_delivery_option

'ABANDON'

'RETURN'

opcional

certify

boolean

opcional

certify_signer

string(35)

opcional

save_order

boolean

opcional

FALSE para no guardar la orden en la plataforma.

cod

float

opcional

Cobro en efectivo a la entrega (Cash on Delivery). Solo disponible con los servicios de Segmail Express.

ship_date

date(Y-m-d)

opcional

Fecha para el envío.

notes

string(99)

opcional

Notas adicionales para el mensajero (Solo con Segmail Express).

JSON

Copiado

                                
    {
        "address_from":{
            "name":"Eric Garcia",
            "phone":"0120120120",
            "street1":"Algo 01",
            "city":"Mexico",
            "state":"CDMX",
            "country":"MX",
            "zip":"01090"
        },
        "address_to":{
            "name":"absa",
            "phone":"0120120120",
            "street1":"aldama 100",
            "state":"Coahuila",
            "city":"Saltillo",
            "country":"MX",
            "zip":"05320"
        },
        "parcels":[
            {
                "length":"10",
                "height":"10",
                "width":"10",
                "distance_unit":"cm",
                "weight":"1",
                "mass_unit":"kg",
                "reference":"Reference 1"
            }
        ]
    }                               
                                
                            

Quotation Response

Parameters

object_id

string

ID de la cotización.

Rates

array

Paquetes del envío.

[0… n]

array

No. de pieza.

rate_id

string

ID de la tarifa.

provider

string

Proveedor del servicio.

provider_image_75

string

URL del logo del proveedor del servicio.

currency

string

Moneda del precio.

days

integer

Tiempo estimado de entrega en días naturales.

amount

decimal(10,2)

Costo del envío.

servicelevel

array

name

string

Nombre del servicio.

token

string

Token del servicio.

tags

array

'BESTVALUE'

'CHEAPEST'

'FASTEST'

Atributos de la tarifa (mejor valor, más barata y/o más rápida).

messages

array

Mensaje del courier en la cotización.

[0… n]

array

source

string

Courier.

text

string

Cuerpo del mensaje.

                                
    {
        "object_id":"5b2a77f16b12a",
        "rates": [
            {
                "rate_id":"5b2a77f48b1d0",
                "provider":"DHL Express",
                "provider_image_75":"../assetsimg/dhl_75.png",
                "currency":"MXN",
                "days":"1",
                "amount":"181.40",
                "servicelevel": {
                    "name":"EXPRESS DOMESTIC",
                    "token":"N/N"
                },
                "tags": [
                    "BESTVALUE",
                    "FASTEST"
                ]
            },
            {
                "rate_id":"5b2a77f53e7a6",
                "provider":"Estafeta",
                "provider_image_75":"../assetsimg/estafeta_75.png",
                "currency":"MXN",
                "days":"3",
                "amount":"159.83",
                "servicelevel": {
                        "name":"Terrestre",
                        "token": "estafeta_3"
                },
                "tags": [
                    "CHEAPEST"
                ]
            }
        ],
        "messages": [],
        "address_from": {
            "name":"Jose Rico",
            "email":"[email protected]",
            "phone":"6621200079",
            "street1":"Paseo de losTamarindos 90",
            "street2":"Bosques de lasLomas",
            "city":"CDMX",
            "state": "CDMX",
            "country": "MX",
            "zip": "05120",
            "company": ""
        },
        "address_to": {
            "name":"Jose Rico",
            "email":"[email protected]",
            "phone":"6621200079",
            "street1":"Jesús del Monte 39",
            "street2":"Hacienda de lasPalmas",
            "city":"CDMX",
            "state":"CDMX",
            "country":"MX",
            "zip":"52763",
            "company": ""
        },
        "parcels": [
            { 
            "length":"10",
            "width":"10",
            "height":"10",
            "distance_unit":"cm",
            "weight":"1",
            "mass_unit":"kg"
            }
        ],
        "insurance": {
            "amount":"0",
            "currency":"MXN"
        },
        "items": [
            {
            "quantity":"3",
            "description":"White Pants",
            "SKU":"S1025",
            "price":"100",
            "weight":"10",
            "currency":"1",
            "store_id":""
            }
        ],
        "customs_declaration": {
            "contents_type":"MERCHANDISE",
            "incoterm":"DDU",
            "exporter_reference":"",
            "importer_reference":"",
            "contents_explanation":"",
            "invoice":"",
            "license":"",
            "certificate":"",
            "notes":"",
            "eel_pfc":"NOEEI_30_36",
            "non_delivery_option":"RETURN",
            "certify":"1",
            "certify_signer":"David Rico"
        }
    }                             
                                
                            

Quotation

Parameters

object_id

string

requerido

ID de la quot a recuperar.

                                
{
    "object_id":"5ddd708511620",
    "rates": [
        {
            "rate_id":"5ddd708514e0f",
            "provider":"Segmail",
            "provider_image_75":"../assets/img/logo.png",
            "currency":"MXN",
            "days":"1",
            "amount":"120.00",
            "servicelevel": {
                "name":"Día Siguiente",
                "token":"SME01"
            },
            "status":"SUCCESS"
        },
        {
            "rate_id":"5ddd708516067",
            "provider":"Segmail",
            "provider_image_75":"../assets/img/logo.png",
            "currency":"MXN",
            "days":"0",
            "amount":"144.00",
            "servicelevel": {
                "name":"Mismo Día",
                "token":"SME02"
            },
            "status":"SUCCESS"
        },
        {
            "rate_id":"5ddd7085172b3",
            "provider":"Segmail",
            "provider_image_75":"../assets/img/logo.png",
            "currency":"MXN",
            "days":"0",
            "amount":"176.00",
            "servicelevel": {
                "name":"Express",
                "token":"SME03"
            },
            "status":"SUCCESS"
        }
    ],
    "messages":[],
    "address_from": {
        "name":"Grupo Romo",
        "phone":"0120120120",
        "street1":"Algo 01",
        "city":"Mexico",
        "state":"CDMX",
        "country":"MX",
        "zip":"01090",
        "email":"",
        "company":"",
        "street2":""
    },
    "address_to": {
        "name":"absa",
        "phone":"0120120120",
        "street1":"aldama 100",
        "state":"Coahuila",
        "city":"Saltillo",
        "country":"MX",
        "zip":"05320",
        "email":"",
        "company":"",
        "street2":""
    },
    "parcels": [
        {
            "length":"10",
            "height":"10",
            "width":"10",
            "distance_unit":"cm",
            "weight":"1",
            "mass_unit":"kg",
            "reference":"Reference 1"
        }
    ],
    "extras": {
        "amount":"0",
        "ship_date":"2018-07-12",
        "currency":"MXN",
        "notes":""
    },
    "items": [
        {
            "quantity":"1",
            "description":"White Pants",
            "SKU":"S1025",
            "price":"50",
            "weight":"0",
            "currency":"MXN",
            "store_id":""
        }
    ]
}                         
                                
                            

Shipment

Generar la guía para el envío con el servicio elegido.

Shipment

Parameters

rate_id

string

requerido

ID de la rate elegida.

JSON

Copiado

                                
{
    "rate":"5b182a90c3bb5"
}                          
                                
                            

Shipment Response

Parameters

object_id

string

ID de la transacción.

status

string

Estatus de la transacción.

label_url

string

URL donde se encuentra el PDF de la guía.

tracking_number

string

Número de rastreo del envío.

tracking_url_provider

string

URL de rastreo del envío en la plataforma del proveedor.

commercial_invoice

boolean

Si se generó el comercial invoice.

commercial_invoice_url

string

URL del PDF de comercial invoice.

fulfillment

array

Datos enviados de regreso a la plataforma de eCommerce.

status

string

Estatus del fulfillment.

store

string

Plataforma de eCommerce.

order_num

string

Número de orden en la plataforma.

piece_labels

array

En caso de multipiezas, cada una de las guías.

[0… 25]

array

price_id

string

ID de la pieza.

sequence_number

string

Número de la pieza en el envió.

label_url

string

URL donde se encuentra el PDF de la pieza.

tracking_number

string

Número de rastreo del envío.

status

string

Estatus de rastreo de la pieza.

status_details

string

Detalle del status de rastreo de la pieza.

                                
{
    "object_id":"617ee9cae390f",
    "status":"SUCCESS",
    "label_url":"https://s3.us-east-2.amazonaws.com/eship-prod/label/617ee9cae390f.pdf",
    "tracking_number":"3875992260",
    "commercial_invoice":"0",
    "tracking_url_provider":"http://www.dhl-usa.com/content/us/en/express/tracking.shtml?brand=DHL&AWB=3875992260",
    "commercial_invoice_url":"null",
    "fulfillment": {
        "status":"not fulfilled",
        "store":"",
        "order_num":"1234"
    }
}
                                
                            

Shipment

Parameters

object_id

string(10)

opcional

ID del label a recuperar.

tracking_number

string(99)

opcional

No. de rastreo a recuperar.

order_number

string(99)

opcional

No. de orden del envío.

JSON

Copiado

                                
{
    "object_id":"6b72e5342c5b5",
    "status":"SUCCESS",
    "label_url":"https://api.myeship.co/label/5b72e5342c5b5.pdf",
    "provider": "FedEx",
    "service": "Express Saver",
    "tracking_number":"782291727586",
    "commercial_invoice":"0",
    "commercial_invoice_url":"",
    "tracking_url_provider":
    "https://www.fedex.com/apps/fedextrack/?action=track
    &cntry_code=mx&trackingnumber=782291727586" ,
    "tracking": {
        "status":"UNKNOWN",
        "status_details":"Shipment information sent to FedEx",
        "estimated_delivery":"2020-02-2421:00:00",
        "location":"",
        "timestamp":"2020-02-3104:30:21"
        }
}  
                                
                            

Trakcing Status

"UNKNOWN"

La guía fue creada pero el paquete aún no ha sido escaneado por la paquetería.

status
substatus
Descripción
Requiere acción
UNKNOWN
label_created
La información sobre la guía fue recibida.
no
UNKNOWN
cancelled
Guía cancelada por remitente.
no
UNKNOWN
other
Estatus no reconocido.
no

“TRANSIT”

El paquete fue escaneado y va en camino a su destino.

status
substatus
Descripción
Requiere acción
TRANSIT
picked_up
Paquete escaneado por paquetería.
no
TRANSIT
in_transit
Paquete entre ubicaciones intermediarias.
no
TRANSIT
processed
Paquete procesado en ubicación intermediaria.
no
TRANSIT
at_customs
Paquete en aduana.
no
TRANSIT
out_for_delivery
Paquete en ruta de entrega.
no
TRANSIT
pickup_available
Paquete necesita ser recolectado en sucursal.
si
TRANSIT
delayed
La entrega se ha retrasado.
no
TRANSIT
scheduled
La entrega del paquete ha sido agendada.
no
TRANSIT
package_held
Paquete detenido en ubicación intermediaria.
si

“FAILURE”

La paquetaría indica que hubo un problema con la entrega.

status
substatus
Descripción
Requiere acción
FAILURE
delivery_issue
Paquete no pudo ser entregado.
si
FAILURE
address_issue
Problema con la dirección de entrega.
si
FAILURE
package_lost
Paquete ha sido perdido por la paquetería.
si
FAILURE
package_damaged
Paquete dañado por la paquetería.
si
FAILURE
package_disposed
Paquete desechado por la paquetería.
no

“DELIVERED”

El paquete fue entregado exitosamente.

status
substatus
Descripción
Requiere acción
DELIVERED
delivered
Paquete entregado.
no

“RETURNED”

El paquete va de regreso o ya fue entregado en el origen.

status
substatus
Descripción
Requiere acción
RETURNED
returned
Paquete regresado a remitente.
no

Batch Shipment

Generar las guías para los envíos con los servicios elegidos. Se crea también un PDF con todas las guías juntas.

Batch Shipment

Parametros

Rates

array

requerido

[0.. 10]

array

requerido (1 minimo)

ID de la rate rate.

JSON

Copiado

                                
{
    "rates":[
    "5b2a77f48b1d0",
    "5b2a77f53e7a6" 
    ]
}  
                                
                            

Batch Shipment Response

Parametros

object_id

string

ID del batch.

batch_labels_url

string(35)

URL del PDF con las guías del batch.

Status

string

Estatus del batch.

batch_labels

array

Las transacciones de cada guía.

[0… 10]

array

object_id

string

ID de la transacción.

Status

string

Estatus de la transacción.

label_url

string

URL donde se encuentra el PDF de la guía.

tracking_number

string

Número de rastreo del envío.

tracking_url_provider

string

URL de rastreo del envío en la plataforma del proveedor.

commercial_invoice

boolean

Si se generó el comercial invoice.

commercial_invoice_url

string

URL del PDF de comercial invoice.

fulfillment

array

Datos enviados de regreso a la plataforma de eCommerce.

status

string

Estatus del fulfillment.

store

string

Plataforma de eCommerce.

order_num

string

Número de orden en la plataforma.

label_results

array

Número de orden en la plataforma.

succeded

integer

Cuantas guías del batch se crearon exitosamente.

failed

integer

Cuantas guías del batch no se crearon.

                                
{
    "object_id":"5b2aadcf95852",
    "batch_labels_url":"https://s3.us-east-2.amazonaws.com/eship-prod/label/617ee9ca4390f.pdf",
    "status":"SUCCESS",
    "batch_labels": [
        {
        "object_id":"5b2aadd489139.pdf",
        "status":"SUCCESS",
        "label_url":"https://s3.us-east-2.amazonaws.com/eship-prod/label/627e2412ae2f.pdf",
        "tracking_number":"7628786384",
        "commercial_invoice":"0",
        "tracking_url_provider":"http://www.dhlusa.com/content/us/en/express/tracking.shtml?brand=DHL&AWB=7628786384",
        "commercial_invoice_url":"null",
        "fulfillment": {
            "status":"not fulfilled",
            "store":"",
            "order_num":"1234"
            }
        },
        {
        "object_id":"5b2aadd55e845.pdf",
        "status":"SUCCESS",
        "label_url":"https://s3.us-east-2.amazonaws.com/eship-prod/label/637fe9ca41901.pdf",
        "tracking_number":"4058675937537700626990",
        "tracking_url_provider":"http://estafeta.azurewebsites.net/Tracking/searchByGet/?wayBillType=1wayBill=4058675937537700626990",
        "commercial_invoice":"0",
        "commercial_invoice_url":"null",
        "fulfillment": {
            "status":"not fulfilled",
            "store":"",
            "order_num":"1234"
            }
        }
    ]
    "label_results": {
    "succeeded":"2",
    "failed":"0"
    }
}    
                                
                            

Batch Shipment

Parameters

object_id

string

ID del batch a recuperar.

JSON

Copiado

                                       
{
    "object_id":"5b73a0a3c18ce",
    "status":"SUCCESS",
    "batch_labels_url":"https://s3.us-east-2.amazonaws.com/eship-prod/label/617ee9ca4390f.pdf",
    "batch_shipments":"null",
    "label_results": {
        "succeeded":"2",
        "failed":"0"
    },
    "batch_labels": [
        {
            "object_id":"5b73a0a9cff7b"
            "status":"SUCCESS",
            "label_url":"https://s3.us-east-2.amazonaws.com/eship-prod/label/627e2412ae2f.pdf",
            "tracking_number":"7416867920",
            "commercial_invoice":"0",
            "commercial_invoice_url":"",
            "tracking_url_provider":"http://www.dhl
            usa.com/content/us/en/express/tracking.shtml
            ?brand=DHL&AWB=7416867920",
            "tracking": {
                "status":"UNKNOWN",
                "status_details":"Shipment information received"
            }
        },
        {
            "object_id":"5b73a0b3f3704",
            "status":"SUCCESS",
            "label_url":"https://s3.us-east-2.amazonaws.com/eship-prod/label/637fe9ca41901.pdf",
            "tracking_number":"7416868373",
            "commercial_invoice":"0",
            "commercial_invoice_url":"",
            "tracking_url_provider":"http://www.dhl
            usa.com/content/us/en/express/tracking.
            shtml?brand=DHL&AWB=7416868373",
            "tracking": {
                "status":"UNKNOWN",
                "status_details":"Shipment information received"
            }
        }            
    ]
}   

                                
                            

Label Settings

Configuración para generar el PDF de la guía.

Label Settings

Parameters

label_format

'PDF'

'PDF_4x6'

requerido

Formato del PDF de la guía.
Para impresora normal: “PDF”
Para impresora térmica: “PDF_4x6”

label_firstline

string(35)

requerido

Primera línea de texto en la guía.
Para utilizar siempre el número de orden, usar: “*Order_Number*”

label_secondline

string(35)

requerido

Segunda línea de texto en la guía.

JSON

Copiado

                                       

{
    "label_format":"PDF",
    "label_firstline":"*Order_Number*",
    "label_secondline":"Example"
}                 
                
                                
                            

Label Settings

JSON

Copiado

                                             
{
    "label_format":"PDF",
    "label_firstline":"*Order_Number*",
    "label_secondline":"Example"
}               
                                
                            

Pickups

Programar una recolección para uno o más paquetes con la línea transportista deseada.

Pickups

Parameters

courier

string(35)

string(35)

requerido

Línea transportista con la que se generará la recolección..

weight

string(35)

requerido

Peso total de los paquetes.

mass_unit

"kg"

requerido

Unidad del peso total.

quantity

integer

requerido

Número de paquetes a recolectar.

date

date(Y-m-d)

requerido

Fecha en la que se desea hacer la recolección.

time

hour(H:i)

requerido

Primera hora para pasar por el paquete.

closetime

hour(H:i)

requerido

Última hora para pasar por el paquete.

street1

string(35)

requerido

Línea 1 de la dirección de recolección. Normalmente va la calle y número.

street2

string(35)

opcional

Línea 2 de la dirección de recolección. Normalmente va la colonia (opcional).

zip

string(35)

requerido

Código postal de la dirección de recolección.

city

string(35)

requerido

Ciudad de recolección..

state

string(35)

requerido

Estado de recolección.

country

string(35)

requerido

País de recolección.

name

string(35)

requerido

Nombre de la persona responsable de la recolección.

company

string(35)

opcional

Compañía responsable de la recolección.

phone

string(35)

requerido

Teléfono del responsable de la recolección.

notes

string(35)

opcional

Notas adicionales para la recolección.

JSON

Copiado

                               
{
    "courier":"DHL",
    "weight":"5",
    "mass_unit":"kg",
    "quantity":"2",
    "date":"2019-05-02",
    "time":"10:00",
    "closetime":"16:00",
    "street1":"Paseo de los Tamarindos 90",
    "street2":"Bosques de las Lomas",
    "zip":"05120",
    "city":"CDMX",
    "state":"CDMX",
    "country":"MX",
    "name":"Alan Sanchez",
    "company":"Segmail",
    "phone":"5591350245",
    "notes":"En sotano 1, zona de proveedores"
}   
                
                            
                                
{
    "status":"SUCCESS",
    "confirmation":"137848",
    "courier":"DHL",
    "date":"2019-05-02",
    "time":"10:00",
    "closetime":"CDMX",
    "weight":"5",
    "mass_unit":"kg",
    "quantity":"2",
    "street1":"Paseo de los Tamarindos 90",
    "street2":"Bosques de las Lomas",
    "zip":"05120",
    "city":"CDMX",
    "state":"CDMX",
    "country":"MX"
}
                                
                            

WEBHOOK

Recibe notificaciones de cambio de estatus de tus envíos a un URL personalizado. Puedes configurar este URL en la pestaña Configuración del app.

Tracking

Parameters

object_id

string(35)

ID único del envío.

tracking_number

string(35)

Numero de rastreo del envío.

order_number

string(35)

Numero de ordern relacionado al envío.

status

string(35)

Estatus global del envío (ver lista de estatus).

substatus

string(35)

Subestatus global del envío (ver lista de subestatus).

status_details

string(35)

Estatus detallado del envío.

timestamp

date hour

Fecha de registro del envento.

estimated_delivery

date hour

Fecha estimada de entrega del envío.

location

string(35)

Ubicación del último registro.

Webhook Body:

Copiado

                                                                                
{
    "object_id":"60e37902e86e1",
    "tracking_number":"281115007045",
    "order_number":"#12241",
    "status":"TRANSIT",
    "status_details":"Picked up",
    "timestamp":"2021-07-06 17:56:00",
    "estimated_delivery":"2021-07-08 21:00:00",
    "location":"CUAUTITLAN IZCALLI, MX"
}
                
                                
                            

Webhook ejemplo: