Introducción


La API de Acelérala está construida bajo los estándares de REST. Es decir, nuestra API posee URLs orientada a recursos, y hace uso de los códigos de respuesta HTTP para indicar los posibles errores en el API. Es importante indicar que se encuentra implementada una autenticación HTTP (Bearer Token), solicitada en cada petición. Además, soportamos las solicitudes HTTP de origen cruzado (CORS), permitiendo que tu sitio y Acelérala puedan interactuar de manera segura mediante nuestra API desde una aplicación cliente. Por otro lado, un objeto JSON es retornado en cada una las peticiones hacia el API, incluyendo los errores. Adicionalmente nuestras bibliotecas convierten las respuestas en objetos específicos para cada lenguaje soportado.


Autenticación


Para poder acceder y utilizar la API de Acelérala necesitas previamente registrar un cliente y asignarle los permisos que tendrá. Una vez que esté registrado, obtendrás tus Llaves de Autenticación. Con las llaves podrás solicitar un Token que luego tendrás que incluir en cada petición que hagas al API.

El Token se solicita enviando un POST request al endpoint https://api.acelerala.com/v1/token. Este endpoint recibe autenticación tipo Basic Authenticate. Deberás enviar en el header dos parámetros: Content-Type con el valor application/x-www-form-urlencoded y Authorization con el valor Basic < credenciales > donde las credenciales son el identificador del cliente y la llave privada del cliente cifradas con Base64 de la forma client_id:client_secret. Adicionalmente, en el cuerpo de la petición se debe enviar el parámetro grant_type con el valor client_credentials.

Recuerda enviar los parámetros por HTTPS ya que Basic Authenticate puede ser descifrado para obtener tus credenciales.


Errores


Por medio de nuestra API, podrás ser notificado con toda la información en caso presentes un error al momento de hacer una petición a cualquier operación del API. La API de Acelérala utiliza el estándar de Códigos de Estado HTTP (HTTP Status Codes) en todas sus respuestas para indicar si las solicitudes se pudieron procesar con éxito o fallaron.


Paginación


Todos los recursos principales de Acelérala soportan operaciones de listado, entre ellos ordenes, Productos y Clientes. Adicionalmente, todos los métodos de listado del API comparten una estructura similar tomando en cuenta estos tres parámetros: limit, after y before.

Acelérala utiliza una paginación en tiempo real basada en cursor a través de los parámetros after y before. Un cursor se refiere a un string de caracteres random que marca un ítem específico en una lista de datos. A menos que el ítem sea borrado, el cursor siempre estará punteando la misma parte de la lista, pero será invalidado si el ítem es removido.

En Acelérala, los parámetros after y before toman el valor ID y el valor por el que esté siendo ordenado (por defecto created) retornan los objetos en un orden cronológico reverso. El parámetro before devuelve los objetos creados antes del objeto en cuestión. El parámetro after devuelve los objetos creados después del objeto en cuestión. Si ambos parámetros son provistos sólo after es utilizado.

Adicionalmente, algunos recursos permiten retornar los objetos en otro órden si es que se solicita en la petición. Para esto se debe enviar el parámetro sort e indicar por qué campo se quiere ordenar y en qué dirección serparados por :, por ejemplo sort=created:desc. Los posibles valores para la dirección son asc (ascendientemente) y desc (descendientemente). Los posibles campos para ordenar dependerán de cada recurso y se detallarán en el recurso.

Al listar varios resultados de un recurso, se puede filtrar los resultados para obtener una lista de resultados específicos enviando los campos por los que desea filtrar como parámetros. Se puede filtrar utilizando equivalencias: gt (mayor), lt (menor), gte (mayor o igual), lte (menor o igual), o simplemente colocando el valor buscado (igual), o una serie de valores buscados separados por coma.

Por ejemplo, si quisieramos buscar todos las ordenes con un total entre 1 y 500, y que estén pagadas:

https://api.acelerala.com/v1/orders?total=gt:1,lt:500&payment_status=paid


Webhooks


Utiliza webhooks para recibir notificaciones de eventos que suceden en tu cuenta de Acelérala.

Los webhooks te permiten registrar una URL https:// a donde se enviará data en formato JSON. Algunos casos de uso comunes son

Integrar tu software contable.
Actualizar precios en algún otro sistema.
Recolectar data en un data warehouse.
La orden ha sido pagada en su totalidad.
Los pagos de la orden han sido devueltos parcialmente.
Los pagos de la orden han sido devueltos completamente.

En Acelérala, los eventos son nombrados en base a la familia del recurso, la acción, y en algunos casos, el nombre del cambio que se le dio al recurso. Los nombres están separados por un punto. Al crear un Webhook, puedes suscribirte a más de un evento a la vez con un endpoint. Esta es la lista actual de eventos a los que te puedes suscribir:

orders.created: La orden fue creada con éxito, pero aún no ha sido puesta. Esto significa básicamente que es un "carrito".
orders.created.placed:La orden fue creada y puesta.
orders.updated: La orden ha sido actualizada.
orders.updated.placed: La orden ha sido actualizada y puesta.
orders.updated.canceled: El pago ha sido autorizado por el procesador.
receipts.created: Los pagos de la orden han sido devueltos parcialmente.
receipts.created.accepted: Los pagos de la orden han sido devueltos parcialmente.
receipts.created.rejected: Los pagos de la orden han sido devueltos parcialmente.


Objeto Orden


Atributos

id integer

Identificador único del objeto.


object string, valor es "order"

Nombre del objeto.


currency_code currency

Código de la moneda en tres letras (Formato ISO 4217).


payment_status string

