Documentación de la API: OficinaPro


Creación de Factura

Video Tutorial:

https://youtu.be/zig0paY6Ovo

URL Base:

https://api-test.oficinapro.co/api/

Esta es una URL de ejemplo, para obtener una URL real comuniquese con su asesor.

Endpoint:

/invoice/create

Método:

POST

Encabezados:

Encabezado Valor Requerido Descripción
Authorization key_0000001 Sí Clave API para autenticar la solicitud. Esta es un ejemplo, para obtener una URL real comuniquese con su asesor.
Content-Type application/json Sí Especifica que el cuerpo está en formato JSON.

Cuerpo de la Solicitud:

El cuerpo de la solicitud debe estar en formato JSON. Los siguientes campos deben proporcionarse para crear una factura exitosamente:

Campo Tipo Requerido Descripción
Ambiente string Sí El ambiente donde se genera la factura "pruebas" o "produccion".
NitEmisor integer Sí El NIT (ID tributario) del emisor de la factura.
Oficina integer Sí ID de oficina donde se genera la factura.
FechaEmision string Sí Fecha de emisión de la factura en formato "YYYY-MM-DD".
HoraEmision string Sí Hora de emisión de la factura en formato "HH:MM:SS".
CustomerName string Sí Nombre completo del cliente que recibe la factura.
CustomerCity string Sí Ciudad donde reside el cliente.
CustomerDepto string Sí Departamento o estado de la dirección del cliente.
CustomerAddress string Sí Dirección completa del cliente.
CustomerNit integer Sí NIT (ID tributario) del cliente.
CustomerEmail string Sí Correo electrónico del cliente.
CustomerIdCode integer Sí Código del tipo de identificación del cliente 13 para persona natural, 31 para juridica.
CustomerPhone integer Sí Número de teléfono del cliente.
ValorBaseGravada decimal Sí Valor base gravado de la factura.
Subtotal decimal Sí Subtotal de la factura.
IvaTotal decimal Sí Total del IVA aplicado a la factura.
IpoTotal decimal Sí Total del impuesto al consumo (IPO).
OtrosCargos decimal No Otros cargos adicionales, si los hay.
TotalFactura decimal Sí Total de la factura.
isPos integer No Indica si la factura es POS electronico. Use 1 para sí, 0 para no.
FormaDePago integer No Método de pago utilizado: 1 para efectivo, 2 tarjeta crédito, 3 tarjeta débito, 4 transferencia electrónica

Objeto Producto:

Cada objeto dentro del arreglo Productos debe incluir los siguientes campos:

Campo Tipo Requerido Descripción
Cantidad integer Sí Cantidad del producto vendido.
SutotalProducto integer Sí Subtotal del producto antes de impuestos.
TotalIvaProducto integer Sí Total del IVA aplicado al producto.
TotalIpoProducto integer Sí Total del impuesto al consumo (IPO) del producto.
TotalProducto integer Sí Costo total del producto, incluyendo impuestos.
PorcentageIVA integer Sí El porcentaje de IVA aplicado al producto.
NombreProducto string Sí Nombre del producto facturado.

Ejemplo de Solicitud JSON:

{
"Ambiente": "pruebas",
"NitEmisor": 90135497,
"Oficina": 1,
"FechaEmision": "2024-05-28",
"HoraEmision": "21:26:39",
"CustomerName": "Diego Andres Perez Torres",
"CustomerCity": "Medellin",
"CustomerDepto": "Antioquia",
"CustomerAddress": "Calle 88#17-43",
"CustomerNit": 1032413224,
"CustomerEmail": "diegotorres@gmail.com",
"CustomerIdCode": 13,
"CustomerPhone": 3195487898,
"ValorBaseGravada": 555000,
"Subtotal": 885000,
"IvaTotal": 105450,
"IpoTotal": 10000,
"OtrosCargos": 2000,
"TotalFactura": 1002450,
"isPos": 0,
"FormaDePago": 1,
"Nota" => "Una nota aca",
"Productos": [
  {
     "Cantidad": 1,
     "SutotalProducto": 125000,
     "TotalIvaProducto": 23750,
     "TotalIpoProducto": 10000,
     "TotalProducto": 158750,
     "PorcentageIVA": 19,
     "NombreProducto": "Chivas extra 700ml"
  },
  {
     "Cantidad": 2,
     "SutotalProducto": 215000,
     "TotalIvaProducto": 40850,
     "TotalIpoProducto": 0,
     "TotalProducto": 255850,
     "PorcentageIVA": 19,
     "NombreProducto": "Chivas 18años 750ml"
  },
  {
     "Cantidad": 3,
     "SutotalProducto": 110000,
     "TotalIvaProducto": 0,
     "TotalIpoProducto": 0,
     "TotalProducto": 110000,
     "PorcentageIVA": 0,
     "NombreProducto": "Chivas regal 12años 700ml"
  }
]
}
    

