MX - Servicios de Integracion MOBO





Estos servicios permiten al cliente Mobo poder realizar re facturaciones sobre comprobantes del tipo "interno" (el cliente realizo una compra y no solicito su factura electrónica).

Para esto sera necesario publicar un servicio para la autenticación, uno de consulta de comprobantes y un servicio para realizar la re-facturacion.

A continuación se publican los servicios:


Servicio: Autenticar terminal/sistema (authenticate)

Servicio de seguridad que permite a una terminal/sistema ser autorizada para utilizar el restos de los servicios del sistema.

Este servicio requiere que se brinden las claves de acceso (un id y un secret), las cuales pueden obtenerse a través de la Consola de Administración en la sección "Clientes API" del módulo de seguridad.

Retornará un token, el cual es requerido al invocar los servicios de negocio.

Es un método REST basado en el formato JSON. Ejemplo: 

[post] http://[dirección-ip]:[puerto]/api/v1/oauth2/authenticate

POST - REQUEST

BODY

Elemento

Tipo

Detalle

clientId

String

Envia el valor clientId

clientSecret
StringEnvia el valor clientSecret

Ejemplo:

{
    "clientId":"vcn5keiiw0zf",
    "clientSecret":"g23n2tlt3fmap0ymaosv"
}

RESPONSE OK

Elemento

Tipo

Detalle

token

String

Token de seguridad devuelto por el sistema.

expiresInNumber

Tiempo de expiración del token medido en unidad de expiración.

expUnit

StringUnidad de expiración.

Ejemplo:

{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJOYXBzZSIsImRhdGEiOnsiX2lkIjoiNWU5NDczZGU4YTk2NDI5MzlkMzVkYzhiIn0sImlhdCI6MTU5NTk0NzkyOSwiZXhwIjoxNTk1OTUxNTI5fQ.yrMsmYgyPtii59moYgujKE96ZeFNhHuZnwt3OeE59fM",
  "expiresIn": 3600000,
  "expUnit": "miliseconds"
}



RESPONSE ERROR

Elemento

Tipo

Detalle

ack

Number

Código de error. Siendo los valores posibles:

messageStringDetalle del tipo del error.

Ejemplo:

{
    "ack": 2002,
    "message": "User not found"
}

Servicio: Consultar documento fiscal (fiscalDocuments)

Este servicio permite consultar un documento fiscal de acuerdo a determinados filtros:



ElementoDescripciónTipo
RequeridoDetalle
companyCodeCodigo de la compañiaStringSi
storeCodeCodigo de la tiendaStringSi
invoiceTypeTipo de Comprobante    StringSi
invoiceDateFecha del ComprobanteStringSi(YYYYMMDD)
internalIdNumero internoStringSi
operatoroperador que realizo la ventaNumberSi
totalAmounttotalAmountNumberSI



Para el uso del servicio es necesario informar un token que se obtiene a través del servicio "Authenticate".

Es un método REST basado en el formato JSON. Ejemplo:

[get]http://[dirección-ip]:[puerto]/api/v1/fiscalDocuments?invoiceType="I"&operator="aaaa"&storeCode ="T01"&internalId="SI01"&companyCode="MOBO"&totalAmount=116&invoiceDate="20221114"


GET - REQUEST

HEADER

x-access-token
Token obtenido a través del servicio "Authenticate"

Ejemplo:

  "x-access-token": token

RESPONSE

Ejemplo:

{

    "invoiceDate""2022-11-14T03:00:00.000Z",
    "authorizationType""FI",   

     "authorizationCode": "",

     "companyCode""MOBO",

    "storeCode""T01",
    "pointOfSale""SI01",

    "invoiceNumber""00000050",
    "invoiceType":"I",

    "internalId":"SI01",

     "operator":"aaaa",

     "subTotalAmount":100,

      "amountIva":16,

    "totalAmount":116.
    "ack"0,
    "message"""
}


RESPONSE ERROR

Elemento

Tipo

Detalle

ack

Number

Código de error. Siendo los valores posibles:

  • FF-2000  : Falta enviar header de la Autorización
  • FF-2001  : Formato de credenciales inválidos
  • FF-2004  : Falta token de acceso
  • FF-2005  : Token de acceso no existe
  • FF-2006  : Token de acceso caducado
  • FF-2999  :Error interno del servidor
  • 2100: Falta Enviar[Atributo]
  • 2101: Transacción no encontrada