El estado de los pagos asociados a la orden. Solo puede colocarse cuando la orden es creada. Valores válidos:

pending: Pago pendiente. El pago aún puede fallar en este estado. Las ordenes se crean en este estado si es que no se define ningún estado.
authorized: El pago ha sido autorizado por el procesador.
partially_paid: La orden ha sido pagada parcialmente.
paid: La orden ha sido pagada en su totalidad.
partially_refunded: Los pagos de la orden han sido devueltos parcialmente.
refunded: Los pagos de la orden han sido devueltos completamente.
voided: El pago ha sido anulado antes de completarse.


payment_terms string

La información acerca del compromiso de pago del cliente al hacer la orden.

Ocultar atributos
payment_terms.method string

El medio de pago elegido al momento de hacer el pedido. Valores válidos:

cash: Efectivo.
transfer: Transferencia bancaria.
card: Tarjeta de crédito o débito.


payment_terms.cash_amount decimal, opcional

La cantidad de efectivo que el cliente se comprometió a utilizar cuando elige el método de pago "efectivo".n


payment_terms.card_brand string

La marca de la tarjeta con la que va a pagar el cliente. Este campo sirve para cuando al hacer deliveries hay que elegir qué marca de POS llevar.


billing_details string

La información de facturación de la Orden.

Ocultar atributos
billing_details.first_name string

Nombre del cliente


billing_details.last_name string

Apellido del cliente.


billing_details.company string

Nombre de la empresa


billing_details.email string

Correo electrónico al que se le enviará los datos del pedido.


billing_details.receipt_expected string

Tipo de documento solicitado por el cliente al momento de la compra. Posibles valores:

ticket: Boleta.
invoice: Factura.


billing_details.document_type opcional string

Tipo de documento. Posibles valores:

dni: Documento nacional de identidad.
ce: Carné de extranjería.
passport: Pasaporte.
-: Ventas menores a S/ 700.00 y otros.
ruc: RUC.
cdi: Cédula diplomática de identidad.
nd: No domiciliado, sin RUC (exportacións).
dnind: DOC.IDENT.PAIS.RESIDENCIA-NO.D.
tin: Tax Identification Number - TIN – Doc Trib PP.NN.
in: Identification Number - IN – Doc Trib PP. JJ.
tam: TAM- Tarjeta Andina de Migración .


billing_details.document_number string

Número de documento.


billing_details.phone string

Teléfono de contacto del cliente.


billing_details.address1 string

Dirección de Facturación.


billing_details.address2 opcional string

Información adicional de la direción del cliente.


billing_details.city string

Ciudad de la dirección de facturación.


billing_details.province string

Provincia de la dirección de facturación.


billing_details.district string

Distrito de la dirección de facturación


billing_details.country string

País de la dirección de facturación


billing_details.country_code string

Código de país (Formato ISO 3166).


billing_details.zip_code integer

Código postal de 6 dígitos.


shipping_address string

La dirección de entrega de la Orden.

Ocultar atributos
shipping_address.first_name string

Nombre del que recibirá la ordeniente


shipping_address.last_name string

Apellido del que recibirá la orden.


shipping_address.phone string

Teléfono de contacto del encargado de la recepción del pedido.


shipping_address.address1 string

Dirección de entrega.


shipping_address.address2 string

Información adicional o referencia de la direción de entrega.


shipping_address.city string

Ciudad de la dirección de entrega.


shipping_address.province string

Provincia de la dirección de entrega.


shipping_address.district string

Distrito de la dirección de entrega


shipping_address.country string

País de la dirección de entrega


shipping_address.country_code string

Código de país (Formato ISO 3166).


shipping_address.longitude decimal

Longitud de la dirección de entrega


shipping_address.latitude decimal

Latitud de la dirección de entrega


shipping_address.zip_code integer

Código postal de 6 dígitos.


lines

Los ítems que componen la Orden. Contienen información del Producto como estaba definido al momento en que se creo la Orden. Mostrar atributos

Ocultar atributos
lines.id integer

Identificador único del objeto


lines.object string, valor es "line"

Nombre del objeto.


lines.product_id integer

Identificador único del producto de la orden.


lines.alternative_id integer

Identificador único de la alternativa de la orden.


items.sunat_product_code string

Código de producto SUNAT o Código GS1, según los valores indicados en el Catálogo de Productos.


lines.quantity integer

Cantidad de la alternativa que se agregó a la orden.


lines.grams decimal

Peso unitario del ítem.


lines.price decimal

Precio unitario del ítem.


lines.subtotal decimal

Subtotal de la línea. Se calcula multiplicando el precio unitario por la cantidad.


lines.discount_allocations.id int

Identificador único de la asignación del descuento recibido a la línea.


lines.discount_allocations.discount_id int

Identificador único del descuento que se aplicó a la línea.


lines.discount_allocations.amount int

El monto descontado.


lines.discounts_total decimal

El descuento total de la línea.


lines.total decimal

Total de la línea. Se calcula restando line.discounts_total a lines.subtotal.


lines.fulfillment_details.requires_shipping boolean

Si es que el ítem requiere de envío. Por ejemplo, un producto difital tendría valor false.


lines.fulfillment_details.fulfillable_quantity integer

El stock disponible cuando se agregó la el ítem al pedido.


lines.fulfillment_details.preferred_datetime timestamp

Fecha y hora preferida de entrega (Formato ISO 8601).


lines.name string

Nombre del producto y alternativa concatenados.


lines.sku string

SKU del ítem.


discount_applications

Una lista de descuentos aplicados a la Orden.

Ocultar atributos
discount_applications.id integer

Identificador único del objeto.


discount_applications.discount_id integer

Identificador único del objeto de descuento que se aplicó a la orden.