Respuestas:

Respuesta de Éxito:

Código de Estado: 200 OK

{
"codigo": "ACEPTADA",
"numero": 12345,
"cufe": "CUFE123456789",
"qr": "https://example.com/qr-code-url",
"ID": 1123
}
    

Respuestas de Error:

Código de Estado: 200 OK

E22. El formato de HoraEmision es invalido
    

Ejemplo Codigo en PHP:

      

// Endpoint URL
$url = 'https://api-test.oficinapro.co/api/invoice/create';

// Headers
$headers = [
'Content-Type: application/json',
'Authorization: key_0000001'
];


// Data to be sent in JSON format
$data = [
"Ambiente" => "pruebas",
"NitEmisor" => 90135497,
"Oficina" => 1,
"FechaEmision" => date('Y-m-d'),
"HoraEmision" => date('H-i-s'),
"CustomerName" => "Diego Andres Perez Torres",
"CustomerCity" => "Medellin",
"CustomerDepto" => "Antioquia",
"CustomerAddress" => "Calle 88#17-43",
"CustomerNit" => 1032413224,
"CustomerEmail" => "diegotorres@gmail.com",
"CustomerIdCode" => 13,
"CustomerPhone" => 3195487898,
"ValorBaseGravada" => 555000,
"Subtotal" => 885000,
"IvaTotal" => 105450,
"IpoTotal" => 10000,
"OtrosCargos" => 2000,
"TotalFactura" => 1002450,
"isPos" => 0,
"FormaDePago" => 1,
"Productos" => [
    [
        "Cantidad" => 1,
        "SutotalProducto" => 125000,
        "TotalIvaProducto" => 23750,
        "TotalIpoProducto" => 10000,
        "TotalProducto" => 158750,
        "PorcentageIVA" => 19,
        "NombreProducto" => "Chivas extra 700ml"
    ],
    [
        "Cantidad" => 2,
        "SutotalProducto" => 215000,
        "TotalIvaProducto" => 40850,
        "TotalIpoProducto" => 0,
        "TotalProducto" => 255850,
        "PorcentageIVA" => 19,
        "NombreProducto" => "Chivas 18años 750ml"
    ],
    [
        "Cantidad" => 3,
        "SutotalProducto" => 110000,
        "TotalIvaProducto" => 0,
        "TotalIpoProducto" => 0,
        "TotalProducto" => 110000,
        "PorcentageIVA" => 0,
        "NombreProducto" => "Chivas regal 12años 700ml"
    ]
]
];

// Initialize cURL session
$ch = curl_init($url);

// Set options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));

// Execute request and get response
$response = curl_exec($ch);

// Check for errors
if (curl_errno($ch)) {
echo 'cURL error: ' . curl_error($ch);
} else {
// Print the response
echo 'Response: ' . $response;
}

// Close cURL session
curl_close($ch);

    

Anulación de Factura (Nota Credito)

Video Tutorial:

https://youtu.be/D6SkQcP__Lg

Cuerpo de la Solicitud:

El cuerpo de la solicitud debe estar en formato JSON. Los siguientes campos deben proporcionarse para emitir nota de credito exitosamente:

Campo Tipo Requerido Descripción
Anulacion integer Sí Se deber pasar el valor 1
Ambiente string Sí El ambiente donde se genera la factura "pruebas" o "produccion".
NitEmisor integer Sí El NIT (ID tributario) del emisor de la factura.
CustomerNit integer Sí NIT (ID tributario) del cliente.
ID de la Factura integer Sí Se deber pasar ID de la factura obtenido al momento de enviar la factura.

