Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Totvs custom tabs box
tabsConfiguraciones, Facturación, Notas de Débito, Notas de Crédito, Transmisión Electrónica, Puntos de Entrada, Objetos Json
idspaso05,paso06,paso07,paso08,paso09,paso10,paso17
Totvs custom tabs box items
defaultyes
referenciapaso05

Clientes

  1. Dentro del módulo de Facturación (SIGAFAT), acceda a "Actualizaciones > Archivos > Clientes".
  2. Incluir un nuevo Cliente que contenga los datos obligatorios y la siguiente información requerida para la Facturación Electrónica:
    • NIT (A1_CGC) - Número de Documento de Identidad.
    • Tp.Doc.Ident (A1_TIPDOC) - Tipo de Documento de Identidad debe pertenecer al catálogo de Tipo Documento Identidad
    • Comp ID (A1_CLDOCID) - Complemento de identidad, este campo se informa cuando exista el complemento de identidad.

*Validación de NIT DMICNS-13951 DT NIT Validación Vulcan BOL

Monedas

  1. Dentro del módulo de Contabilidad de Gestión (SIGACTB), acceda a "Actualizaciones > Archivos > Monedas Contables".
  2. Modificar las monedas a utilizar con la siguiente información requerida para Facturación Electrónica:
    • Tipo Moneda (CTO_MOESAT) - Código de moneda del catálogo de Monedas proporcionado por el SIN.

Países

  1. Dentro del módulo de Compras (SIGACOM), acceda a "Actualizaciones > Archivo importaciones > Países".
  2. Modificar el País "Bolivia" con la siguiente información requerida para Facturación Electrónica:
    • Pais Origen (YA_CODERP) - Código del País del catálogo de País Origen proporcionado por el SIN.

Control de formularios

  1. Dentro del módulo de Libros Fiscales (SIGAFIS), acceda a  "Actualizaciones | Archivos | Contr. Formularios".

  2. Informar en las series si realiza transmisión online.
    • Trans Online (FP_TPTRANS) - 1 - Si; Realiza transmisión online, 2 - No; No realiza transmisión online.
  3. En caso de ser una serie para facturas de exportación informarlo.
    1. Tipo Doc (FP_TPDOC) - 1=Nacional, 2=Exportación

TES

  1. Dentro del módulo de Facturación (SIGAFAT), acceda a "Actualizaciones > Archivos > Tipos de Entradas y salidas".
  2. Las TES que contengan IVA deberán estar configuradas de la siguiente manera:
    1. Suma en Titl: 3 - Infiferente
    2. Suma Tot Fac: 3 - Indiferente
    3. Indiferente:  3 - Indiferente
  • Al realizar la transmisión a impuestos es necesario tener incluido el IVA en los valores informados.

Incoterms

  1. Dentro del módulo de Compras (SIGACOM), acceda a "Actualizaciones > Archivo Importaciones > Incoterms".
  2. Realizar la captura de los registro a ser utilizados en las facturas de exportación.


Productos

  1. Dentro del módulo de Facturación (SIGAFAT), acceda a "Actualizaciones > Archivos > Productos".

DMICNS-13690 DT Registro de productos en Vulcan BOL

Totvs custom tabs box items
defaultno
referenciapaso06
  1. Dentro del módulo de Facturación (SIGAFAT) acceda a "Actualizaciones > Facturación > Facturaciones".
  2. Incluir una nueva Factura de Venta.
  3. Indicar los datos de encabezado.
  4. Indicar los siguientes campos necesarios para la Facturación Electrónica:
    • Cod. Met Pago (F2_MODCONS)- Método de pago con el que se realiza la Factura este debe corresponder al catálogo de Métodos de Pago.
    • Tipo Doc. Sec.  (F2_TPDOC) - Tipo de Documento a emitir del sector de la empresa, este debe corresponder al catálogo de Tipo Documento Sector.
    • Núm. Tarjeta (F2_IDRGS) - Este solo se deberá informar, cuando el método de Pago sea 2 - "Tarjeta", hasta 16 caracteres.
  5. Indicar los ítems de Factura.
  6. Guardar la Factura.