discount_applications.name string

Nombre del descuento aplicado a la orden.


discount_applications.label string

Código promocional del descuento aplicado a la orden.


discount_applications.descriptopn string

Descripción del descuento aplicado a la orden.


discount_applications.value

Valor del descuento.


discount_applications.value_type

Cómo se calcula el valor final del descuento.

percentage: se descuenta un porcentaje.
fixed_amount: se descuenta un monto fijo
specific price: se modifica el valor a un precio específico
free: gratis


discount_applications.buys

Qué debía tener el cliente en el carrito para aplicar el descuento.

anything: cualquier cosa.
products: cualquier ítem de productos específicos
categories: cualquier ítem de categorías específicas


discount_applications.buys_quantity

Cuantos ítems debió tener en el carrito para que aplique el descuento. Opcional cuando discount_applications.buys es igual a anything


discount_applications.target

A qué se le aplicó el descuento en la orden.

subtotal: Al subtotal de la orden.
products: A productos específicos en la orden
categories: A ítems de categorías específicas en la orden
shipping: Al costo de envío de la orden


discount_applications.target_quantity

Cuantos ítems debió tener en la orden para que aplique el descuento. No aplica cuando discount_applications.target es igual a subtotal o shipping


discount_applications.allocation_trigger string

Qué hizo que se asigne el descuento. Valores válidos:

manual: El descuento fue aplicado manualmente por el comercio o como código promocional.
automatic: El descuento fue aplicado porque el pedido cumplía los requerimientos para participar en una promoción.


discount_applications.total_allocated decimal

El monto total descontado:


taxes_included boolean

Si es que los precios de los ítems y los totales de la Orden incluyen impuestos o no.


lines_total decimal

La sumatoria de todos los lines.total de la orden.


global_discounts_total decimal

La suma de los descuentos globales aplicados a la orden. No se consideran descuentos aplicados a las líneas.


shipping_discounts_total decimal

La suma de los descuentos aplicados al costo de envío de la orden.


subtotal decimal

El total antes de considerar el costo de envío. Se calcula restando global_discounts_total a lines_total.


shipping_total decimal

El costo de envío asociado al pedido. Se calcula en base a la configuración de la tienda.


total decimal

El total de la orden que pagará el cliente. Se calcula sumando el subtotal y el costo de delivery.


note string opcional

Nota opcional que se utiliza para que el cliente o el dueño de la tienda agreguen información al pedido.


created timestamp

La fecha y hora en la que se creo la orden (Formato ISO 8601).


modified timestamp

La última fecha y hora en la que se modificó la orden (Formato ISO 8601).


placed timestamp

La fecha y hora en la que se realizó el pedido (Formato ISO 8601). Una vez que se realiza, se requieren permisos adicionales para modificar la orden.

	
{
	"id": 32203,
	"object": "order",
	"currency_code": "PEN",
	"payment_status": "paid",
	"billing_details": {
		"first_name": "Manuel",
		"last_name": "Cornejo",
		"company": "",
		"email": "manuelcornejo@testmail.com",
		"document_type": "dni",
		"document_number": "48765432",
		"phone": "991231231",
		"address1": "Av Aviación 2405, San Borja",
		"city": "Lima",
		"province": "Lima",
		"district": "San Borja",
		"country": "Perú",
		"country_code": "PE",
		"zip_code": 15035
	},
	"shipping_address": {
		"first_name": "Manuel",
		"last_name": "Cornejo",
		"phone": 991231231,
		"address1": "Calle Mi Casa 123, San Borja",
		"address2": "Al frente de la Rambla",
		"city": "Lima",
		"province": "Lima",
		"district": "San Borja",
		"country": "Perú",
		"country_code": "PE",
		"longitude": null,
		"latitude": null,	
		"zip_code": 15035
	},
	"lines": [
		{
			"id": 47691,
			"object": "line",
			"product_id": 2233,
			"alternative_id": 2254,
			"quantity": 3,
			"grams": null,			
			"name": "Grips",
			"sku": "TESTAPI",
			"price": "100.00",
			"discounts_total": "120.00",
			"discount_allocations": [
				{
					"discount_id": 1337,
					"amount": "120.00"
				}
			],
			"fulfillment_details": {
				"requires_shipping": true,
				"fulfillable_quantity": "4",
				"preferred_datetime": null
			}
		}
	],
	"discount_applications": [
		{
			"id": 1337,	
			"discount_id": "21",
			"name": "Promo cyber Wow",			
			"label": "CYBERWOW",
			"desctiption": "Compra 3, recibe  1 con S/ 120 descuento para todos los productos de la categoría cyber wow",
			"value":  120.00,
			"value_type": "fixed_amount",
			"buys": "categories",
			"buys_quantity": 3,
			"target": "categories",
			"target_quantity": 1,
			"allocation_trigger": "automatic",
			"allocation_order": "1",
			"total_allocated": "10"			
		},
		{
			"id": 2000,	
			"discount_id": "23",
			"name": "Recibe 100 soles por más de 300 en tu compra",							
			"label": "100PORMASDE300",
			"desctiption": "Por la compra de más de S/ 300 en tu carrito, ecibe 100 soles",
			"value":  100.00,
			"value_type": "fixed_amount",
			"buys": "anything",
			"buys_quantity": 1,
			"target": "subtotal",			
			"allocation_trigger": "manual",
			"allocation_order": "2",
			"total_allocated": "100",
		}
	
	],
	"discounts_total": 100.00,
	"taxes_included": true,
	"lines_total": 300,	
	"subtotal": 30,
	"shipping_total": 0,
	"total": 30,
	"created": "2019-03-29T14:39:08.000Z",
	"modified": "2019-03-29T14:39:35.000Z",
	"placed": "2019-03-29T14:39:35.000Z"
}
				