Ejemplo de Solicitud JSON:

{
"Anulacion": 1,
"Ambiente": "pruebas",
"NitEmisor": 90135497,
"CustomerNit": 1032413224,
"ID": 4050,
}
    

Respuestas:

Respuesta de Éxito:

Código de Estado: 200 OK

{
"codigo": "ACEPTADA",
"credit_note_id ": 152,
"cude": "CUFE123456789"
}
    

Respuestas de Error:

Código de Estado: 200 OK

 N99. N99. Factura inexistente. 

Ejemplo Codigo en PHP:

      

// Endpoint URL
$url = 'https://api-test.oficinapro.co/api/invoice/create';

// Headers
$headers = [
'Content-Type: application/json',
'Authorization: key_0000001'
];


// Data to be sent in JSON format
$data = [
    "Ambiente" => "pruebas",
    "Anulacion" => 1,
    "CustomerNit" => 900711566,
    "NitEmisor" => 90135497,
    "ID" => 3048
];

// Initialize cURL session
$ch = curl_init($url);

// Set options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));

// Execute request and get response
$response = curl_exec($ch);

// Check for errors
if (curl_errno($ch)) {
echo 'cURL error: ' . curl_error($ch);
} else {
// Print the response
echo 'Response: ' . $response;
}

// Close cURL session
curl_close($ch);

    

Ajuste en Factura (Nota Credito)

Video Tutorial:

https://youtu.be/uYbG4rxWF0g

Cuerpo de la Solicitud:

El cuerpo de la solicitud debe estar en formato JSON. Los siguientes campos deben proporcionarse para emitir nota de credito exitosamente:

Campo Tipo Requerido Descripción
Ajuste integer Sí Se deber pasar el valor 1
Ambiente string Sí El ambiente donde se genera la factura "pruebas" o "produccion".
NitEmisor integer Sí El NIT (ID tributario) del emisor de la factura.
CustomerNit integer Sí NIT (ID tributario) del cliente.
ID de la Factura integer Sí Se deber pasar ID de la factura obtenido al momento de enviar la factura.
SubTotalAjuste decimal Sí Subtotal de la nota.
IvaAjuste decimal Sí Total de IVA en nota.
TotalAjuste decimal Sí Total nota.

Ejemplo de Solicitud JSON:

{
"Ambiente":"pruebas",
"Ajuste":1,
"CustomerNit":900711566,
"NitEmisor":90135497,
"ID":3081,
"SubTotalAjuste":500000,
"IvaAjuste":95000,
"TotalAjuste":595000
}
    

Respuestas:

Respuesta de Éxito:

Código de Estado: 200 OK

{
"codigo": "ACEPTADA",
"credit_note_id ": 152,
"cude": "CUFE123456789"
}
    

Respuestas de Error:

Código de Estado: 200 OK

 N99. N99. Factura inexistente. 

Ejemplo Codigo en PHP:

      

// Endpoint URL
$url = 'https://api-test.oficinapro.co/api/invoice/create';

// Headers
$headers = [
'Content-Type: application/json',
'Authorization: key_0000001'
];


// Data to be sent in JSON format
$data = [
    "Ambiente" => "pruebas",
    "Ajuste" => 1,
    "CustomerNit" => 900711566,
    "NitEmisor" => 90135497,
    "ID" => 3081,
    "SubTotalAjuste" => 500000,
    "IvaAjuste" => 95000,
    "TotalAjuste" => 595000
];

// Initialize cURL session
$ch = curl_init($url);

// Set options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));

// Execute request and get response
$response = curl_exec($ch);

// Check for errors
if (curl_errno($ch)) {
echo 'cURL error: ' . curl_error($ch);
} else {
// Print the response
echo 'Response: ' . $response;
}

// Close cURL session
curl_close($ch);

    

Acceso Panel Administrativo:

Para ver y validar las facturas enviadas acceda al panel administrativo en su cuenta de oficinapro.co

O desde la cuenta de demo https://api-test.oficinapro.co/admin

Para obtener clave y usario de esta cuenta de DEMO comuniquese con su asesor.