Ir al contenido

Emitir guía de remisión

POST
/v1/delivery-guides
curl --request POST \
--url https://api.chaski.ec/v1/delivery-guides \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: example' \
--data '{ "issuer": "example", "emission_point": "example", "external_ref": "example", "departure_address": "example", "carrier": { "id_type": "ruc", "id": "example", "name": "example", "rise": "example" }, "plate": "example", "transport_start": "example", "transport_end": "example", "recipients": [ { "id": "example", "name": "example", "address": "example", "email": "[email protected]", "reason": "example", "customs_document": "example", "destination_establishment": "example", "route": "example", "supporting_document": { "invoice": "example" }, "items": [ { "code": "example", "auxiliary_code": "example", "description": "example", "quantity": "example", "details": { "additionalProperty": "example" } } ] } ], "additional_info": { "additionalProperty": "example" }, "metadata": { "additionalProperty": "example" }, "send_email": true }'

Guía de remisión (06), esquema 1.1.0: el traslado de mercadería desde departure_address hasta uno o más destinatarios, con el transportista (no puede ser consumidor final) y la placa del vehículo. No lleva valores. transport_start es hoy por defecto y no puede ser anterior a la fecha de emisión; transport_end no puede ser anterior al inicio. Cada destinatario puede llevar su comprobante de venta: con supporting_document.invoice se usa una factura emitida en Chaski (debe estar authorized, si no 409 invoice_not_authorized), o se indican type, number, authorization_number e issue_date. El RIDE se envía al primer destinatario con email. Responde 202 con status: "pending" y se notifica con delivery_guide.authorized o delivery_guide.rejected. En producción consume cuota igual que una factura (402 quota_exceeded).

Idempotency-Key
required
string
<= 255 characters

Una clave única por petición (por ejemplo un UUID). Vale 24 h: reintentar con la misma clave y el mismo body devuelve la misma respuesta.

Media typeapplication/json
object
issuer
required
string
emission_point
required
string
/^\d{3}-\d{3}$/
external_ref
string
>= 1 characters <= 255 characters
departure_address
required
string
>= 1 characters <= 300 characters
carrier
required
object
id_type
required
string
Allowed values: ruc cedula passport foreign
id
required
string
>= 1 characters <= 20 characters
name
required
string
>= 1 characters <= 300 characters
rise
string
>= 1 characters <= 40 characters
plate
required
string
>= 1 characters <= 20 characters
transport_start
string
/^\d{4}-\d{2}-\d{2}$/
transport_end
required
string
/^\d{4}-\d{2}-\d{2}$/
recipients
required
Array<object>
>= 1 items <= 50 items
object
id
required
string
/^[A-Za-z0-9]{1,20}$/
name
required
string
>= 1 characters <= 300 characters
address
required
string
>= 1 characters <= 300 characters
email
string format: email
/^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/
reason
required
string
>= 1 characters <= 300 characters
customs_document
string
>= 1 characters <= 20 characters
destination_establishment
string
/^\d{3}$/
route
string
>= 1 characters <= 300 characters
supporting_document
Any of:
object
invoice
required
string
items
required
Array<object>
>= 1 items <= 200 items
object
code
string
>= 1 characters <= 25 characters
auxiliary_code
string
>= 1 characters <= 25 characters
description
required
string
>= 1 characters <= 300 characters
quantity
required
string
/^\d+(\.\d{1,6})?$/
details
object
key
additional properties
string
<= 300 characters
additional_info
object
key
additional properties
string
<= 300 characters
metadata
object
key
additional properties
string
<= 500 characters
send_email
boolean

OK

Media typeapplication/json
object
id
required
string
status
required
string
Allowed values: pending received authorized rejected failed
environment
required
string
Allowed values: test live
issuer
required
string
emission_point
required
string
number
required
string
access_key
required

Clave de acceso de 49 dígitos

string
issue_date
required
string format: date
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$/
departure_address
required
string
carrier
required
object
id_type
required
string
Allowed values: ruc cedula passport foreign
id
required
string
name
required
string
rise
required
string | null
plate
required
string
transport_start
required
string format: date
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$/
transport_end
required
string format: date
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$/
recipients
required
Array<object>
object
id
required
string
name
required
string
address
required
string
reason
required
string
customs_document
required
string | null
destination_establishment
required
string | null
route
required
string | null
supporting_document
required
Any of:
object
type
required
string
number
required
string
authorization_number
required
string | null
issue_date
required
Any of:
string format: date
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$/
items
required
Array<object>
object
code
required
string | null
auxiliary_code
required
string | null
description
required
string
quantity
required
string
details
required
object
key
additional properties
string
email
required
string | null
external_ref
required
string | null
metadata
required
object
key
additional properties
string
sri_messages
required
Array<object>
object
code
required
string
type
required
string
message
required
string
additional_info
string
authorized_at
required
Any of:
string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/
created_at
required
string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/

Example

{
"id": "dg_01jbx3k9q2f8m4tn6vwz0yh5ce",
"status": "pending",
"environment": "test",
"emission_point": "001-002",
"number": "001-002-000000015",
"carrier": {
"id_type": "ruc"
},
"plate": "GBA-1234",
"recipients": [
{
"supporting_document": {
"type": "01",
"number": "001-001-000000123"
},
"items": [
{
"quantity": "10.000000"
}
]
}
]
}

Petición inválida

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
field
string
key
additional properties

Example

{
"error": {
"code": "invalid_request"
}
}

Falta la API key o no es válida

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
field
string
key
additional properties

Example

{
"error": {
"code": "invalid_request"
}
}

Cuota de comprobantes agotada (quota_exceeded)

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
field
string
key
additional properties

Example

{
"error": {
"code": "invalid_request"
}
}

Sin permiso (cuenta suspendida, emisor no habilitado en producción, límite del plan…)

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
field
string
key
additional properties

Example

{
"error": {
"code": "invalid_request"
}
}

Conflicto (recurso repetido, Idempotency-Key en curso…)

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
field
string
key
additional properties

Example

{
"error": {
"code": "invalid_request"
}
}

No se puede procesar (certificado vencido, Idempotency-Key reutilizada…)

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
field
string
key
additional properties

Example

{
"error": {
"code": "invalid_request"
}
}

Demasiadas peticiones

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
field
string
key
additional properties

Example

{
"error": {
"code": "invalid_request"
}
}