Listar Ordenes

GET https://api.acelerala.com/v1/orders
Permisos:

Requiere el siguiente permiso:
read:orders para ver todos los pedidos de una tienda. Si se lista ordenes sin el permiso, sólo encontrará las ordenes que le pertenecen al usuario específico.

Ordenar:

Puedes elegir cualquiera de estos campos para ordenar los pedidos: id,total,created,modified,placed.

Ejemplos

Listar ordenes
GET https://api.acelerala.com/v1/orders

Listar las últimas 20 ordenes en las que el pedido se haya realizado despues de una fecha específica
GET https://api.acelerala.com/v1/orders?limit=20&sort=placed:desc&placed=gt:2019-01-10T16:58:14.000Z

Listar ordenes con solo ciertas propiedades GET https://api.acelerala.com/v1/orders?fields=id,payment_status,items

Listar ordenes con total entre 1000 y 5000, y mostrar solo 10 resultados GET https://api.acelerala.com/v1/orders?total=gt:1000,lt=5000&limit=10

Listar ordenes que hayan sido pagadas GET https://api.acelerala.com/v1/orders


Objeto Comprobante


Atributos

id integer

Identificador único del objeto.


object string, valor es "receipt"

Nombre del objeto.


document_type_code string

El código de tipo de documento autorizado para efectos tributarios según el Catálogo 01 especificado en SUNAT. Algunos son:
01: Factura.
03: Boleta de venta.
07: Nota de crédito.
08: Nota de débito.
09: Guía de remisión remitente.


series string

Empieza con "F" para FACTURAS y NOTAS ASOCIADAS. Empieza con "B" para BOLETAS DE VENTA y NOTAS ASOCIADAS. Si está comunicando un comprobante emitido en contingencia, la serie debe empezar NO debe empezar con "F" ni con "B". Debería empezar con "0", ejemplo: "0001"


correlative integer, autogenerado

Número correlativo del documento, sin ceros a la izquierda. Si estás creando un documento nuevo, se calcula automáticamente en base al último documento generado con la misma serie.


currency_code currency, por defecto 'PEN'

Código de la moneda en tres letras (Formato ISO 4217).


affected_document_type_code string

El código de tipo de documento afectado por la nota de crédito o débito según el Catálogo 01 especificado en SUNAT.


affected_document_number string

La serie y número del documento que una nota de crédito o débito modifica. Obligatorio si es que se está eimitiendo Notas de crédito o débito.


note_motive_code string

El código de tipo de nota. En el caso de nota de crédito electrónica, los códigos están en el Catálogo 09 especificado en SUNAT. En el caso de nota de débito electrónica, los códigos están en el Catálogo 10 especificado en SUNAT. Obligatorio si es que se está eimitiendo Notas de crédito o débito.


note_motive_description string

La descripción del código de tipo de nota. En el caso de nota de crédito electrónica, las descripciones de los códigos están en el Catálogo 09 especificado en SUNAT. En el caso de nota de débito electrónica, las descripciones de los códigos están en el Catálogo 10 especificado en SUNAT.


operation_code string, por defecto '0101' (Venta interna)

El código de tipo de operación según el Catálogo 51 especificado en SUNAT.


customer_information string

La información del cliente al que se le está generando el documento.

Ocultar atributos
customer_information.name string

Razón social o nombre completo del cliente


customer_information.email string

Correo electrónico al que se le enviará los datos de la orden.


customer_information.document_type string

Tipo de documento. Obligatoriamente debes enviar este parámetro o customer_information.document_type_code. Si se envían ambos, se respeta customer_information.document_type_code. Posibles valores:

ruc:RUC.
dni: Documento nacional de identidad.
-: Ventas menores a S/ 700.00 y otros.
ce: Carné de extranjería.
passport: Pasaporte.
cdi: Cédula diplomática de identidad.
nd: No domiciliado, sin RUC (exportacións).
dnind: DOC.IDENT.PAIS.RESIDENCIA-NO.D.
tin: Tax Identification Number - TIN – Doc Trib PP.NN.
in: Identification Number - IN – Doc Trib PP. JJ.
tam: TAM- Tarjeta Andina de Migración .


customer_information.document_type_code string

Código de tipos de documentos de identidad según los valores indicados en el Catálogo 06.
6: RUC.
1: Documento nacional de identidad.
-: Ventas menores a S/ 700.00 y otros.
4: Carné de extranjería.
7: Pasaporte.
A: Cédula diplomática de identidad.
0: No domiciliado, sin RUC (exportacións).
B: DOC.IDENT.PAIS.RESIDENCIA-NO.D.
C: Tax Identification Number - TIN – Doc Trib PP.NN.
D: Identification Number - IN – Doc Trib PP. JJ.
E: TAM- Tarjeta Andina de Migración .


customer_information.document_number integer

Número de documento.


customer_information.phone string

Teléfono de contacto del cliente.


customer_information.address1 string

Dirección de Facturación.


customer_information.address2 optional string

Información adicional de la direción del cliente.


customer_information.region string

Departamento de la dirección de facturación.


customer_information.province string

Provincia de la dirección de facturación.


customer_information.district string

Distrito de la dirección de facturación


customer_information.country string

País de la dirección de facturación


customer_information.country_code string

Código de país (Formato ISO 3166).


customer_information.zip_code integer

Código postal de 6 dígitos.


vendor_information string

La información de la empresa que genera el documento.

Ocultar atributos
vendor_information.name string

Razón social como está registrada.


vendor_information.brand string