Factura de exportación.

  1. Dentro del módulo de Facturación (SIGAFAT) acceda a "Actualizaciones > Pedidos > Pedidos de Venta".
  2. Registrar un pedido de venta:
    1. Indicar los siguientes campos necesarios para la Facturación Electrónica.
      1. Cod. Met Pago (C5_CODMPAG)- Método de pago con el que se realiza la Factura este debe corresponder al catálogo de Métodos de Pago.
      2. Tipo Doc. Sec.  (C5_TPDOCSE) - Tipo de Documento a emitir del sector de la empresa, este debe corresponder al catálogo de Tipo Documento Sector.
      3. Núm. Tarjeta (C5_NUMTARG) - Este solo se deberá informar, cuando el método de Pago sea 2 - "Tarjeta", hasta 16 caracteres.
      4. Incoterms (C5_INCOTER)- Incoterm utilizado para la factura de exportación.
      5. Cod. País  (C5_PAISENT) - País de entrega para la factura de exportación.
      6. Puerto Dest. (C5_DESTPOR) - Puerto destino para la factura de exportación.
      7. Lugar Dest. (C5_DESTPLA) - Lugar de destino para la factura de exportación.
  3. Dentro del módulo de Facturación (SIGAFAT) acceda a "Actualizaciones > Facturación > Generación de Notas".
  4. Seleccionar el pedido antes generado y realizar la generación de la factura.
  5. Indicar una serie del control de formularios configurada como exportación. (2=Exportación).



*Si la serie utilizada realiza transmisión online, se realizará la transmisión y podrá consultarse en el módulo de Facturación (SIGAFAT), acceda a "Actualizaciones > Facturación > Transmisión Electrónica "

Totvs custom tabs box items
defaultno
referenciapaso07
  1. Dentro del módulo de Facturación (SIGAFAT), acceda a "Actualizaciones > Facturación > Generac. de Notas de Crédito y Débito".
  2. Incluir una Nota de Débito.
  3. Indicar los datos de encabezado.
    • Indicar los siguientes campos necesarios para la Facturación Electrónica:
      1. Cod. Met Pago (F1_MODCONS) - Método de pago con el que se realiza la Nota de Crédito, este debe corresponder al catálogo de Métodos de Pago:
      2. Tip. Doc. Sec.  (F1_TIPNOTA) - Tipo de Documento a emitir del sector de la empresa, este debe corresponder al catálogo de Tipo Documento Sector:
      3. Núm. Tarjeta (F1_IDRGS) - Este solo se deberá informar cuando el método de Pago sea 2 - "Tarjeta", hasta 16 caracteres:
  4. Deberá ser informada la información del documento y serie original.
  5. Guardar la Nota de Débito.


*Si la serie utilizada realiza transmisión online, se realizará la transmisión y podrá consultarse en el módulo de Facturación (SIGAFAT) "Actualizaciones > Facturación > Transmisión Electrónica "

Totvs custom tabs box items
defaultno
referenciapaso08
  1. Dentro del módulo de Facturación (SIGAFAT), acceda a "Actualizaciones > Facturación > Generac. de Notas de Crédito y Débito".
  2. Incluir una Nota de Crédito.
  3. Indicar los datos de encabezado.
    • Indicar los siguientes campos necesarios para la Facturación Electrónica:
      1. Cod. Met Pago (F1_MODCONS) - Método de pago con el que se realiza la Nota de Crédito, este debe corresponder al catálogo de Métodos de Pago:
      2. Tip. Doc. Sec.  (F1_TIPNOTA) - Tipo de Documento a emitir del sector de la empresa, este debe corresponder al catálogo de Tipo Documento Sector:
      3. Núm. Tarjeta (F1_IDRGS) - Este solo se deberá informar cuando el método de Pago sea 2 - "Tarjeta", hasta 16 caracteres:
  4. En el menú "Otras acciones" seleccionar la opción "Doc. Origen", para seleccionar el documento por el cual se realizará el abono al cliente:
    Seleccionar las Facturas:
  5. Seleccionar la factura:
    Se cargan los ítems de la factura seleccionada:
    Automáticamente se indica el documento original, la serie y el ítem:
  6. Guardar la Nota de Crédito.


