• Documentación

    • Información general
    • Entornos
    • Primeros pasos
    • Listar CFDI's
    • Buscar CFDI
    • Crear CFDI 4.0
    • Crear CFDI Global 4.0
    • Borradores CFDI 4.0
    • Descargar CFDI
    • Cancelar CFDI 4.0
    • Descargar acuse CFDI 4.0
    • Enviar CFDI
    • Consultar estatus de cancelación de un CFDI
    • Autofacturación
    • Grupos de empleados
    • Empleados
    • Nóminas
    • Complementos
    • Retenciones
    • Complementos de retenciones
    • Carta porte v3.1
    • Catálogos
    • Clientes
    • Empresas
    • Migraciones
    • Series
    • Productos
    • Addendas
    • Fundamentos legales del SAT

Catálogos

A continuación se enlistan los tipos de CFDI aceptados por Factu-Ramval, para hacer uso de el parametro "TipoDocumento" al momento de generar un CFDI es necesario utilizar el valor de la columna "Clave" y corresponde a el valor "Tipo de CFDI"

Importante

Si especificamos que tipo de documento con estas claves es importante tomar en cuenta que debe coincidir con el tipo de documento asignado a la serie que utilizamos para timbrar nuestro documento, este paso es opcional y podemos asignar una serie con el tipo de documento que deseamos utilizar, y se asignara de forma correcta el tipo de documento que se asigno al momento de crear la serie.

Tipos de documento

ClaveTipo de CFDI
facturaFactura
factura_hotelFactura para hoteles
honorariosRecibo de honorarios
nota_cargoNota de cargo
donativosDonativo
arrendamientoRecibo de arrendamiento
nota_creditoNota de crédito
nota_debitoNota de débito
nota_devolucionNota de devolución
carta_porteCarta porte
carta_porte_ingresoCarta porte de Ingreso
pagoPago
retencionRetención

Catálogos SAT

Puedes consultar los catálogos que el SAT provee para el timbrado.

El API de Factu-Ramval cuenta con endpoints puestos a tu disposición para consultar los catálogos de claves válidas para el SAT.

Construcción de la URL

Host: https://app.facturamval.com/api (producción) / https://sandbox.facturamval.com/api (sandbox)

Endpoint: /v3/catalogo/nombre_catalogo

Ejemplo: https://app.facturamval.com/api/v3/catalogo/nombre_catalogo

Tip

Es necesario cambiar en la url nombre_catalogo por el nombre del catálogo que deseas consultar.

Clave Producto/Servicio

Consulta el catálogo de Clave Producto/Servicio

Construcción de la URL

Host: https://app.facturamval.com/api (producción) / https://sandbox.facturamval.com/api (sandbox)

Endpoint: /v3/catalogo/ClaveProductServ

Ejemplo: https://app.facturamval.com/api/v3/catalogo/ClaveProductServ

Tip

Para probar el ejemplo de código, necesitas cambiar "Tu API key" por la clave de API de tu cuenta, y "Tu Secret key" por la clave secreta correspondiente.

Ejemplo de la consulta de clave producto/servicio

<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "{ HOST }/v3/catalogo/ClaveProductServ");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
   "Content-Type: application/json",
    "F-PLUGIN: " . '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    "F-Api-Key: ". 'Tu API key',
    "F-Secret-Key: " . 'Tu Secret key'
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);