Nombre comercial de la empresa.


vendor_information.document_number integer

RUC de la empresa.


vendor_information.address1 string

Dirección de empresa.


vendor_information.address2 opcional string

Información adicional de la direción de la empresa.


vendor_information.region string

Departamento de la dirección de la empresa.


vendor_information.province string

Provincia de la dirección de la empresa.


vendor_information.district string

Distrito de la dirección de la empresa


vendor_information.country string

País de la dirección de la empresa


vendor_information.country_code string

Código de país (Formato ISO 3166).


vendor_information.ubigeo integer

Ubigeo de la dirección de la empresa


items

Los ítems que componen el Comprobante. Contienen información de los ítems. Mostrar atributos

Ocultar atributos
items.name string

Nombre del producto y alternativa concatenados.


items.sunat_product_code string

Código de producto SUNAT o Código GS1, según los valores indicados en el Catálogo de Productos.


items.net_unit_price opcional decimal

Precio unitario neto del ítem (sin IGV incluido) antes de aplicar descuentos.


items.unit string

Valores válidos:

NIU: Es un producto.
ZZ: Es un servicio.


items.quantity integer, por defecto es 1

Cantidad de ítems.


items.net_subtotal opcional decimal autogenerado

El precio unitario (items.net_unit_price) multiplicado por la cantidad (items.quantity).


items.free_unit_price opcional decimal, por defecto 0

Para factura gratuita. Por ejemplo para el código de tipo de afectación IGV 12 (Gravado – Retiro por premio).


items.free_total opcional decimal, por defecto 0

El monto gratuito unitario multiplicado por la cantidad de ítems.


items.discounts.code opcional string

Códigos de cargos o descuentos, según el Catálogo 53 especificado en SUNAT. Por defecto 00.


items.discounts.base_net_amount opcional decimal autogenerado

El monto neto sobre el cual se descontó. Se autogenera con el monto neto y el porcentaje de descuento.


items.discounts.base_gross_amount opcional decimal autogenerado

El monto bruto sobre el cual se descontó. Se autogenera con el monto bruto y el porcentaje de descuento.


items.discounts.rate opcional decimal

El porcentaje de descuento aplicado.


items.discounts.net_amount opcional decimal

El monto neto descontado. Si se envía el monto neto y el monto bruto, se utilizará el monto bruto para calcular el monto neto.


items.discounts.gross_amount opcional decimal

El monto bruto descontado. Si se envía el monto neto y el monto bruto, se utilizará el monto bruto para calcular el monto neto.


items.net_discounts_total opcional decimal autogenerado

El descuento neto total del ítem.


items.net_total opcional decimal

Monto total del ítem, menos descuentos, sin IGV incluido.


items.taxable_total opcional decimal

Total gravado con el IGV del ítem. No incluye IGV, ISC, cargos y otros Tributos si los hubiera. No contiene el valor de venta de las transferencias de bienes o servicios prestados a título gratuito.


items.sales_tax_rate decimal, por defecto es 18

El porcentaje de IGV.


items.sales_tax_code string, por defecto es 10

Códigos de tipo de afectación del IGV, según el Catálogo 07 especificado en SUNAT. Por defecto 10.


items.sales_tax_total opcional decimal

El total de IGV del ítem. Es el IGV del ítem multiplicado por la cantidad.


items.plastic_tax_factor opcional decimal

El factor del impesto a las bolsas de plástico (ICBPER).


items.plastic_tax_total opcional decimal

El total de ICBPER del ítem. Es el factor del impuesto a las bolsas de plástico multiplicado por la cantidad de bolsas.


items.gross_unit_price opcional decimal

Precio unitario del ítem con IGV incluido.


items.gross_subtotal opcional decimal autogenerado

El precio bruto unitario (items.gross_unit_price) multiplicado por la cantidad (items.quantity).


items.gross_discounts_total opcional decimal autogenerado

El descuento bruto total del ítem.


items.gross_total opcional decimal

Monto total de la línea con IGV incluido.


items.sku opcional string

SKU del ítem.


detraction

En caso el código de tipo de operación sea igual a 1001, es obligatorio.

Ocultar atributos
detraction.code integer

Códigos de bienes y servicios sujetos a detracción, según el Catálogo 54 especificado en SUNAT.


detraction.payment_method_code integer

Medio de pago, según el Catálogo 59 especificado en SUNAT.


detraction.bank_account string

Número de cuenta en el Banco de la Nación


detraction.amount decimal

Monto de la detracción.


detraction.percentage decimal

Porcentaje de la detracción.


advances opcional

En caso hayan anticipos en algún documeto anterior, se pueden agregar. Por cada anticipo, automáticamente se crea un descuento a nivel global que reduce el costo final de la factura.

Ocultar atributos
advances.code integer

Códigos de documentos relacionados tributarios, según el Catálogo 12 especificado en SUNAT.


advances.related_document_number string

El documento relacionado con el cual se hizo el anticipo.


advances.amount decimal

El monto anticipado en el documento relacionado.


advances_total opcional decimal

La suma de los anticipos.


hold opcional

El Régimen de Percepciones constituye un sistema de pago adelantado del Impuesto General a las Ventas, mediante el cual el agente de percepción (vendedor o Administración Tributaria) percibe del importe de una venta o importación, un porcentaje adicional que tendrá que ser cancelado por el cliente o importador quien no podrá oponerse a dicho cobro.

Ocultar atributos
hold.code integer

Código de régimen de percepción, según el Catálogo 22 especificado en SUNAT.


hold.percentage decimal

El porcentaje se percibirá.


hold.base_amount decimal

La base imponible sobre la cual se calcula la percepción