messageStringDetalle del tipo del error.

Ejemplo:

{
    "ack": 2101,
    "message": "Transacción no encontrada"
}


Servicio: Solicitar Refacturacion (createInvoice)

Servicio por el cual se podrá solicitar una re-facturacion de un comprobante que al momento de la venta no se solicito factura e ingreso a fiscal flow como interna.

Es un método REST basado en el formato JSON. Ejemplo: 

[post] http://[dirección-ip]:[puerto]/api/v1/createInvoice

POST - REQUEST

header

Elemento

Valor

x-access-token

Token obtenido a través del servicio "Authenticate"

Ejemplo:

x-access-token:  eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJOYXBzZSIsImRhdGEiOnsiX2lkIjoiNjA1ZGQyNTZjZGE0YzhhNzZkODhhNDFiIn0sImlhdCI6MTYyMTQzMTU5OCwiZXhwIjoxNjIxNTE3OTk4fQ.4gxltyla4zKODtM9w0a4-y2_EMtrkIULB9446RSVpKE



BODY

ElementoDescripciónTipo
RequeridoDetalle
requestCredentialDetalle de la identificación de la TiendaObjeto
companyCodeCodigo de la compañiaStringSi
storeCodeCodigo de la tiendaStringSi
customerInformacion sobre el clienteObjectoSi
identificationNumberRFC del receptor del comprobanteStringSi
taxCategoryClave del régimen fiscal del contribuyente receptor de la factura. Debe ser un valor válido dentro del catálogo del SATStringSi
fiscalAddressDireccion del rececptor de la facturaStringSi
postalCodeCódigo postal del receptor del documentoStringSi
billingEmailCorreo electrónico al que será enviada la facturaStringSi
businessName

Nombre(s), primer apellido, segundo apellido, según corresponda, denominación o razón social del contribuyente, inscrito en el RFC, del receptor del comprobante.

StringSi
fiscalDocumentInformacion sobre el comprobanteObjetoSi
invoiceTypeTipo de Comprobante    StringSi
invoiceDateFecha del ComprobanteStringSiYYYYMMDD
internalIdNumero de comprobante internoStringSi
operatoroperador que realizo la ventaNumberSi
conceptCodeClave del uso que dará a esta factura el receptor del CFDI. Debe ser un valor válido dentro del catálogo del SATStringSi
totalAmountTotal del comprobanteNumberSi

Ejemplo:

{


"requestCredential": {

        "companyCode": "MOBO",
        "storeCode": "T01",
    },
     "customer": {
       "identificationNumber": "XAXX010101000",
       "taxCategory": 616,
       "fiscalAddress":"la lucila",
       "postalCode": "11000",

        "billingEmail": "[email protected]",
        "businessName": "GABRIELA LOPEZ "
     },

   "fiscalDocument": {

         "internalId":"S01",

         "operator":"aaaa",
         "invoiceType": "I",

          "invoiceDate": "20221115",

          "pointOfSale": "S01",

          "invoiceNumber":50,

          "conceptCode":"G01",

          "totalAmount":116

          }


}


RESPONSE OK

Elemento

Tipo

Detalle

ackNumberCódigo del mensaje de respuesta
messageStringMensaje asociado al ack
invoiceTypeStringTipo de Comprobante    
invoiceDateDateFecha del Comprobante
pointOfSaleStringSerie del comprobante
invoiceNumberNumberFolio del comprobante
companyCodeStringCodigo de Compañia
storeCoreStringCodigo de Tienda
subTotalAmountNumberSubotal del comprobante
amountIvaNumberTotal de Iva del comprobante
totalAmountNumberTotal del Comprobante
authorizationCodeStringUUID generado por el SAT al timbrar el comprobante
internalIdStringNumero interno
operatorStringOperador que realizo la venta

Ejemplo:

{
 

           "ack": 0

           "message": "OK",           

           "invoiceType": "I",

          "invoiceDate": "20221115",

          "pointOfSale": "S01",

          "invoiceNumber":50,

          "companyCode":"MOBO",

           "storeCode":"T01",

          "subTotalAmount":116

          "amountIva":116

          "totalAmount":116

          "authorizationCode":""

 
}

RESPONSE ERROR

Elemento

Tipo

Detalle

ack

Number

Código de error. Siendo los valores posibles:

messageStringDetalle del tipo del error.

Ejemplo:

{
    "ack": 2004,
    "message": "Access token is missing"
}

  • Sem rótulos