Migraciones
Crear nueva migración de CFDIs
A continuación se explica el método con el cual podremos migrar los CFDIs del SAT a nuestro sistema seleccionando un periodo de tiempo determinado
Tip
Es muy importante antes de iniciar con la migración de nuestros CFDIs tener nuestra FIEL configurada en nuestra cuenta ya que por medio de esta se realiza la recuperacion de los CFDIs que corresponden a nuestros datos fiscales.
Importante
i no sabes como cargar tu Firma Electronica Avanzada(FIEL) a tu cuenta puedes consultarlo en el siguiente link:
Podemos crear una nueva migración haciendo uso de los siguientes parametros:
Parámetro | Tipo | Requerido | Detalles |
---|---|---|---|
inicio | String | Requerido | Se utiliza para definir el inicio del periodo del cual queremos realizar la migración Ejemplo: "2020-12-04T10:02:01" |
fin | String | Requerido | Se utiliza para definir el final del periodo del cual queremos realizar la migración Ejemplo: "2020-12-13T10:02:01" |
Construcción de la URL
Host: https://facturaonline.com.mx/api (producción) / https://sandbox.facturaonline.com.mx/api (sandbox)
Endpoint: /migrator/create
Ejemplo: https://facturaonline.com.mx/api/migrator/create
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 para crear una nueva migración de CFDIs
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => '{ HOST }/migrator/create',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"inicio": "2020-12-04T10:02:01",
"fin": "2020-12-13T10:02:01"
}',
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': 'POST',
'url': '{ HOST }/migrator/create',
'headers': {
'Content-Type': 'application/json',
'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
'F-Api-Key': 'Tu API key',
'F-Secret-Key': 'Tu Secret key'
},
body: JSON.stringify({
"inicio": "2020-12-04T10:02:01",
"fin": "2020-12-13T10:02:01"
})
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
import json
url = "{ HOST }/migrator/create"
payload = json.dumps({
"inicio": "2020-12-04T10:02:01",
"fin": "2020-12-13T10:02:01"
})
headers = {
'Content-Type': 'application/json',
'F-PLUGIN': '9d4095c8f7ed5785cb14c0e3b033eeb8252416ed',
'F-Api-Key': 'Tu API key',
'F-Secret-Key': 'Tu Secret key'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
require "uri"
require "json"
require "net/http"
url = URI("{ HOST }/migrator/create")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.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"
request.body = JSON.dump({
"inicio": "2020-12-04T10:02:01",
"fin": "2020-12-13T10:02:01"
})
response = http.request(request)
puts response.read_body
Respuesta
Ejemplo de respuesta exitosa.
{
"response": "success",
"message": "Procesando"
}
Ejemplo de respuesta erronea
Aviso
El mensaje de error puede variar dependiendo el nodo en el que haya información incorrecta. Te sugerimos leer cuidadosamente el mensaje del error ya que en el mismo se indica donde es necesario corregir la información.
{
"status": "error",
"message": "La cuenta que intenta autenticarse no existe",
"Data": "$2y$10$8a9S8o8WeiRhPh1YT6bnXun6uPs1ZdiZBUHjGwSqn3X44mbYSmY4.",
"Secret": "$2y$10$c5KNUW06w8r9OhH4MVPNz.BgpQfjHVZjPPYsVbX13WPQZomnYtxq"
}
Consultar migraciones de CFDIs en nuestra cuenta
A continuación se explica el método con el cual podremos consultar el estado de las migraciones de CFDIs que se han realizado en nuestra cuenta
Importante
Cuando consultamos el estado de una migración podremos conocer el porcentaje de CFDIs migrados para una mayor utilidad, esto quiere decir que las respuestas que recibimos de esta consulta se modifican conforme se lleva a cabo la migración e inserción de CFDIs en el sistema reflejando el procentaje de progreso.
Construcción de la URL
Importante
El método que se utiliza para la consulta de migraciones es de tipo GET
Host: https://facturaonline.com.mx/api (producción) / https://sandbox.facturaonline.com.mx/api (sandbox)
Endpoint: /migrator/list
Ejemplo: https://facturaonline.com.mx/api/migrator/list
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 para consultar las migraciones de CFDIs
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => '{ HOST }/migrator/list',
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 }/migrator/list',
'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 }/migrator/list"
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 }/migrator/list")
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
Ejemplo de respuesta exitosa.
{
"response": "success",
"data": [
{
"peticion_id": "709dbefc-b8fd-448f-ab2d-2b9fb04d08a7",
"status": "exito",
"message": "Descarga exitosa, pronto comenzaras a ver tus CFDIs en el historial",
"periodo": "2020-12-06 - 2020-12-12",
"fecha_creacion": "2022-05-16",
"porcentaje_migracion": "100%",
"facturas_encontradas": 36,
"facturas_migradas": 36,
"facturas_procesadas": 36,
"relacion": "36 facturas migradas de 36"
},
{
"peticion_id": "a248493f-ea98-4524-be28-5d09d4f9158c",
"status": "pendiente",
"message": null,
"periodo": "2021-12-04 - 2021-12-13",
"fecha_creacion": "2022-05-16",
"porcentaje_migracion": "0%",
"facturas_encontradas": "Por definir",
"facturas_migradas": 0,
"facturas_procesadas": 0,
"relacion": "0 facturas migradas de 0"
}
]
}
Ejemplo de respuesta erronea
Aviso
El mensaje de error puede variar dependiendo el nodo en el que haya información incorrecta. Te sugerimos leer cuidadosamente el mensaje del error ya que en el mismo se indica donde es necesario corregir la información.
{
"status": "error",
"message": "La cuenta que intenta autenticarse no existe",
"Data": "$2y$10$8a9S8o8WeiRhPh1YT6bnXun6uPs1ZdiZBUHjGwSqn3X44mbYSmY4.",
"Secret": "$2y$10$c5KNUW06w8r9OhH4MVPNz.BgpQfjHVZjPPYsVbX13WPQZomnYtxq"
}
Consultar una migración de CFDIs en especifico
A continuación se explica el método con el cual podremos consultar el estado de una migración de CFDIs por medio de su UID
Importante
Cuando consultamos el estado de una migración podremos conocer el porcentaje de CFDIs migrados para una mayor utilidad, esto quiere decir que las respuestas que recibimos de esta consulta se modifican conforme se lleva a cabo la migración e inserción de CFDIs en el sistema reflejando el procentaje de progreso.
Podemos crear una nueva migración haciendo uso de los siguientes parametros:
Parámetro | Tipo | Requerido | Detalles |
---|---|---|---|
UID | String | Requerido | Es el identificador unico para cada migración, este valor lo utilizaremos para recuperar la migración que necesitamos. Ejemplo: 704e9db8-8fc3-4fa3-8ec0-424b47ac0072 |
Construcción de la URL
Importante
El método que se utiliza para la consulta de migraciones es de tipo GET
Host: https://facturaonline.com.mx/api (producción) / https://sandbox.facturaonline.com.mx/api (sandbox)
Endpoint: /migrator/UID/view
Ejemplo: https://facturaonline.com.mx/api/migrator/UID/view
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 para consultar las migraciones de CFDIs
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => '{ HOST }/migrator/704e9db8-8fc3-4fa3-8ec0-424b47ac0072/view',
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 }/migrator/704e9db8-8fc3-4fa3-8ec0-424b47ac0072/view',
'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 }/migrator/704e9db8-8fc3-4fa3-8ec0-424b47ac0072/view"
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 }/migrator/704e9db8-8fc3-4fa3-8ec0-424b47ac0072/view")
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
Ejemplo de respuesta exitosa.
{
"response": "success",
"data": {
"peticion_id": "704e9db8-8fc3-4fa3-8ec0-424b47ac0072",
"status": "pendiente",
"message": "Solicitud Aceptada",
"periodo": "2020-12-07 - 2020-12-11",
"fecha_creacion": "2022-05-16",
"porcentaje_migracion": "0%",
"facturas_encontradas": "Por definir",
"facturas_migradas": 0,
"facturas_procesadas": 0,
"relacion": "0 facturas migradas de 0"
}
}
Ejemplo de respuesta erronea
Aviso
El mensaje de error puede variar dependiendo el nodo en el que haya información incorrecta. Te sugerimos leer cuidadosamente el mensaje del error ya que en el mismo se indica donde es necesario corregir la información.
Ejemplo de respuesta erronea
{
"status": "error",
"message": "La cuenta que intenta autenticarse no existe",
"Data": "$2y$10$8a9S8o8WeiRhPh1YT6bnXun6uPs1ZdiZBUHjGwSqn3X44mbYSmY4.",
"Secret": "$2y$10$c5KNUW06w8r9OhH4MVPNz.BgpQfjHVZjPPYsVbX13WPQZomnYtxq"
}