hold.amount decimal

El monto de la percepción


hold.total decimal

El monto total incluido la percepción


other_charges_total opcional decimal autogenerado

La suma de las percepciones u otros cargos adicionales.


global_discounts opcional

Los descuentos globales son descuentos que se han aplicado al comprobante calculando diréctamente sobre el total de los ítems. Al agregar un descuento Global, se restará ese monto al total neto de los ítems, y sobre ese monto se calcularán los impuestos.

Ocultar atributos
global_discounts.base_net_amount opcional decimal autogenerado

El monto neto sobre el cual se descontó. Se autogenera con el monto neto y el porcentaje de descuento.


global_discounts.base_gross_amount opcional decimal autogenerado

El monto bruto sobre el cual se descontó. Se autogenera con el monto bruto y el porcentaje de descuento.


global_discounts.rate opcional decimal

El porcentaje de descuento aplicado.


global_discounts.net_amount opcional decimal

El monto neto descontado. Si se envía el monto neto y el monto bruto, se utilizará el monto bruto para calcular el monto neto.


global_discounts.gross_amount opcional decimal

El monto bruto descontado. Si se envía el monto neto y el monto bruto, se utilizará el monto bruto para calcular el monto neto.


net_global_discounts_total decimal autogenerado

El total neto de los descuentos globales. Se calcula sumando todos los descuentos netos globales (global_discounts.net_amount) .


gross_global_discounts_total decimal autogenerado

El total bruto de los descuentos globales. Se calcula sumando todos los descuentos brutos globales (global_discounts.gross_amount) .


exports_total opcional decimal autogenerado

El monto total de venta de exportación.


items_net_total decimal autogenerado

La suma de los precios finales de los ítems antes de impuestos. Se calcula multiplicando el precio unitario (items.net_unit_price) por la cantidad de ítems (items.quantity) y luego restando el descuento total (items.discounts_total).


taxable_total decimal autogenerado

El total sobre el cual se calculará el pago de impuestos. No se consideran operaciones inafectas. Este elemento es usado solo si al menos una línea de ítem está gravada con el IGV. Contiene a la sumatoria de los valores de venta gravados por ítem y la deducción de descuentos globales si lo hubiere. El total valor de venta no incluye IGV, ISC, cargos y otros Tributos si los hubiera. La sumatoria tampoco debe contener el valor de venta de las transferencias de bienes o servicios prestados a título gratuito comprendidos en la factura y que estuviesen gravados con el IGV.


unaffected_total decimal autogenerado

El total inafecto de impuestos. Este elemento es usado solo si al menos una línea de ítem se encuentra inafecta al IGV. Contiene a la sumatoria de valor de venta por item inafectos, y la deducción de descuentos globales si los hubiere. El valor de venta no incluye ISC, cargos u otros tributos si los hubiera. La sumatoria tampoco debe contener el valor de venta de las transferencias de bienes o servicios prestados a título gratuito comprendidos en la factura y que estuviesen inafectos al IGV.


exempt_total decimal autogenerado

El total exonerado de impuestos. Este elemento es usado solo si al menos una línea de ítem se encuentra exonerada al IGV. Contiene a la sumatoria de valor de venta por ítem exonerados por item y la deducción de descuentos globales si lo hubiere. El valor de venta no incluye ISC, cargos u otros Tributos si los hubiera. La sumatoria tampoco debe contener el valor de venta de las transferencias de bienes o servicios prestados a título gratuito comprendidos en la factura y que estuviesen exonerados del IGV.


free_total decimal autogenerado

El total de bienes o servicios prestados gratuitamente. Este elemento, se utilizará cuando exista transferencia de bienes o de servicios que se realice gratuitamente. Representa la sumatoria de los ítems, que correspondan a operaciones gratuitas.


sales_tax_total decimal autogenerado

El total de impuesto general de venta a pagar.


taxes_total decimal autogenerado

El total de impuestos a pagar.


net_total decimal autogenerado

El total antes de considerar impuestos. Se calcula restando total_advancements a items_net_total.


gross_total decimal autogenerado

El total del pedido que pagará el cliente. Se calcula sumando el total antes de impuestos (net_total) y los impuestos (taxes_total).


claimed_total decimal autogenerado

El total de transacciones atribuidas a este comprobante. Se calcula con la sumatoria de claims.amount.


unclaimed_total decimal autogenerado

El monto de la factura que aún no tiene transacciones asociadas. Se calcula restando claimed_total de gross_total. En base a esto, se puede obtener facturas pendientes de pago.


created timestamp

La fecha y hora en la que se creo la orden (Formato ISO 8601).


modified timestamp

La última fecha y hora en la que se modificó la orden (Formato ISO 8601).


sunat_acepted flag

Indica si el comprobante fue aceptado o no por SUNAT. Los comprobantes rechazados muestran losmotivos de rechazo en el mensaje de error.


sunat_code timestamp

Código de rechazo SUNAT.


sunat_message timestamp

Mensaje de respuesa de SUNAT.


pdf_url timestamp

URL en donde se cargó el comprobante en formato PDF.


cdr_url timestamp

URL en donde se cargó el comprobante en formato ZIP con el comprobante de recepción SUNAT.


xml_url timestamp

URL en donde se cargó el comprobante en formato XML.


created timestamp

La fecha y hora en la que se creo el comprobante (Formato ISO 8601).


modified timestamp