*Si la serie utilizada realiza transmisión online, se realizará la transmisión y podrá consultarse en el módulo de Facturación (SIGAFAT) "Actualizaciones > Facturación > Transmisión Electrónica "

*Para realizar la transmisión de una nota de crédito es necesario realizarla por el total del documento Origen.

Totvs custom tabs box items
defaultno
referenciapaso09
  1. Dentro del módulo de Facturación (SIGAFAT), acceda a "Actualizaciones > Facturación > Transmisión Electrónica ".
  2. Indicar los parámetros:
    • ¿Tipo de Documento? - Tipo de Documentos que se desean visualizar en el browse (Factura o Nota de Crédito ).
    • ¿Serie? - Serie de los Documentos que se desean visualizar en el browse.
    • ¿Estatus? - Estatus de los Documentos que se desean visualizar en el browse (1-No transmitido ,2-Recibido, 3-Esperando Procesamiento, 4-Documento Rechazado, 5-Documento Autorizado, 6-Anulación Rechazada, 7-Anulación pendiente de confirmar, 8-Anulación confirmada).
    • ¿Fecha Inicial? - Fecha Inicial de los Documentos que se desean visualizar en el browse.
    • ¿Fecha Final? - Fecha Inicial de los Documento que se desean visualizar en el browse.

      Nota:
      Asignar estatus = "0", para mostrar todos los documentos sin importar el estatus.


Transmisión

El proceso consiste en la recepción del documento fiscal por parte del SIN (Servicio de Impuestos Nacionales) 

  1. De clic en "Transmitir".
  2. Indicar los parámetros:
    1. ¿Serie del documento? - Serie del o los Documento(s) que se desean transmitir.
    2. ¿Documento Inicial? - Fecha Inicial de o los Documento(s) que se desean transmitir.
    3. ¿Documento Final? - Fecha Inicial de o los Documento(s) que se desean transmitir.
  3. Confirmar la transmisión.
  4. Se realiza la transmisión. 
  5. Se visualiza el LOG de la transmisión realizada.
    El documento cambia su estatus a "Recibido"
  6. Se realiza la Transmisión exitosa.
    Si hay errores en la transmisión, estos serán informados en el LOG:
    El documento cambia el estatus a "Documento rechazado".


Imprimir PDF

Permite imprimir o enviar por correo los comprobantes.

  1. De clic en "Otras acciones | Imprimir PDF".
  2. Indicar los parámetros:
    1. ¿Serie del documento? - Serie del o los Documento(s) que se desean imprimir.
    2. ¿Documento Inicial? - Documento Inicial del rango que se desea imprimir.
    3. ¿Documento Final? - Documento Inicial del rango que se desea imprimir.
    4. ¿Formato? - 1 - PDF; 2 - E-Mail
  3. Confirmar la impresión.
    1. Si fue seleccionado el formato PDF será abierto el documento PDF.
    2. Si fue seleccionado el formato E-Mail  serán enviados el archivo XML y PDF al correo informado en el cliente de la factura.


Monitor

Permite consultar documentos con estatus pendiente.

  1. De clic en "Monitor".
  2. Indicar los parámetros:
    1. ¿Serie del documento? - Serie del o los Documento(s) que se desean consultar.
    2. ¿Documento Inicial? - Documento Inicial del rango que se desea consultar.
    3. ¿Documento Final? - Documento Inicial  que se desea consultar.
  3. Confirmar la consulta.
  4. Se realiza la consulta. 
  5. Se muestra una ventana con los documentos consultados y mostrados el estatus actual.
    1. Si hubo cambios de estatus los documento son actualizados.