var request = require('request');
var options = {
  'method': 'GET',
  'url': '{ HOST }/v3/catalogo/ClaveProductServ',
  'headers': {
    'Content-Type': 'application/json',
    'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key': 'API.Key',
    'F-Secret-Key': 'Secret.Key'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

import requests
import json

url = "{ HOST }/v3/catalogo/ClaveProductServ"

payload = ""
headers = {
  'Content-Type': 'application/json',
  'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
  'F-Api-Key': 'API.Key',
  'F-Secret-Key': 'Secret.Key'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

require "uri"
require "json"
require "net/http"

url = URI("{ HOST }/v3/catalogo/ClaveProductServ")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["F-PLUGIN"] = "9d4095c8f7ed5785cb14c0e3b033eeb8252416ed"
request["F-Api-Key"] = "API.Key"
request["F-Secret-Key"] = "Secret.Key"

response = http.request(request)
puts response.read_body

Respuesta de catálogo clave producto/servicio

Respuesta exitosa
{
  "response": "success",
  "data": [
    {
        "key": "10201500",
        "name": "Rosales vivos azules o lavanda o púrpura",
        "complement": ""
    },
    {
        "key": "10201501",
        "name": "Rosal vivo allure o sterling 95",
        "complement": ""
    },
    {
        "key": "10201502",
        "name": "Rosal vivo amnesia",
        "complement": ""
    },
    {
        "key": "10201503",
        "name": "Rosal vivo augusta louise",
        "complement": ""
    },
    {
        "key": "10201504",
        "name": "Rosal vivo avant garde",
        "complement": ""
    },
    {
        "key": "10201505",
        "name": "Rosal vivo blue bird",
        "complement": ""
    },
    {
        "key": "10201506",
        "name": "Rosal vivo curiosa",
        "complement": ""
    },
    {
        "key": "10201507",
        "name": "Rosal vivo cool water",
        "complement": ""
    },
  ]
}

Aduana

Consulta el catálogo de Aduanas

Construcción de la URL

Host: https://app.facturamval.com/api (producción) / https://sandbox.facturamval.com/api (sandbox)

Endpoint: /v3/catalogo/Aduana

Ejemplo: https://app.facturamval.com/api/v3/catalogo/Aduana

Tip

Para probar el ejemplo de código, necesitas cambiar "Tu API key" por la clave de API de tu cuenta, y "Tu Secret key" por la clave secreta correspondiente.

Ejemplo de la consulta de aduana

<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "{{ HOST }}/v3/catalogo/Aduana");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
   "Content-Type: application/json",
    "F-PLUGIN: " . '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    "F-Api-Key: ". 'Tu API key',
    "F-Secret-Key: " . 'Tu Secret key'
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);

var request = require('request');
var options = {
  'method': 'GET',
  'url': '{ HOST }/v3/catalogo/Aduana',
  'headers': {
    'Content-Type': 'application/json',
    'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key': 'API.Key',
    'F-Secret-Key': 'Secret.Key'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

import requests
import json

url = "{ HOST }/v3/catalogo/Aduana"

payload = ""
headers = {
  'Content-Type': 'application/json',
  'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
  'F-Api-Key': 'API.Key',
  'F-Secret-Key': 'Secret.Key'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

require "uri"
require "json"
require "net/http"

url = URI("{ HOST }/v3/catalogo/Aduana")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["F-PLUGIN"] = "9d4095c8f7ed5785cb14c0e3b033eeb8252416ed"
request["F-Api-Key"] = "API.Key"
request["F-Secret-Key"] = "Secret.Key"

response = http.request(request)
puts response.read_body

Respuesta de catálogo aduana

Respuesta exitosa
{
  "response": "success",
  "data": [
    {
      "key": "01",
      "name": "ACAPULCO, ACAPULCO DE JUAREZ, GUERRERO"
    },
    {
      "key": "02",
      "name": "AGUA PRIETA, AGUA PRIETA, SONORA"
    },
    {
      "key": "05",
      "name": "SUBTENIENTE LOPEZ, SUBTENIENTE LOPEZ, QUINTANA ROO"
    },
    {
      "key": "06",
      "name": "CIUDAD DEL CARMEN, CIUDAD DEL CARMEN, CAMPECHE"
    },
    {
      "key": "07",
      "name": "CIUDAD JUAREZ, CIUDAD JUAREZ, CHIHUAHUA"
    },
    {
      "key": "08",
      "name": "COATZACOALCOS, COATZACOALCOS, VERACRUZ"
    },
    {
      "key": "11",
      "name": "ENSENADA, ENSENADA, BAJA CALIFORNIA"
    },
  ]
}

Unidad

Consulta el catálogo de Unidades de medida

Construcción de la URL

Host: https://app.facturamval.com/api (producción) / https://sandbox.facturamval.com/api (sandbox)

Endpoint: /v3/catalogo/ClaveUnidad

Ejemplo: https://app.facturamval.com/api/v3/catalogo/ClaveUnidad

Tip

Para probar el ejemplo de código, necesitas cambiar "Tu API key" por la clave de API de tu cuenta, y "Tu Secret key" por la clave secreta correspondiente.

Ejemplo de la consulta de unidad de medida

<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "{{ HOST }}/v3/catalogo/ClaveUnidad");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
   "Content-Type: application/json",
    "F-PLUGIN: " . '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    "F-Api-Key: ". 'Tu API key',
    "F-Secret-Key: " . 'Tu Secret key'
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);

var request = require('request');
var options = {
  'method': 'GET',
  'url': '{ HOST }/v3/catalogo/ClaveUnidad',
  'headers': {
    'Content-Type': 'application/json',
    'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key': 'API.Key',
    'F-Secret-Key': 'Secret.Key'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

import requests
import json

url = "{ HOST }/v3/catalogo/ClaveUnidad"

payload = ""
headers = {
  'Content-Type': 'application/json',
  'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
  'F-Api-Key': 'API.Key',
  'F-Secret-Key': 'Secret.Key'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

require "uri"
require "json"
require "net/http"

url = URI("{ HOST }/v3/catalogo/ClaveUnidad")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["F-PLUGIN"] = "9d4095c8f7ed5785cb14c0e3b033eeb8252416ed"
request["F-Api-Key"] = "API.Key"
request["F-Secret-Key"] = "Secret.Key"

response = http.request(request)
puts response.read_body

Respuesta de catálogo unidad de medida

Respuesta exitosa
{
  "response": "success",
  "data": [
    {
      "key": "C81",
      "name": "Radián"
    },
    {
      "key": "C25",
      "name": "Milirradián"
    },
    {
      "key": "B97",
      "name": "Microrradián"
    },
    {
      "key": "DD",
      "name": "Grado [unidad de ángulo]"
    },
    {
      "key": "D61",
      "name": "Minuto [unidad de ángulo]"
    }
  ]
}

Forma de pago

Consulta el catálogo de forma de pago

Construcción de la URL

Host: https://app.facturamval.com/api (producción) / https://sandbox.facturamval.com/api (sandbox)

Endpoint: /v3/catalogo/FormaPago

Ejemplo: https://app.facturamval.com/api/v3/catalogo/FormaPago

Tip

Para probar el ejemplo de código, necesitas cambiar "Tu API key" por la clave de API de tu cuenta, y "Tu Secret key" por la clave secreta correspondiente.

Ejemplo de la consulta de forma de pago

<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "{{ HOST }}/v3/catalogo/FormaPago");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
   "Content-Type: application/json",
    "F-PLUGIN: " . '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    "F-Api-Key: ". 'Tu API key',
    "F-Secret-Key: " . 'Tu Secret key'
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);

var request = require('request');
var options = {
  'method': 'GET',
  'url': '{ HOST }/v3/catalogo/FormaPago',
  'headers': {
    'Content-Type': 'application/json',
    'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key': 'API.Key',
    'F-Secret-Key': 'Secret.Key'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

import requests
import json

url = "{ HOST }/v3/catalogo/FormaPago"

payload = ""
headers = {
  'Content-Type': 'application/json',
  'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
  'F-Api-Key': 'API.Key',
  'F-Secret-Key': 'Secret.Key'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

require "uri"
require "json"
require "net/http"

url = URI("{ HOST }/v3/catalogo/FormaPago")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["F-PLUGIN"] = "9d4095c8f7ed5785cb14c0e3b033eeb8252416ed"
request["F-Api-Key"] = "API.Key"
request["F-Secret-Key"] = "Secret.Key"

response = http.request(request)
puts response.read_body

Respuesta de catálogo forma de pago

Respuesta exitosa
{
  "response": "success",
  "data": [
    {
      "key": "01",
      "name": "Efectivo"
    },
    {
      "key": "02",
      "name": "Cheque nominativo"
    },
    {
      "key": "03",
      "name": "Transferencia electrónica de fondos"
    },
    {
      "key": "04",
      "name": "Tarjeta de crédito"
    },
    {
      "key": "05",
      "name": "Monedero electrónico"
    }
  ]
}

Catálogo de impuestos

Consulta el catálogo de impuestos

Construcción de la URL

Host: https://app.facturamval.com/api (producción) / https://sandbox.facturamval.com/api (sandbox)

Endpoint: /v3/catalogo/Impuesto

Ejemplo: https://app.facturamval.com/api/v3/catalogo/Impuesto

Tip

Para probar el ejemplo de código, necesitas cambiar "Tu API key" por la clave de API de tu cuenta, y "Tu Secret key" por la clave secreta correspondiente.

Ejemplo de la consulta de impuestos
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "{{ HOST }}/v3/catalogo/Impuesto");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
   "Content-Type: application/json",
    "F-PLUGIN: " . '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    "F-Api-Key: ". 'Tu API key',
    "F-Secret-Key: " . 'Tu Secret key'
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);

var request = require('request');
var options = {
  'method': 'GET',
  'url': '{ HOST }/v3/catalogo/Impuesto',
  'headers': {
    'Content-Type': 'application/json',
    'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key': 'API.Key',
    'F-Secret-Key': 'Secret.Key'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

import requests
import json

url = "{ HOST }/v3/catalogo/Impuesto"

payload = ""
headers = {
  'Content-Type': 'application/json',
  'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
  'F-Api-Key': 'API.Key',
  'F-Secret-Key': 'Secret.Key'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

require "uri"
require "json"
require "net/http"

url = URI("{ HOST }/v3/catalogo/Impuesto")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["F-PLUGIN"] = "9d4095c8f7ed5785cb14c0e3b033eeb8252416ed"
request["F-Api-Key"] = "API.Key"
request["F-Secret-Key"] = "Secret.Key"

response = http.request(request)
puts response.read_body

Respuesta de catálogo impuestos

Respuesta exitosa
{
  "response": "success",
  "data": [
        {
     "key": "001",
     "name": "ISR"
        },
    {
      "key": "002",
      "name": "IVA"
    },
    {
      "key": "003",
      "name": "IEPS"
    }
  ]
}

Métodos de pago

Consulta el catálogo de métodos de pago

Construcción de la URL

Host: https://app.facturamval.com/api (producción) / https://sandbox.facturamval.com/api (sandbox)

Endpoint: /v3/catalogo/MetodoPago

Ejemplo: https://app.facturamval.com/api/v3/catalogo/MetodoPago

Tip

Para probar el ejemplo de código, necesitas cambiar "Tu API key" por la clave de API de tu cuenta, y "Tu Secret key" por la clave secreta correspondiente.

Ejemplo de la consulta de métodos de pago
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "{{ HOST }}/v3/catalogo/MetodoPago");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
   "Content-Type: application/json",
    "F-PLUGIN: " . '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    "F-Api-Key: ". 'Tu API key',
    "F-Secret-Key: " . 'Tu Secret key'
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);

var request = require('request');
var options = {
  'method': 'GET',
  'url': '{ HOST }/v3/catalogo/MetodoPago',
  'headers': {
    'Content-Type': 'application/json',
    'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key': 'API.Key',
    'F-Secret-Key': 'Secret.Key'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

import requests
import json

url = "{ HOST }/v3/catalogo/MetodoPago"

payload = ""
headers = {
  'Content-Type': 'application/json',
  'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
  'F-Api-Key': 'API.Key',
  'F-Secret-Key': 'Secret.Key'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

require "uri"
require "json"
require "net/http"

url = URI("{ HOST }/v3/catalogo/MetodoPago")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["F-PLUGIN"] = "9d4095c8f7ed5785cb14c0e3b033eeb8252416ed"
request["F-Api-Key"] = "API.Key"
request["F-Secret-Key"] = "Secret.Key"

response = http.request(request)
puts response.read_body

Respuesta de catálogo métodos de pago

Respuesta exitosa
{
  "response": "success",
  "data": [
        {
      "key": "PUE",
      "name": "Pago en una sola exhibición"
    },
    {
      "key": "PPD",
      "name": "Pago en parcialidades o diferido"
    }

  ]
}

Moneda

Consulta el catálogo de monedas

Construcción de la URL

Host: https://app.facturamval.com/api (producción) / https://sandbox.facturamval.com/api (sandbox)

Endpoint: /v3/catalogo/Moneda

Ejemplo: https://app.facturamval.com/api/v3/catalogo/Moneda

Tip

Para probar el ejemplo de código, necesitas cambiar "Tu API key" por la clave de API de tu cuenta, y "Tu Secret key" por la clave secreta correspondiente.

Ejemplo de la consulta de monedas
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "{{ HOST }}/v3/catalogo/Moneda");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
   "Content-Type: application/json",
    "F-PLUGIN: " . '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    "F-Api-Key: ". 'Tu API key',
    "F-Secret-Key: " . 'Tu Secret key'
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);

var request = require('request');
var options = {
  'method': 'GET',
  'url': '{ HOST }/v3/catalogo/Moneda',
  'headers': {
    'Content-Type': 'application/json',
    'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key': 'API.Key',
    'F-Secret-Key': 'Secret.Key'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

import requests
import json

url = "{ HOST }/v3/catalogo/Moneda"

payload = ""
headers = {
  'Content-Type': 'application/json',
  'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
  'F-Api-Key': 'API.Key',
  'F-Secret-Key': 'Secret.Key'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

require "uri"
require "json"
require "net/http"

url = URI("{ HOST }/v3/catalogo/Moneda")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["F-PLUGIN"] = "9d4095c8f7ed5785cb14c0e3b033eeb8252416ed"
request["F-Api-Key"] = "API.Key"
request["F-Secret-Key"] = "Secret.Key"

response = http.request(request)
puts response.read_body

Respuesta de catálogo monedas

Respuesta exitosa
{
  "response": "success",
  "data": [
    {
      "key": "AED",
      "name": "Dirham de EAU"
    },
    {
      "key": "AFN",
      "name": "Afghani"
    },
    {
      "key": "ALL",
      "name": "Lek"
    },
    {
      "key": "AMD",
      "name": "Dram armenio"
    },
    {
      "key": "ANG",
      "name": "Florín antillano neerlandés"
    },
  ]
}

País

Consulta el catálogo de paises

Construcción de la URL

Host: https://app.facturamval.com/api (producción) / https://sandbox.facturamval.com/api (sandbox)

Endpoint: /v3/catalogo/Pais

Ejemplo: https://app.facturamval.com/api/v3/catalogo/Pais

Tip

Para probar el ejemplo de código, necesitas cambiar "Tu API key" por la clave de API de tu cuenta, y "Tu Secret key" por la clave secreta correspondiente.

Ejemplo de la consulta de pais
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "{{ HOST }}/v3/catalogo/Pais");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
   "Content-Type: application/json",
    "F-PLUGIN: " . '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    "F-Api-Key: ". 'Tu API key',
    "F-Secret-Key: " . 'Tu Secret key'
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);

var request = require('request');
var options = {
  'method': 'GET',
  'url': '{ HOST }/v3/catalogo/Pais',
  'headers': {
    'Content-Type': 'application/json',
    'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key': 'API.Key',
    'F-Secret-Key': 'Secret.Key'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

import requests
import json

url = "{ HOST }/v3/catalogo/Pais"

payload = ""
headers = {
  'Content-Type': 'application/json',
  'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
  'F-Api-Key': 'API.Key',
  'F-Secret-Key': 'Secret.Key'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

require "uri"
require "json"
require "net/http"

url = URI("{ HOST }/v3/catalogo/Pais")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["F-PLUGIN"] = "9d4095c8f7ed5785cb14c0e3b033eeb8252416ed"
request["F-Api-Key"] = "API.Key"
request["F-Secret-Key"] = "Secret.Key"

response = http.request(request)
puts response.read_body

Respuesta de catálogo paises

Respuesta exitosa
{
  "response": "success",
  "data": [
    {
      "key": "AFG",
      "name": "Afganistán"
    },
    {
      "key": "ALA",
      "name": "Islas Åland"
    },
    {
      "key": "ALB",
      "name": "Albania"
    },
    {
      "key": "DEU",
      "name": "Alemania"
    }
  ]
}

Régimen fiscal

Consulta el catálogo de régimen fiscal

Construcción de la URL

Host: https://app.facturamval.com/api (producción) / https://sandbox.facturamval.com/api (sandbox)

Endpoint: /v3/catalogo/RegimenFiscal

Ejemplo: https://app.facturamval.com/api/v3/catalogo/RegimenFiscal

Tip

Para probar el ejemplo de código, necesitas cambiar "Tu API key" por la clave de API de tu cuenta, y "Tu Secret key" por la clave secreta correspondiente.

Ejemplo de la consulta de regimen fiscal
Codigo<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "{{ HOST }}/v3/catalogo/RegimenFiscal");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
   "Content-Type: application/json",
    "F-PLUGIN: " . '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    "F-Api-Key: ". 'Tu API key',
    "F-Secret-Key: " . 'Tu Secret key'
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);

var request = require('request');
var options = {
  'method': 'GET',
  'url': '{ HOST }/v3/catalogo/RegimenFiscal',
  'headers': {
    'Content-Type': 'application/json',
    'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key': 'API.Key',
    'F-Secret-Key': 'Secret.Key'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

import requests
import json

url = "{ HOST }/v3/catalogo/RegimenFiscal"

payload = ""
headers = {
  'Content-Type': 'application/json',
  'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
  'F-Api-Key': 'API.Key',
  'F-Secret-Key': 'Secret.Key'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

require "uri"
require "json"
require "net/http"

url = URI("{ HOST }/v3/catalogo/RegimenFiscal")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["F-PLUGIN"] = "9d4095c8f7ed5785cb14c0e3b033eeb8252416ed"
request["F-Api-Key"] = "API.Key"
request["F-Secret-Key"] = "Secret.Key"

response = http.request(request)
puts response.read_body

Respuesta de catálogo regimen fiscal

Respuesta exitosa
{
  "response": "success",
  "data": [
    {
        "key": "601",
        "name": "General de Ley Personas Morales"
    },
    {
        "key": "603",
        "name": "Personas Morales con Fines no Lucrativos"
    },
    {
        "key": "605",
        "name": "Sueldos y Salarios e Ingresos Asimilados a Salarios"
    },
    {
        "key": "606",
        "name": "Arrendamiento"
    },
    {
        "key": "608",
        "name": "Demás ingresos"
    }
  ]
}

Tipo de relación

Consulta el catálogo de

Construcción de la URL

Host: https://app.facturamval.com/api (producción) / https://sandbox.facturamval.com/api (sandbox)

Endpoint: /v3/catalogo/Relacion

Ejemplo: https://app.facturamval.com/api/v3/catalogo/Relacion

Tip

Para probar el ejemplo de código, necesitas cambiar "Tu API key" por la clave de API de tu cuenta, y "Tu Secret key" por la clave secreta correspondiente.

Ejemplo de la consulta de tipo de relacion
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "{{ HOST }}/v3/catalogo/Relacion");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
   "Content-Type: application/json",
    "F-PLUGIN: " . '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    "F-Api-Key: ". 'Tu API key',
    "F-Secret-Key: " . 'Tu Secret key'
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);

var request = require('request');
var options = {
  'method': 'GET',
  'url': '{ HOST }/v3/catalogo/Relacion',
  'headers': {
    'Content-Type': 'application/json',
    'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key': 'API.Key',
    'F-Secret-Key': 'Secret.Key'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

import requests
import json

url = "{ HOST }/v3/catalogo/Relacion"

payload = ""
headers = {
  'Content-Type': 'application/json',
  'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
  'F-Api-Key': 'API.Key',
  'F-Secret-Key': 'Secret.Key'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

require "uri"
require "json"
require "net/http"

url = URI("{ HOST }/v3/catalogo/Relacion")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["F-PLUGIN"] = "9d4095c8f7ed5785cb14c0e3b033eeb8252416ed"
request["F-Api-Key"] = "API.Key"
request["F-Secret-Key"] = "Secret.Key"

response = http.request(request)
puts response.read_body

Respuesta de catálogo tipo de relación

Respuesta exitosa
{
  "response": "success",
  "data": [
    {
        "key": "01",
        "name": "Nota de crédito de los documentos relacionados"
    },
    {
        "key": "02",
        "name": "Nota de débito de los documentos relacionados"
    },
    {
        "key": "03",
        "name": "Devolución de mercancía sobre facturas o traslados previos"
    },
    {
        "key": "04",
        "name": "Sustitución de los CFDI previos"
    }
  ]
}

Uso de CFDI

Consulta el catálogo de claves de uso de CFDI

Construcción de la URL

Host: https://app.facturamval.com/api (producción) / https://sandbox.facturamval.com/api (sandbox)

Endpoint: /v4/catalogo/UsoCfdi

Ejemplo: https://app.facturamval.com/api/v4/catalogo/UsoCfdi

Tip

Para probar el ejemplo de código, necesitas cambiar "Tu API key" por la clave de API de tu cuenta, y "Tu Secret key" por la clave secreta correspondiente.

Ejemplo de la consulta de uso de CFDI
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "{{ HOST }}/v4/catalogo/UsoCfdi");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
   "Content-Type: application/json",
    "F-PLUGIN: " . '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    "F-Api-Key: ". 'Tu API key',
    "F-Secret-Key: " . 'Tu Secret key'
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);

var request = require('request');
var options = {
  'method': 'GET',
  'url': '{ HOST }/v4/catalogo/UsoCfdi',
  'headers': {
    'Content-Type': 'application/json',
    'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key': 'API.Key',
    'F-Secret-Key': 'Secret.Key'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

import requests
import json

url = "{ HOST }/v4/catalogo/UsoCfdi"

payload = ""
headers = {
  'Content-Type': 'application/json',
  'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
  'F-Api-Key': 'API.Key',
  'F-Secret-Key': 'Secret.Key'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

require "uri"
require "json"
require "net/http"

url = URI("{ HOST }/v4/catalogo/UsoCfdi")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["F-PLUGIN"] = "9d4095c8f7ed5785cb14c0e3b033eeb8252416ed"
request["F-Api-Key"] = "API.Key"
request["F-Secret-Key"] = "Secret.Key"

response = http.request(request)
puts response.read_body

Respuesta de catálogo de claves de uso de CFDI

{
    "key": "G01",
    "name": "Adquisición de mercancias",
    "use": "ambos",
    "regimenes": ["601", "603", "606", "612", "620", "621", "622", "623", "624", "625", "626"]
  },
  {
    "key": "G02",
    "name": "Devoluciones, descuentos o bonificaciones",
    "use": "ambos",
    "regimenes": ["601", "603", "606", "612", "620", "621", "622", "623", "624", "625", "626"]
  },
  {
    "key": "G03",
    "name": "Gastos en general",
    "use": "ambos",
    "regimenes": ["601", "603", "606", "612", "620", "621", "622", "623", "624", "625", "626"]
  },
  {
    "key": "I01",
    "name": "Construcciones",
    "use": "ambos",
    "regimenes": ["601", "603", "606", "612", "620", "621", "622", "623", "624", "625", "626"]
  }

Clave de Retención

Consulta el catálogo de claves de retención

Construcción de la URL

Host: https://app.facturamval.com/api (producción) / https://sandbox.facturamval.com/api (sandbox)

Endpoint: /v4/catalogos/retenciones/claveRetencion

Ejemplo: https://app.facturamval.com/api/v4/catalogos/retenciones/claveRetencion

Tip

Para probar el ejemplo de código, necesitas cambiar "Tu API key" por la clave de API de tu cuenta, y "Tu Secret key" por la clave secreta correspondiente.

Ejemplo de la consulta de uso de Clave de retención
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => '{ HOST }/v4/catalogos/retenciones/claveRetencion',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'F-PLUGIN: 9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key: Tu API key',
    'F-Secret-Key: Tu Secret key'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

var request = require('request');
var options = {
  'method': 'GET',
  'url': '{ HOST }/v4/catalogos/retenciones/claveRetencion',
  'headers': {
    'Content-Type': 'application/json',
    'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key': 'Tu API key',
    'F-Secret-Key': 'Tu Secret key'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

import requests
import json

url = "{ HOST }/v4/catalogos/retenciones/claveRetencion"

payload = ""
headers = {
  'Content-Type': 'application/json',
  'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
  'F-Api-Key': 'Tu API key',
  'F-Secret-Key': 'Tu Secret key'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

require "uri"
require "json"
require "net/http"

url = URI("{ HOST }/v4/catalogos/retenciones/claveRetencion")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["F-PLUGIN"] = "9d4095c8f7ed5785cb14c0e3b033eeb8252416ed"
request["F-Api-Key"] = "Tu API key"
request["F-Secret-Key"] = "Tu Secret key"

response = http.request(request)
puts response.read_body

Respuesta de catálogo de claves de retención

Respuesta exitosa
[
    {
        "key": "01",
        "name": "Servicios profesionales"
    },
    {
        "key": "02",
        "name": "Regalías por derechos de autor"
    },
    {
        "key": "03",
        "name": "Autotransporte terrestre de carga"
    }
]

Catálogos Nómina

Puedes consultar los catálogos necesarios para el timbrado de nómina.

El API de Factu-Ramval cuenta con endpoints puestos a tu disposición para consultar los catálogos necesarios para el llenado de nómina

Construcción de la URL

Host: https://app.facturamval.com/api (producción) / https://sandbox.facturamval.com/api (sandbox)

Endpoint: /payroll/catalogos/nombre_catalogo

Ejemplo: https://app.facturamval.com/api/payroll/catalogos/nombre_catalogo

Tip

Es necesario cambiar en la url nombre_catalogo por el nombre del catálogo que deseas consultar.

Bancos

Consulta el catálogo de bancos

Construcción de la URL

Host: https://app.facturamval.com/api (producción) / https://sandbox.facturamval.com/api (sandbox)

Endpoint: /payroll/catalogos/bancos

Ejemplo: https://app.facturamval.com/api/payroll/catalogos/bancos

Tip

Para probar el ejemplo de código, necesitas cambiar "Tu API key" por la clave de API de tu cuenta, y "Tu Secret key" por la clave secreta correspondiente.

Ejemplo de la consulta de bancos
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => '{ HOST }/payroll/catalogos/bancos',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'F-PLUGIN: 9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key: Tu API key',
    'F-Secret-Key: Tu Secret key'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

var request = require('request');
var options = {
  'method': 'GET',
  'url': '{ HOST }/payroll/catalogos/bancos',
  'headers': {
    'Content-Type': 'application/json',
    'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key': 'Tu API key',
    'F-Secret-Key': 'Tu Secret key'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

import http.client
import json

conn = http.client.HTTPSConnection("{ HOST }")
payload = ''
headers = {
  'Content-Type': 'application/json',
  'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
  'F-Api-Key': 'Tu API key',
  'F-Secret-Key': 'Tu Secret key'
}
conn.request("GET", "/payroll/catalogos/bancos", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

require "uri"
require "json"
require "net/http"

url = URI("{ HOST }/payroll/catalogos/bancos")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["F-PLUGIN"] = "9d4095c8f7ed5785cb14c0e3b033eeb8252416ed"
request["F-Api-Key"] = "Tu API key"
request["F-Secret-Key"] = "Tu Secret key"

response = http.request(request)
puts response.read_body

Respuesta de catálogo bancos

Respuesta exitosa
[
  {
    "key": "002",
    "name": "BANAMEX"
  },
  {
    "key": "006",
    "name": "BANCOMEXT"
  },
  {
    "key": "009",
    "name": "BANOBRAS"
  }
]

Estados

Consulta el catálogo de estados

Construcción de la URL

Host: https://app.facturamval.com/api (producción) / https://sandbox.facturamval.com/api (sandbox)

Endpoint: /payroll/catalogos/estados

Ejemplo: https://app.facturamval.com/api/payroll/catalogos/estados

Tip

Para probar el código de ejemplo es necesario que reemplaces el texto Tu API key por el API KEY de tu cuenta, e Tu Secret key por el SECRET KEY correspondiente

Ejemplo de la consulta de estados
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => '{ HOST }/payroll/catalogos/estados',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'F-PLUGIN: 9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key: Tu API key',
    'F-Secret-Key: Tu Secret key'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

var request = require('request');
var options = {
  'method': 'GET',
  'url': '{ HOST }/payroll/catalogos/estados',
  'headers': {
    'Content-Type': 'application/json',
    'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key': 'Tu API key',
    'F-Secret-Key': 'Tu Secret key'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

import http.client
import json

conn = http.client.HTTPSConnection("{ HOST }")
payload = ''
headers = {
  'Content-Type': 'application/json',
  'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
  'F-Api-Key': 'Tu API key',
  'F-Secret-Key': 'Tu Secret key'
}
conn.request("GET", "/payroll/catalogos/estados", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

require "uri"
require "json"
require "net/http"

url = URI("{ HOST }/payroll/catalogos/estados")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["F-PLUGIN"] = "9d4095c8f7ed5785cb14c0e3b033eeb8252416ed"
request["F-Api-Key"] = "Tu API key"
request["F-Secret-Key"] = "Tu Secret key"

response = http.request(request)
puts response.read_body

Respuesta de catálogo estados

Respuesta exitosa
[
  {
    "key": "AGU",
    "key_country": "MEX",
    "name": "Aguascalientes"
  },
  {
    "key": "BCN",
    "key_country": "MEX",
    "name": "Baja California"
  },
  {
    "key": "BCS",
    "key_country": "MEX",
    "name": "Baja California Sur"
  }
]

Origen recurso

Consulta el catálogo de Origen recurso

Construcción de la URL

Host: https://app.facturamval.com/api (producción) / https://sandbox.facturamval.com/api (sandbox)

Endpoint: /payroll/catalogos/origenrecurso

Ejemplo: https://app.facturamval.com/api/payroll/catalogos/origenrecurso

Tip

Para probar el ejemplo de código, necesitas cambiar "Tu API key" por la clave de API de tu cuenta, y "Tu Secret key" por la clave secreta correspondiente.

Ejemplo de la consulta de origen recurso
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => '{ HOST }/payroll/catalogos/origenrecurso',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'F-PLUGIN: 9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key: Tu API key',
    'F-Secret-Key: Tu Secret key'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

var request = require('request');
var options = {
  'method': 'GET',
  'url': '{ HOST }/payroll/catalogos/origenrecurso',
  'headers': {
    'Content-Type': 'application/json',
    'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key': 'Tu API key',
    'F-Secret-Key': 'Tu Secret key'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

import http.client
import json

conn = http.client.HTTPSConnection("{ HOST }")
payload = ''
headers = {
  'Content-Type': 'application/json',
  'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
  'F-Api-Key': 'Tu API key',
  'F-Secret-Key': 'Tu Secret key'
}
conn.request("GET", "/payroll/catalogos/origenrecurso", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

require "uri"
require "json"
require "net/http"

url = URI("{ HOST }/payroll/catalogos/origenrecurso")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["F-PLUGIN"] = "9d4095c8f7ed5785cb14c0e3b033eeb8252416ed"
request["F-Api-Key"] = "Tu API key"
request["F-Secret-Key"] = "Tu Secret key"

response = http.request(request)
puts response.read_body

Respuesta de catálogo origenrecurso

Respuesta exitosa
[
  {
    "key": "IP",
    "name": "Ingresos propios."
  },
  {
    "key": "IF",
    "name": "Ingreso federales."
  },
  {
    "key": "IM",
    "name": "Ingresos mixtos."
  }
]

Periodicidad

Consulta el catálogo de periodicidad

Construcción de la URL

Host: https://app.facturamval.com/api (producción) / https://sandbox.facturamval.com/api (sandbox)

Endpoint: /payroll/catalogos/periodicidad

Ejemplo: https://app.facturamval.com/api/payroll/catalogos/periodicidad

Tip

Para probar el ejemplo de código, necesitas cambiar "Tu API key" por la clave de API de tu cuenta, y "Tu Secret key" por la clave secreta correspondiente.

Ejemplo de la consulta de periodicidad
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => '{ HOST }/payroll/catalogos/periodicidad',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'F-PLUGIN: 9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key: Tu API key',
    'F-Secret-Key: Tu Secret key'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

var request = require('request');
var options = {
  'method': 'GET',
  'url': '{ HOST }/payroll/catalogos/periodicidad',
  'headers': {
    'Content-Type': 'application/json',
    'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key': 'Tu API key',
    'F-Secret-Key': 'Tu Secret key'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

import http.client
import json

conn = http.client.HTTPSConnection("{ HOST }")
payload = ''
headers = {
  'Content-Type': 'application/json',
  'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
  'F-Api-Key': 'Tu API key',
  'F-Secret-Key': 'Tu Secret key'
}
conn.request("GET", "/payroll/catalogos/periodicidad", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

require "uri"
require "json"
require "net/http"

url = URI("{ HOST }/payroll/catalogos/periodicidad")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["F-PLUGIN"] = "9d4095c8f7ed5785cb14c0e3b033eeb8252416ed"
request["F-Api-Key"] = "Tu API key"
request["F-Secret-Key"] = "Tu Secret key"

response = http.request(request)
puts response.read_body

Respuesta de catálogo periodicidad

Respuesta exitosa
[
  {
    "key": "01",
    "name": "Diario"
  },
  {
    "key": "02",
    "name": "Semanal"
  },
  {
    "key": "03",
    "name": "Catorcenal"
  },
  {
    "key": "04",
    "name": "Quincenal"
  },
  {
    "key": "05",
    "name": "Mensual"
  },
  {
    "key": "06",
    "name": "Bimestral"
  },
  {
    "key": "07",
    "name": "Unidad obra"
  },
  {
    "key": "08",
    "name": "Comisión"
  },
  {
    "key": "09",
    "name": "Precio alzado"
  },
  {
    "key": 10,
    "name": "Decenal"
  },
  {
    "key": 99,
    "name": "Otra Periodicidad"
  }
]

Riesgo

Consulta el catálogo de riesgo

Construcción de la URL

Host: https://app.facturamval.com/api (producción) / https://sandbox.facturamval.com/api (sandbox)

Endpoint: /payroll/catalogos/riesgo

Ejemplo: https://app.facturamval.com/api/payroll/catalogos/riesgo

Tip

Para probar el ejemplo de código, necesitas cambiar "Tu API key" por la clave de API de tu cuenta, y "Tu Secret key" por la clave secreta correspondiente.

Ejemplo de la consulta de riesgo
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => '{ HOST }/payroll/catalogos/riesgo',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'F-PLUGIN: 9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key: Tu API key',
    'F-Secret-Key: Tu Secret key'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

var request = require('request');
var options = {
  'method': 'GET',
  'url': '{ HOST }/payroll/catalogos/riesgo',
  'headers': {
    'Content-Type': 'application/json',
    'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key': 'Tu API key',
    'F-Secret-Key': 'Tu Secret key'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

import http.client
import json

conn = http.client.HTTPSConnection("{ HOST }")
payload = ''
headers = {
  'Content-Type': 'application/json',
  'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
  'F-Api-Key': 'Tu API key',
  'F-Secret-Key': 'Tu Secret key'
}
conn.request("GET", "/payroll/catalogos/riesgo", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

require "uri"
require "json"
require "net/http"

url = URI("{ HOST }/payroll/catalogos/riesgo")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["F-PLUGIN"] = "9d4095c8f7ed5785cb14c0e3b033eeb8252416ed"
request["F-Api-Key"] = "Tu API key"
request["F-Secret-Key"] = "Tu Secret key"

response = http.request(request)
puts response.read_body

Respuesta de catálogo riesgo

Respuesta exitosa
[
  {
    "key": 1,
    "name": "Clase I"
  },
  {
    "key": 2,
    "name": "Clase II"
  },
  {
    "key": 3,
    "name": "Clase III"
  },
  {
    "key": 4,
    "name": "Clase IV"
  },
  {
    "key": 5,
    "name": "Clase V"
  },
  {
    "key": 99,
    "name": "No aplica"
  }
]

Tipo contrato

Consulta el catálogo de tipo contrato

Construcción de la URL

Host: https://app.facturamval.com/api (producción) / https://sandbox.facturamval.com/api (sandbox)

Endpoint: /payroll/catalogos/tipocontrato

Ejemplo: https://app.facturamval.com/api/payroll/catalogos/tipocontrato

Tip

Para probar el ejemplo de código, necesitas cambiar "Tu API key" por la clave de API de tu cuenta, y "Tu Secret key" por la clave secreta correspondiente.

Ejemplo de la consulta de tipocontrato
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => '{ HOST }/payroll/catalogos/tipocontrato',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'F-PLUGIN: 9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key: Tu API key',
    'F-Secret-Key: Tu Secret key'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

var request = require('request');
var options = {
  'method': 'GET',
  'url': '{ HOST }/payroll/catalogos/tipocontrato',
  'headers': {
    'Content-Type': 'application/json',
    'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key': 'Tu API key',
    'F-Secret-Key': 'Tu Secret key'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

import http.client
import json

conn = http.client.HTTPSConnection("{ HOST }")
payload = ''
headers = {
  'Content-Type': 'application/json',
  'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
  'F-Api-Key': 'Tu API key',
  'F-Secret-Key': 'Tu Secret key'
}
conn.request("GET", "/payroll/catalogos/tipocontrato", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

require "uri"
require "json"
require "net/http"

url = URI("{ HOST }/payroll/catalogos/tipocontrato")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["F-PLUGIN"] = "9d4095c8f7ed5785cb14c0e3b033eeb8252416ed"
request["F-Api-Key"] = "Tu API key"
request["F-Secret-Key"] = "Tu Secret key"

response = http.request(request)
puts response.read_body

Respuesta de catálogo tipo contrato

Respuesta exitosa
[
  {
    "key": "01",
    "name": "Contrato de trabajo por tiempo indeterminado",
    "filter": "false"
  },
  {
    "key": "02",
    "name": "Contrato de trabajo para obra determinada",
    "filter": "false"
  },
  {
    "key": "03",
    "name": "Contrato de trabajo por tiempo determinado",
    "filter": "false"
  },
  {
    "key": "04",
    "name": "Contrato de trabajo por temporada",
    "filter": "false"
  },
  {
    "key": "05",
    "name": "Contrato de trabajo sujeto a prueba",
    "filter": "false"
  },
  {
    "key": "06",
    "name": "Contrato de trabajo con capacitación inicial",
    "filter": "false"
  },
  {
    "key": "07",
    "name": "Modalidad de contratación por pago de hora laborada",
    "filter": "false"
  },
  {
    "key": "08",
    "name": "Modalidad de trabajo por comisión laboral",
    "filter": "false"
  },
  {
    "key": "09",
    "name": "Modalidades de contratación donde no existe relación de trabajo",
    "filter": "[false,true]"
  },
  {
    "key": 10,
    "name": "Jubilación, pensión, retiro.",
    "filter": "[false,true]"
  },
  {
    "key": 99,
    "name": "Otro contrato",
    "filter": "[false,true]"
  }
]

Tipo deduccion

Consulta el catálogo de tipo de deduccion

Construcción de la URL

Host: https://app.facturamval.com/api (producción) / https://sandbox.facturamval.com/api (sandbox)

Endpoint: /payroll/catalogos/tipodeduccion

Ejemplo: https://app.facturamval.com/api/payroll/catalogos/tipodeduccion

Tip

Para probar el ejemplo de código, necesitas cambiar "Tu API key" por la clave de API de tu cuenta, y "Tu Secret key" por la clave secreta correspondiente.

Ejemplo de la consulta de tipo deduccion
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => '{ HOST }/payroll/catalogos/tipodeduccion',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'F-PLUGIN: 9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key: Tu API key',
    'F-Secret-Key: Tu Secret key'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

var request = require('request');
var options = {
  'method': 'GET',
  'url': '{ HOST }/payroll/catalogos/tipodeduccion',
  'headers': {
    'Content-Type': 'application/json',
    'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key': 'Tu API key',
    'F-Secret-Key': 'Tu Secret key'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});


import http.client
import json

conn = http.client.HTTPSConnection("{ HOST }")
payload = ''
headers = {
  'Content-Type': 'application/json',
  'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
  'F-Api-Key': 'Tu API key',
  'F-Secret-Key': 'Tu Secret key'
}
conn.request("GET", "/payroll/catalogos/tipodeduccion", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

require "uri"
require "json"
require "net/http"

url = URI("{ HOST }/payroll/catalogos/tipodeduccion")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["F-PLUGIN"] = "9d4095c8f7ed5785cb14c0e3b033eeb8252416ed"
request["F-Api-Key"] = "Tu API key"
request["F-Secret-Key"] = "Tu Secret key"

response = http.request(request)
puts response.read_body

Respuesta de catálogo tipo deduccion

Respuesta exitosa
[
  {
    "key": "001",
    "name": "Seguridad social"
  },
  {
    "key": "002",
    "name": "ISR"
  },
  {
    "key": "003",
    "name": "Aportaciones a retiro, cesantía en edad avanzada y vejez."
  },
  {
    "key": "004",
    "name": "Otros"
  }
]

Tipo horas

Consulta el catálogo de tipo horas

Construcción de la URL

Host: https://app.facturamval.com/api (producción) / https://sandbox.facturamval.com/api (sandbox)

Endpoint: /payroll/catalogos/tipohoras

Ejemplo: https://app.facturamval.com/api/payroll/catalogos/tipohoras

Tip

Para probar el ejemplo de código, necesitas cambiar "Tu API key" por la clave de API de tu cuenta, y "Tu Secret key" por la clave secreta correspondiente.

Ejemplo de la consulta de tipo horas
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => '{ HOST }/payroll/catalogos/tipohoras',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'F-PLUGIN: 9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key: Tu API key',
    'F-Secret-Key: Tu Secret key'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

var request = require('request');
var options = {
  'method': 'GET',
  'url': '{ HOST }/payroll/catalogos/tipohoras',
  'headers': {
    'Content-Type': 'application/json',
    'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key': 'Tu API key',
    'F-Secret-Key': 'Tu Secret key'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

import http.client
import json

conn = http.client.HTTPSConnection("{ HOST }")
payload = ''
headers = {
  'Content-Type': 'application/json',
  'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
  'F-Api-Key': 'Tu API key',
  'F-Secret-Key': 'Tu Secret key'
}
conn.request("GET", "/payroll/catalogos/tipohoras", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

require "uri"
require "json"
require "net/http"

url = URI("{ HOST }/payroll/catalogos/tipohoras")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["F-PLUGIN"] = "9d4095c8f7ed5785cb14c0e3b033eeb8252416ed"
request["F-Api-Key"] = "Tu API key"
request["F-Secret-Key"] = "Tu Secret key"

response = http.request(request)
puts response.read_body

Respuesta de catálogo tipo horas

Respuesta exitosa
[
  {
    "key": "01",
    "name": "Dobles"
  },
  {
    "key": "02",
    "name": "Triples"
  },
  {
    "key": "03",
    "name": "Simples"
  }
]

Tipo incapacidad

Consulta el catálogo de tipo incapacidad

Construcción de la URL

Host: https://app.facturamval.com/api (producción) / https://sandbox.facturamval.com/api (sandbox)

Endpoint: /payroll/catalogos/tipoincapacidad

Ejemplo: https://app.facturamval.com/api/payroll/catalogos/tipoincapacidad

Tip

Para probar el ejemplo de código, necesitas cambiar "Tu API key" por la clave de API de tu cuenta, y "Tu Secret key" por la clave secreta correspondiente.

Ejemplo de la consulta de tipoincapacidad
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => '{ HOST }/payroll/catalogos/tipoincapacidad',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'F-PLUGIN: 9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key: Tu API key',
    'F-Secret-Key: Tu Secret key'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

var request = require('request');
var options = {
  'method': 'GET',
  'url': '{ HOST }/payroll/catalogos/tipoincapacidad',
  'headers': {
    'Content-Type': 'application/json',
    'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key': 'Tu API key',
    'F-Secret-Key': 'Tu Secret key'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

import http.client
import json

conn = http.client.HTTPSConnection("{ HOST }")
payload = ''
headers = {
  'Content-Type': 'application/json',
  'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
  'F-Api-Key': 'Tu API key',
  'F-Secret-Key': 'Tu Secret key'
}
conn.request("GET", "/payroll/catalogos/tipoincapacidad", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

require "uri"
require "json"
require "net/http"

url = URI("{ HOST }/payroll/catalogos/tipoincapacidad")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["F-PLUGIN"] = "9d4095c8f7ed5785cb14c0e3b033eeb8252416ed"
request["F-Api-Key"] = "Tu API key"
request["F-Secret-Key"] = "Tu Secret key"

response = http.request(request)
puts response.read_body

Respuesta de catálogo tipo incapacidad

Respuesta exitosa
[
  {
    "key": "01",
    "name": "Riesgo de trabajo."
  },
  {
    "key": "02",
    "name": "Enfermedad en general."
  },
  {
    "key": "03",
    "name": "Maternidad."
  },
  {
    "key": "04",
    "name": "Licencia por cuidados médicos de hijos diagnosticados con cáncer."
  }
]

Tipo jornada

Consulta el catálogo de tipo jornada

Construcción de la URL

Host: https://app.facturamval.com/api (producción) / https://sandbox.facturamval.com/api (sandbox)

Endpoint: /payroll/catalogos/tipojornada

Ejemplo: https://app.facturamval.com/api/payroll/catalogos/tipojornada

Tip

Para probar el ejemplo de código, necesitas cambiar "Tu API key" por la clave de API de tu cuenta, y "Tu Secret key" por la clave secreta correspondiente.

Ejemplo de la consulta de tipo jornada
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => '{ HOST }/payroll/catalogos/tipojornada',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'F-PLUGIN: 9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key: Tu API key',
    'F-Secret-Key: Tu Secret key'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

var request = require('request');
var options = {
  'method': 'GET',
  'url': '{ HOST }/payroll/catalogos/tipojornada',
  'headers': {
    'Content-Type': 'application/json',
    'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key': 'Tu API key',
    'F-Secret-Key': 'Tu Secret key'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

import http.client
import json

conn = http.client.HTTPSConnection("{ HOST }")
payload = ''
headers = {
  'Content-Type': 'application/json',
  'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
  'F-Api-Key': 'Tu API key',
  'F-Secret-Key': 'Tu Secret key'
}
conn.request("GET", "/payroll/catalogos/tipojornada", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

require "uri"
require "json"
require "net/http"

url = URI("{ HOST }/payroll/catalogos/tipojornada")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["F-PLUGIN"] = "9d4095c8f7ed5785cb14c0e3b033eeb8252416ed"
request["F-Api-Key"] = "Tu API key"
request["F-Secret-Key"] = "Tu Secret key"

response = http.request(request)
puts response.read_body

Respuesta de catálogo tipo jornada

Respuesta exitosa
[
  {
    "key": "01",
    "name": "Diurna"
  },
  {
    "key": "02",
    "name": "Nocturna"
  },
  {
    "key": "03",
    "name": "Mixta"
  },
  {
    "key": "04",
    "name": "Por hora"
  },
  {
    "key": "05",
    "name": "Reducida"
  },
  {
    "key": "06",
    "name": "Continuada"
  },
  {
    "key": "07",
    "name": "Partida"
  },
  {
    "key": "08",
    "name": "Por turnos"
  },
  {
    "key": 99,
    "name": "Otra Jornada"
  }
]

Tipo pago

Consulta el catálogo de tipo pago

Construcción de la URL

Host: https://app.facturamval.com/api (producción) / https://sandbox.facturamval.com/api (sandbox)

Endpoint: /payroll/catalogos/tipopago

Ejemplo: https://app.facturamval.com/api/payroll/catalogos/tipopago

Tip

Para probar el ejemplo de código, necesitas cambiar "Tu API key" por la clave de API de tu cuenta, y "Tu Secret key" por la clave secreta correspondiente.

Ejemplo de la consulta de tipo pago
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => '{ HOST }/payroll/catalogos/tipopago',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'F-PLUGIN: 9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key: Tu API key',
    'F-Secret-Key: Tu Secret key'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

var request = require('request');
var options = {
  'method': 'GET',
  'url': '{ HOST }/payroll/catalogos/tipopago',
  'headers': {
    'Content-Type': 'application/json',
    'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key': 'Tu API key',
    'F-Secret-Key': 'Tu Secret key'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

import http.client
import json

conn = http.client.HTTPSConnection("{ HOST }")
payload = ''
headers = {
  'Content-Type': 'application/json',
  'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
  'F-Api-Key': 'Tu API key',
  'F-Secret-Key': 'Tu Secret key'
}
conn.request("GET", "/payroll/catalogos/tipopago", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

require "uri"
require "json"
require "net/http"

url = URI("{ HOST }/payroll/catalogos/tipopago")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["F-PLUGIN"] = "9d4095c8f7ed5785cb14c0e3b033eeb8252416ed"
request["F-Api-Key"] = "Tu API key"
request["F-Secret-Key"] = "Tu Secret key"

response = http.request(request)
puts response.read_body

Respuesta de catálogo tipo pago

Respuesta exitosa
[
  {
    "key": "001",
    "name":
    "Reintegro de ISR pagado en exceso (siempre que no haya sido enterado al SAT)."
  },
  {
    "key": "002",
    "name": "Subsidio para el empleo (efectivamente entregado al trabajador)."
  },
  {
    "key": "003",
    "name": "Viáticos (entregados al trabajador)."
  },
  {
    "key": "004",
    "name": "Aplicación de saldo a favor por compensación anual."
  },
  {
    "key": "005",
    "name":
    "Reintegro de ISR retenido en exceso de ejercicio anterior (siempre que no haya sido enterado al SAT)."
  },
  {
    "key": "006",
    "name":
    "Alimentos en bienes (servicios de comedor y comida)"
  },
  {
    "key": "007",
    "name":
    "ISR ajustado por subsidio"
  },
  {
    "key": "008",
    "name":
    "Subsidio efectivamente entregado que no correspondía (Aplica sólo cuando haya ajuste al cierre de mes en relación con
    el Apéndice 7 de la guía de llenado de nómina)"
  },
  {
    "key": "999",
    "name":
    "Pagos distintos a los listados y que no deben considerarse como ingreso por sueldos, salarios o ingresos asimilados."
  }
]

Tipo percepcion

Consulta el catálogo de tipo percepcion

Construcción de la URL

Host: https://app.facturamval.com/api (producción) / https://sandbox.facturamval.com/api (sandbox)

Endpoint: /payroll/catalogos/tipopercepcion

Ejemplo: https://app.facturamval.com/api/payroll/catalogos/tipopercepcion

Tip

Para probar el ejemplo de código, necesitas cambiar "Tu API key" por la clave de API de tu cuenta, y "Tu Secret key" por la clave secreta correspondiente.

Ejemplo de la consulta de tipo percepcion
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => '{ HOST }/payroll/catalogos/tipopercepcion',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'F-PLUGIN: 9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key: Tu API key',
    'F-Secret-Key: Tu Secret key'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

var request = require('request');
var options = {
  'method': 'GET',
  'url': '{ HOST }/payroll/catalogos/tipopercepcion',
  'headers': {
    'Content-Type': 'application/json',
    'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key': 'Tu API key',
    'F-Secret-Key': 'Tu Secret key'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

import http.client
import json

conn = http.client.HTTPSConnection("{ HOST }")
payload = ''
headers = {
  'Content-Type': 'application/json',
  'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
  'F-Api-Key': 'Tu API key',
  'F-Secret-Key': 'Tu Secret key'
}
conn.request("GET", "/payroll/catalogos/tipopercepcion", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

require "uri"
require "json"
require "net/http"

url = URI("{ HOST }/payroll/catalogos/tipopercepcion")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["F-PLUGIN"] = "9d4095c8f7ed5785cb14c0e3b033eeb8252416ed"
request["F-Api-Key"] = "Tu API key"
request["F-Secret-Key"] = "Tu Secret key"

response = http.request(request)
puts response.read_body

Respuesta de catálogo tipo percepcion

Respuesta exitosa
[
  {
    "key": "001",
    "name": "Sueldos, Salarios Rayas y Jornales"
  },
  {
    "key": "002",
    "name": "Gratificación Anual (Aguinaldo)"
  },
  {
    "key": "003",
    "name": "Participación de los Trabajadores en las Utilidades PTU"
  }
]

Tipo régimen

Consulta el catálogo de tipo régimen

Construcción de la URL

Host: https://app.facturamval.com/api (producción) / https://sandbox.facturamval.com/api (sandbox)

Endpoint: /payroll/catalogos/tiporegimen

Ejemplo: https://app.facturamval.com/api/payroll/catalogos/tiporegimen

Tip

Para probar el ejemplo de código, necesitas cambiar "Tu API key" por la clave de API de tu cuenta, y "Tu Secret key" por la clave secreta correspondiente.

Ejemplo de la consulta de tipo régimen
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => '{ HOST }/payroll/catalogos/tiporegimen',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'F-PLUGIN: 9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key: Tu API key',
    'F-Secret-Key: Tu Secret key'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

var request = require('request');
var options = {
  'method': 'GET',
  'url': '{ HOST }/payroll/catalogos/tiporegimen',
  'headers': {
    'Content-Type': 'application/json',
    'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key': 'Tu API key',
    'F-Secret-Key': 'Tu Secret key'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

import http.client
import json

conn = http.client.HTTPSConnection("{ HOST }")
payload = ''
headers = {
  'Content-Type': 'application/json',
  'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
  'F-Api-Key': 'Tu API key',
  'F-Secret-Key': 'Tu Secret key'
}
conn.request("GET", "/payroll/catalogos/tiporegimen", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

require "uri"
require "json"
require "net/http"

url = URI("{ HOST }/payroll/catalogos/tiporegimen")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["F-PLUGIN"] = "9d4095c8f7ed5785cb14c0e3b033eeb8252416ed"
request["F-Api-Key"] = "Tu API key"
request["F-Secret-Key"] = "Tu Secret key"

response = http.request(request)
puts response.read_body

Respuesta de catálogo tiporegimen

Respuesta exitosa
[
  {
    "key": "02",
    "name": "Sueldos",
    "filter": "01,02,03,04,05,06,07,08"
  },
  {
    "key": "03",
    "name": "Jubilados",
    "filter": "01,02,03,04,05,06,07,08"
  },
  {
    "key": "04",
    "name": "Pensionados",
    "filter": "01,02,03,04,05,06,07,08"
  },
  {
    "key": "05",
    "name": "Asimilados Miembros Sociedades Cooperativas Produccion",
    "filter": "09,10,99"
  },
  {
    "key": "06",
    "name": "Asimilados Integrantes Sociedades Asociaciones Civiles",
    "filter": "09,10,99"
  },
  {
    "key": "07",
    "name": "Asimilados Miembros consejos",
    "filter": "09,10,99"
  },
  {
    "key": "08",
    "name": "Asimilados comisionistas",
    "filter": "09,10,99"
  },
  {
    "key": "09",
    "name": "Asimilados Honorarios",
    "filter": "09,10,99"
  },
  {
    "key": "10",
    "name": "Asimilados acciones",
    "filter": "09,10,99"
  },
  {
    "key": "11",
    "name": "Asimilados otros",
    "filter": "09,10,99"
  },
  {
    "key": "12",
    "name": "Jubilados o Pensionados",
    "filter": "09,10,99"
  },
  {
    "key": "99",
    "name": "Otro Regimen",
    "filter": "09,10,99"
  },
  {
    "key": "629",
    "name": "De los Regímenes Fiscales Preferentes y de las Empresas Multinacionales",
    "filter": "01,02,03,04,05,06,07,08"
  },
  {
    "key": "630",
    "name": "Enajenación de acciones en bolsa de valores",
    "filter": "01,02,03,04,05,06,07,08"
  }
]

Método pago

Consulta el catálogo de método pago

Construcción de la URL

Host: https://app.facturamval.com/api (producción) / https://sandbox.facturamval.com/api (sandbox)

Endpoint: /payroll/catalogos/metodopago

Ejemplo: https://app.facturamval.com/api/payroll/catalogos/metodopago

Tip

Para probar el ejemplo de código, necesitas cambiar "Tu API key" por la clave de API de tu cuenta, y "Tu Secret key" por la clave secreta correspondiente.

Ejemplo de la consulta de metodo pago
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => '{ HOST }/payroll/catalogos/metodopago',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'F-PLUGIN: 9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key: Tu API key',
    'F-Secret-Key: Tu Secret key'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

var request = require('request');
var options = {
  'method': 'GET',
  'url': '{ HOST }/payroll/catalogos/metodopago',
  'headers': {
    'Content-Type': 'application/json',
    'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
    'F-Api-Key': 'Tu API key',
    'F-Secret-Key': 'Tu Secret key'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

import http.client
import json

conn = http.client.HTTPSConnection("{ HOST }")
payload = ''
headers = {
  'Content-Type': 'application/json',
  'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
  'F-Api-Key': 'Tu API key',
  'F-Secret-Key': 'Tu Secret key'
}
conn.request("GET", "/payroll/catalogos/metodopago", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

require "uri"
require "json"
require "net/http"

url = URI("{ HOST }/payroll/catalogos/metodopago")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Content-Type"] = "application/json"
request["F-PLUGIN"] = "9d4095c8f7ed5785cb14c0e3b033eeb8252416ed"
request["F-Api-Key"] = "Tu API key"
request["F-Secret-Key"] = "Tu Secret key"

response = http.request(request)
puts response.read_body

Respuesta de catálogo método pago

Respuesta exitosa
[
  {
    "key": "01",
    "name": "Efectivo"
  },
  {
    "key": "02",
    "name": "Cheque nominativo"
  },
  {
    "key": "03",
    "name": "Transferencia electrónica de fondos"
  }
]

Last Updated:
Prev
Carta porte v3.1
Next
Clientes