La última fecha y hora en la que se modificó el comprobante (Formato ISO 8601).

	
{
	"id": 32203,
	"object": "receipt",
	"series": "F100",
	"correlative": 1,
	"currency_code": "PEN",
	"operation_code": "0101",
	"customer_information": {
		"name": "Yuca EIRL",
		"email": "manuelcornejo@testmail.com",
		"document_type": "ruc",
		"document_type_code": "6",
		"document_number": "20601009171",
		"phone": "991231231",
		"address1": "Av Aviación 2405, San Borja",
		"address2": "Piso 2",
		"region": "Lima",
		"province": "Lima",
		"district": "San Borja",
		"country": "Perú",
		"country_code": "PE",
		"zip_code": 15035
	},
	"vendor_information": {		
		"name ": "Yuca EIRL",
		"brand": "Acelérala",
		"document_number": 20601009171,
		"address1": "Calle Mi Casa 123, San Borja",
		"address2": "Al frente de la Rambla",
		"region": "Lima",
		"province": "Lima",
		"district": "San Borja",
		"country": "Perú",
		"country_code": "PE",	
		"ubigeo": 150351
	},
	"items": [
		{
			"name": "Grips",
			"sunat_product_code": 1212312,
			"unit": "NIU",
			"quantity": 2,		
			"net_unit_price": "100.00",			
			"discounts": [
				{
					"code": "00",
					"base_amount": 200.00,
					"rate": 10.00,
					"amount": 20.00
				}
			],
			"discounts_total": 20.00,
			"net_total": 180.00,
			"taxable_total": 180.00,
			"sales_tax_rate": 18,
			"sales_tax_code": 10,
			"sales_tax_total": 32.40,
			"gross_unit_price": 106.20,	
			"gross_total": 212.40,
			"sku": "GRIPS"
		}
	],
	"detraction": {
		"code": "014",					
		"payment_method_code": "001",
		"bank_account":  "0004-3342343243",
		"percentage": 4.00,
		"amount": 9.44		
	},
	"advances": [
		{
			"code": "02",
			"document_number": "F001-111",	
			"total": 100.00
		}
	],
	"advances_total": 100.00,
	"hold": {
		"code": "51",					
		"percentage": 0.02,
		"base_amount":  200,	
		"amount": 4.00,
		"total": 204.00	
	},	
	"other_charges_total": 300,
	"exports_total": 0,
	"items_net_total": 300,
	"discounts_total": 0,
	"taxable_total": 300,
	"exempt_total": 0,
	"unaffected_total": 0,
	"net_total": 300,
	"sales_tax_total": 54,
	"taxes_total": 54,	
	"gross_total": 354,
	"free_total": 0,
	"claimed_total": 200,
	"unclaimed_total": 154,
	"created": "2019-03-29T14:39:08.000Z",
	"modified": "2019-03-29T14:39:35.000Z",
	"placed": "2019-03-29T14:39:35.000Z"
}
				

Listar Comprobantes

GET https://api.acelerala.com/v1/receipts
Permisos:

Requiere el siguiente permiso:
read:receipts para ver todos los comprobantes de una tienda.

Ordenar:

Puedes elegir cualquiera de estos campos para ordenar los pedidos: id,total,created,modified,claimed_total y unclaimed_total.

Ejemplos

Listar comprobantes
GET https://api.acelerala.com/v1/receipts

Listar las últimas 20 comprobantes ordenados por monto por pagar
GET https://api.acelerala.com/v1/receipts?limit=20&sort=unclaimed_total:desc

Listar comprobantes con total entre 1000 y 5000, y mostrar solo 10 resultados GET https://api.acelerala.com/v1/receipts?gross_total=gt:1000,lt=5000&limit=10

Listar comprobantes que hayan sido pagadas GET https://api.acelerala.com/v1/receipts?unclaimed_total=0


Objeto Transacción


Atributos

id integer

Identificador único del objeto.


object string, valor es "transaction"

Nombre del objeto.


store_id integer

Identificador del comercio al que pertenece la transacción.


order_id integer, opcional

Identificador de la orden a la que pertenece la transacción.


parent_id integer, opcional

Identificador de la transacción asociada. Obligatorio cuando es una captura de una autorización previa. Opcional cuando se hace una devolución, en ese caso se puede enviar este campo para asociar la devolución a una compra previa.


method string

El medio de pago utilizado para completar esta transacción:
cash: Efectivo.
transfer: Transferencia bancaria.
card: Tarjeta de crédito o débito.


type string

El tipo de transacción:
authorization: Se autorizó una tarjeta de débito o crédito, pero aún no se captura el monto.
capture: Se capturó el monto autorizado de una tarjeta de débito o crédito.
sale: Para tarjetas, se autorizó y captura el monto en una misma transacción. Para otros medios de pago, se hace una venta. Por ejemplo, un cobro con transferencia bancaria siempre será sale
void: Se dio de baja una autorización a una tarjeta de crédito o débito.
refund: Devolución de dinero al cliente.


amount decimal

El monto total de la transacción


currency_code currency, por defecto 'PEN'

Código de la moneda en tres letras (Formato ISO 4217).


user_message string, opcional

Mensaje mostrado al usuario. Algunos procesadores de pago devuelven este campo.


merchant_message string, opcional

Mensaje para el comercio. Algunos procesadores de pago devuelven este campo.


reference_code string

ID de referencia de la marca procesadora. Se utiliza para tarjetas de crédito o débito.


card_brand string

Marca de la tarjeta:
visa: Visa.
mastercard: Mastercard.
american_express: American Express
diners_club: Diners Club.


card_type string

Tipo de tarjeta:
credit: Crédito.
debit: Débito.
prepaid: Prepago


gateway string, opcional

Nombre de la empresa procesadora de pago:
culqi: Culqi.
payu: PayU.
mercadopago: MercadoPago
niubiz: Niubiz
acelerala: Acelérala


gateway_id string, opcional