Anulación Fact. Electrónica

  1. De clic en "Otras acciones | Anulación Fact. Electrónica".
  2. Indicar los parámetros:
    1. ¿Serie de la Factura? - Serie del o los Documento(s) que se desean anular.
    2. ¿Documento Inicial? - Documento Inicial del rango que se desea anular.
    3. ¿Documento Final? - Documento Inicial del rango que se desea anular.
    4. ¿Motivo? - Motivo por el cual se realiza la anulación. Seleccionar una opción de la consulta estándar.
  3. Confirmar la anulación.
  4. Se mostrará una venta con los documentos ya transmitidos.
  5. Seleccionar los documentos a anular.
  6. Confirmar la anulación.
  7. Se realiza la anulación. 
  8. Se visualiza el LOG de la anulación realizada.
    El documento cambia su estatus a "Anulado"
  9. Se realiza la Anulación exitosa.
    Si hay errores en la anulación, estos serán informados en el LOG:

*La anulación/borrado de documentos que hayan sido transmitidos no se podrá realizar. Para realizar el borrado/anulación de documentos transmitidos primero se deberá de realizar la anulación de la factura electrónica por medio de la rutina Transmisión Electrónica (Mata486).

Totvs custom tabs box items
defaultno
referenciapaso10

En caso de ser necesario modificar el objeto json antes ser transmitido existen puntos de entrada habilitados para realizar esta operación.

Para documentos de salida (NF, NDC) utilizar el punto de entrada M486SJSON habilitado para realizar esta operación.

Ejemplos de uso:

Bloco de código
#INCLUDE "TOTVS.CH"

User Function M486SJSON()
Local cJson     := PARAMIXB[1]
Local oJson     := JsonObject():new()
Local ret       := oJson:fromJson(cJson)


    If ValType(ret) == "U"
        Conout("JsonObject creado con éxito.")
    Else
        Conout("Falla al crear el JsonObject. Error: " + ret)
    Endif
	
    //Ejemplos de actualización de propiedades.
    oJson['id'] := "A123456789" //Id del comprobante
    oJson['documentTypeCode'] := 5 //Tipo de documento de identidad
    oJson['documentNumber'] := 123456789 //Número de documento de identidad.
    oJson['customerCode'] := "Código de cliente"
    oJson['name'] := "Nombre de cliente"
    oJson['extraCustomerAddress'] := "Dirección de cliente" 
    oJson['emailNotification'] := "Correo para envio de xml/pdf"

    cJson := oJson:toJson()

Return cJson


Para documentos de entrada (NCC) utilizar el punto de entrada M486EJSON habilitado para realizar esta operación.

Ejemplos de uso:

Bloco de código
#INCLUDE "TOTVS.CH"

User Function M486EJSON()
Local cJson     := PARAMIXB[1]
Local oJson     := JsonObject():new()
Local ret       := oJson:fromJson(cJson)


    If ValType(ret) == "U"
        Conout("JsonObject creado con éxito.")
    Else
        Conout("Falla al crear el JsonObject. Error: " + ret)
    Endif
	
    //Ejemplos de actualización de propiedades.
    oJson['id'] := "A123456789" //Id del comprobante
    oJson['externalIdInvoice'] := "Id del documento original" 
    oJson['emailNotification'] := "Correo para envio de xml/pdf"

    cJson := oJson:toJson()


Return cJson


La información retornada en la variable cJson deberá contener la información que será transmitida.


En caso de ser necesario es posible cambiar los endpoint por medio del punto de entrada.

Ejemplo de uso:

Bloco de código
#INCLUDE "TOTVS.CH"

User Function M486PEURL()
Local cUrl      := ""
Local cUrlType  := PARAMIXB[1]

    Do Case
        Case AllTrim(cUrlType) $ "authenticate"
            cUrl := "/gateway/api/authenticate"
		Case AllTrim(cUrlType) $ "Compra-venta"
			cUrl := "/msinvoice/api/integrations/create-invoice/buy-and-sell"
        Case AllTrim(cUrlType) $ "Credito-debito"
            cUrl := "/msinvoice/api/integrations/create-debit-credit"
        Case AllTrim(cUrlType) $ "ICE"
            cUrl := "/msinvoice/api/integrations/create-invoice/product-reached-by-ice"
		Case AllTrim(cUrlType) $ "Archivo-Pdf"
            cUrl := "/msinvoice/api/integrations/by-external-id/"
        Case AllTrim(cUrlType) $ "Archivo-Xml"
            cUrl := "/msinvoice/api/integrations/by-external-id/"
        Case AllTrim(cUrlType) $ "Cancelacion"
            cUrl := "/msinvoice/api/integrations/cancel"
        Case AllTrim(cUrlType) $ "Cancelacion-credito-debito"
            cUrl := "/msinvoice/api/integrations/cancel-create-debit"
		Case AllTrim(cUrlType) $ "Status"
			cUrl := "/msinvoice/api/integrations/invoice-status"
	EndCase