ID de referencia de la procesadora de pago.


claims

Arreglo de objetos de acreditaciones de las transacciones a distintos comprobantes. Una transacción puede ser acreditada a uno o más comprobantes.


claimed_total opcional decimal

La suma de los anticipos.


unclaimed_total opcional decimal

La suma de los anticipos.


created timestamp

La fecha y hora en la que se creo la orden (Formato ISO 8601).


modified timestamp

La última fecha y hora en la que se modificó la orden (Formato ISO 8601).

	
{
	"id": 13,
	"store_id": 4,
	"order_id": null,
	"parent_id": null,
	"method": "cash",
	"type": "sale",
	"amount": 200,
	"currency_code": "PEN",
	"user_message": null,
	"merchant_message": null,
	"reference_code": null,
	"card_brand": null,
	"card_type": null,
	"gateway": "test",
	"gateway_id": "123",
	"created": "2020-04-15T15:51:16.000Z",
	"modified": "2020-04-15T15:51:16.000Z",
	"claims": [
		{
			"id": 14,
			"store_id": 4,
			"receipt_id": 71,
			"transaction_id": 13,
			"amount": 100,
			"currency_code": "PEN",
			"created": "2020-04-15T15:51:17.000Z",
			"modified": "2020-04-15T15:51:17.000Z"
		}
	],
	"claimed_total": 100,
	"unclaimed_total": 100
}
				

Listar Transacciones

GET https://api.acelerala.com/v1/transactions
Permisos:

Requiere el siguiente permiso:
read:transactions para ver todos los comprobantes de una tienda.

Ordenar:

Puedes elegir cualquiera de estos campos para ordenar los pedidos: id,amount,created,modified,claimed_total y unclaimed_total.

Ejemplos

Listar transacciones
GET https://api.acelerala.com/v1/transactions

Listar las últimas 20 transacciones ordenados por monto por pagar
GET https://api.acelerala.com/v1/transactions?limit=20&sort=unclaimed_total:desc

Listar transacciones con total entre 1000 y 5000, y mostrar solo 10 resultados GET https://api.acelerala.com/v1/transactions?gross_total=gt:1000,lt=5000&limit=10

Listar transacciones que hayan sido facturadas GET https://api.acelerala.com/v1/transactions?unclaimed_total=0


Objeto Acreditación


Atributos

id integer

Identificador único del objeto.


object string, valor es "webhook"

Nombre del objeto.


store_id integer

Identificador del comercio al que pertenece el webhook.


receipt_id integer, opcional

Identificador del comprobante al cual está siendo acreditada el webhook.


transaction_id integer, opcional

Identificador de el webhook que está siendo acreditada al comprobante.


amount decimal

El monto acreditado. la suma de montos acreditados de una transacción o de un comprobante no puede ser mayor al total de el webhook o al total del comprobante.


currency_code currency, por defecto 'PEN'

Código de la moneda en tres letras (Formato ISO 4217). El código de moneda debe ser el mismo que el código del comprobante y de el webhook.


created timestamp

La fecha y hora en la que se creo la orden (Formato ISO 8601).


modified timestamp

La última fecha y hora en la que se modificó la orden (Formato ISO 8601).

	

{
	"id": 14,
	"object": "claim",
	"store_id": 4,
	"receipt_id": 71,
	"transaction_id": 13,
	"amount": 100,
	"currency_code": "PEN",
	"created": "2020-04-15T15:51:17.000Z",
	"modified": "2020-04-15T15:51:17.000Z"
}


Listar Acreditaciones

GET https://api.acelerala.com/v1/claims
Permisos:

Requiere cualquiera de los siguientes permisos:
read:receipts o read:transactions para ver todas las acreditaciones de una tienda.

Ordenar:

Puedes elegir cualquiera de estos campos para ordenar los pedidos: id,total,created,modified,claimed_total y unclaimed_total.

Ejemplos

Listar comprobantes
GET https://api.acelerala.com/v1/claims

Listar las acreditaciones de una transacción específica
GET https://api.acelerala.com/v1/claims?transaction_id=1


Objeto Webhook


Atributos

id integer

Identificador único del objeto.


object string, valor es "claim"

Nombre del objeto.


store_id integer

Identificador del comercio al que pertenece la acreditación.


description string, opcional

Descripción del webhook. Se usa para que otros usuarios que pertenezcan al comercio entiendan para qué se creó el webhook.


url string

El endpoint a donde se te enviará la notificación con la data del evento.


enabled_events array

Arreglo de los nombres de los eventos a los cuales está suscrito este webhook.


active decimal, por defecto 1

Flag para activar o desactivar el webhook.


created timestamp

La fecha y hora en la que se creo la orden (Formato ISO 8601).


modified timestamp

La última fecha y hora en la que se modificó la orden (Formato ISO 8601).

	

{
	"id": 13,
	"store_id": 4,
	"description": "Pedidos puestos",
	"url": "https://www.taund.com/test",
	"created": "2020-07-21T20:31:56.000-05",
	"modified": "2020-07-21T20:58:49.000-05",
	"active": 1,
	"enabled_events": [
		"orders.created.placed", "orders.updated.placed"
	]
}

	

Listar Webhooks

GET https://api.acelerala.com/v1/webhooks
Permisos:

Requiere cualquiera de los siguientes permisos:
read:webhooks para ver todos los webhooks de una tienda.

Ordenar:

Puedes elegir cualquiera de estos campos para ordenar los pedidos: id,created,modified.

Ejemplos

Listar webhooks
GET https://api.acelerala.com/v1/webhooks

Listar webhooks activos
GET https://api.acelerala.com/v1/webhooks?active=1