Return cUrl
Totvs custom tabs box items
defaultno
referenciapaso17

Facturas.

Bloco de código
{
 	"branchId": MV_NUMSUC,
  	"cardNumber": F2_IDRGS, Si F2_MODCONS = "2"
  	"customerCode": A1_COD,
  	"details": [
    	{
      	"concept": B1_DESC, Donde B1_COD = D2_COD
      	"discountAmount": D2_DESCON,
      	"productCode": D2_COD,
      	"quantity": D2_QUANT,
      	"sequence": D2_ITEM,
      	"subtotal": D2_TOTAL, Si D2_DESCON > 0 se suma
      	"unitPrice": D2_TOTAL / D2_QUANT
    	}
  	],
  	"documentComplement": A1_CLDOCID, Si A1_CLDOCID está informado.
  	"documentNumber": A1_CGC,
  	"documentTypeCode": A1_TIPDOC,
  	"emailNotification": A1_EMAIL,
  	"exchangeRate": F2_TXMOEDA, Si SF2->F2_MOEDA <> 1
  	"extraCustomerAddress": A1_END,
  	"id": F2_SERIE + F2_DOC,
  	"invoiceNumber": F2_DOC,
  	"name": A1_NOME,
  	"paymentMethodType": F2_MODCONS
}

Crédito.

Bloco de código
{
	"branchId": MV_NUMSUC,
  	"creditDebitNoteNumber": F1_DOC,
  	"customerCode": A1_COD,
  	"details": [
    	{
      	"concept": B1_DESC, Donde B1_COD = D2_COD
      	"detailTransaction": "ORIGINAL",
      	"discountAmount": D2_DESCON, De la factura original
      	"productCode": D2_COD, De la factura original
      	"quantity": D2_QUANT, De la factura original
      	"subtotal": D2_TOTAL, De la factura original, Si D2_DESCON > 0 se suma
      	"unitPrice": D2_TOTAL / D2_QUANT De la factura original
    	},
		{
      	"concept": B1_DESC,  Donde B1_COD = D2_COD
      	"detailTransaction": "RETURNED",
      	"discountAmount": D1_VALDESC, 
      	"productCode": D1_COD, 
      	"quantity": D1_QUANT, 
      	"subtotal": D1_TOTAL,  Si D1_VALDESC > 0 se suma
      	"unitPrice": D1_TOTAL / D1_QUANT 
    	}
  	],
  	"documentComplement": A1_CLDOCID, Si A1_CLDOCID está informado.
  	"documentNumber": A1_CGC,
  	"documentTypeCode": A1_TIPDOC,
  	"emailNotification": A1_EMAIL,
  	"extraCustomerAddress": A1_END,
  	"id": F2_SERIE + F2_DOC, De la factura original
  	"invoiceControlCode": F2_NUMAUT, De la factura original
	"invoiceEmissionDate": F2_FECHTIM + "T" + F2_HORATRIM, De la factura original
  	"invoiceNumber": F2_DOC, De la factura original
  	"name": A1_NOME,
}

Débito.

Bloco de código
{
	"branchId": MV_NUMSUC,
  	"creditDebitNoteNumber": F2_DOC,
  	"customerCode": A1_COD,
  	"details": [
    	{
      	"concept": B1_DESC, Donde B1_COD = D2_COD
      	"detailTransaction": "ORIGINAL",
      	"discountAmount": D2_DESCON, De la factura original
      	"productCode": D2_COD, De la factura original
      	"quantity": D2_QUANT, De la factura original
      	"subtotal": D2_TOTAL, De la factura original, Si D2_DESCON > 0 se suma
      	"unitPrice": D2_TOTAL / D2_QUANT De la factura original
    	},
		{
      	"concept": B1_DESC,  Donde B1_COD = D2_COD
      	"detailTransaction": "RETURNED",
      	"discountAmount": D2_DESCON, 
      	"productCode": D2_COD, 
      	"quantity": D2_QUANT, 
      	"subtotal": D2_TOTAL,  Si D2_DESCON > 0 se suma
      	"unitPrice": D2_TOTAL / D2_QUANT 
    	}
  	],
  	"documentComplement": A1_CLDOCID, Si A1_CLDOCID está informado.
  	"documentNumber": A1_CGC,
  	"documentTypeCode": A1_TIPDOC,
  	"emailNotification": A1_EMAIL,
  	"extraCustomerAddress": A1_END,
  	"id": F2_SERIE + F2_DOC, De la factura original
  	"invoiceControlCode": F2_NUMAUT, De la factura original
	"invoiceEmissionDate": F2_FECHTIM + "T" + F2_HORATRIM, De la factura original
  	"invoiceNumber": F2_DOC, De la factura original
  	"name": A1_NOME,
}

ICE

Bloco de código
{
 	"branchId": MV_NUMSUC,
  	"cardNumber": F2_IDRGS, Si F2_MODCONS = "2"
  	"customerCode": A1_COD,
  	"details": [
    	{
		"quantityIce": D2_QTSEGUM,
		"aliquotSpecify": alicuota especifica de ICE, 
		"aliquotPercentage": % de alicuota de ICE,
		"markIce": 1 si tiene calculo de ICE, 2 si no tiene calculo de ICE ,
      	"concept": B1_DESC, Donde B1_COD = D2_COD
      	"discountAmount": D2_DESCON,
      	"productCode": D2_COD,
      	"quantity": D2_QUANT,
      	"sequence": D2_ITEM,
      	"subtotal": D2_TOTAL, Si D2_DESCON > 0 se suma
      	"unitPrice": D2_TOTAL / D2_QUANT
    	}
  	],
  	"documentComplement": A1_CLDOCID, Si A1_CLDOCID está informado.
  	"documentNumber": A1_CGC,
  	"documentTypeCode": A1_TIPDOC,
  	"emailNotification": A1_EMAIL,
  	"exchangeRate": F2_TXMOEDA, Si SF2->F2_MOEDA <> 1
  	"extraCustomerAddress": A1_END,
  	"id": F2_SERIE + F2_DOC,
  	"invoiceNumber": F2_DOC,
  	"name": A1_NOME,
  	"paymentMethodType": F2_MODCONS
}

Exportación

Bloco de código
{
 	"branchId": MV_NUMSUC,
  	"cardNumber": F2_IDRGS, Si F2_MODCONS = "2"
  	"customerCode": A1_COD,
  	"details": [
    	{
      	"concept": B1_DESC, Donde B1_COD = D2_COD
      	"productCode": D2_COD,
      	"quantity": D2_QUANT,
      	"sequence": D2_ITEM,
      	"subtotal": D2_TOTAL
      	"unitPrice": D2_TOTAL / D2_QUANT
    	}
  	],
  	"documentComplement": A1_CLDOCID, Si A1_CLDOCID está informado.
  	"documentNumber": A1_CGC,
  	"documentTypeCode": A1_TIPDOC,
  	"emailNotification": A1_EMAIL,
  	"exchangeRate": F2_TXMOEDA, Si SF2->F2_MOEDA <> 1
  	"extraCustomerAddress": A1_END,
  	"id": F2_SERIE + F2_DOC,
  	"invoiceNumber": F2_DOC,
  	"name": A1_NOME,
  	"paymentMethodType": F2_MODCONS,
	"countryCode": YA_CODERP, Donde F2_PAISENT = YA_CODGI 
	"destinationPlace": F2_DESTPLA,
	"destinationPort": F2_DESTPOR,
	"incoterm": F2_INCOTER,
	"incotermDetail": YJ_DESCR, Donde F2_INCOTER = YJ_COD    
}

Cancelación

Bloco de código
{
  "cuf": F2_NUMAUT,
  "reason": Descripción de la cancelación
}

...