Pasos para poder timbrar una factura
- Paso 1:
Obtener un Token de acceso utilizando nuestras librerías, o en su defecto usar Token Infinito - Paso 2:
A continuación se enviara la factura (cfdi) ya sellada, esto se hará mediante alguna de nuestras librerías de su preferencia que SW sapien® pone a su disposición.
Pasos para Timbrar con el SDK de Visual Fox Pro
- Paso 1:
Crear un nuevo proyecto en FoxPro - Paso 2:
Crear una interfaz parecida a la siguiente
- Paso 3:
Dentro del botón de Timbrar XML añadir lo siguiente
123456789101112SET PROCEDURE TO 'sw-services.prg' ADDITIVEcURL = 'http://services.test.sw.com.mx/'cUser = 'demo'cPassword = '123456789'cXML = ThisForm.Tabs.TabStamp.txtXML.textcToken = GetTokenValue(Authentication(cURL, cUser, cPassword))cVersion = ThisForm.Tabs.TabStamp.cmbVersion.TextXMLaTimbrar = Stamp(cURL, cToken, cXML, cVersion)ThisForm.Tabs.TabStamp.txtResponse.text = XMLaTimbrar - Paso 4:
En este punto ya podrá timbrar un xml
La estructura de la respuesta en caso de ser exitosa seria esta (para versión 2 de timbrado):
1 2 3 4 5 6 7 |
{ "data": { "tfd": "<?xml version=\"1.0\" encoding=\"utf-8\"?><tfd:TimbreFiscalDigital xsi:schemaLocation=\"http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd\" Version=\"1.1\" UUID=\"232b6dc0-09e3-4b03-a8b4-4ed1c1fda62e\" FechaTimbrado=\"2017-05-11T17:28:32\" RfcProvCertif=\"AAA010101AAA\" SelloCFD=\"hFHbbQPvk3tb1o3s4TipRPBGG7kLyC9iRQgS4vVf3apfm1y3XJKeMkarUJ2mTy9oxSrCKbQ3X0XN0ljdEWQtc8qtV1L/arCXy+/yAfcI9pIXBg9hhFZcpRPze9NDyadrQ6bAU0nkxNgxaP1u0xGFei7jDk73WlmiRJle7WBZ81Tj2nXqISA+iiPALV7w68MdESD4JF1AmmuGcVCug7gT0rB5u2bI7S16T335jfYAohsmbwNsmtAH1hWyvtteWNY9lKtpN6/9Wi3/7+Lr9q/rEPcdCuaiiTpkyjPXgeCcPmEP/vH7+DLe2yfMcknbbOaR7MLVm/MEfoFeXMkt+xrEVw==\" NoCertificadoSAT=\"20001000000300022323\" SelloSAT=\"lKCPKv5lfVXWYm0KlO4oMD7o5OnkesES91/0CtDAmrbwOypRp1fsSeZHReL9oF+Ill37hhgKyVXobuK7TWQerrlD5kx9wCDQX35hbcIc5pMlB2/pTbblu7Ysyb2DXFUlQ2ZqBOgt3uwbZhSAoOc/kp3NAnL3vxL6FnP76Wov1LSj4ZnznrO9ILL4ES2+ySg0AzNRGZmnCoArLlHQVTjA9yJtoPsk0phtwgOrHdFQDmjWhbcCYHt1Ot0VFbgF4/kj0QgEJht5zP0hqpMkU8zIqt5+r8zdaw1ydQBqQ7YHkulbgwsgmTDNxyqHvBe9TRmFRLFj6SkOmAj8uC5MHaIVdg==\" xmlns:tfd=\"http://www.sat.gob.mx/TimbreFiscalDigital\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" />", "cfdi": "<?xml version=\"1.0\" encoding=\"utf-8\"?><cfdi:Comprobante xsi:schemaLocation=\"http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd http://www.sat.gob.mx/nomina12 http://www.sat.gob.mx/sitio_internet/cfd/nomina/nomina12.xsd\" xmlns:nomina12=\"http://www.sat.gob.mx/nomina12\" Version=\"3.3\" Serie=\"RogueOne\" Folio=\"HNFK231\" Fecha=\"2017-05-10T11:43:24\" Sello=\"hFHbbQPvk3tb1o3s4TipRPBGG7kLyC9iRQgS4vVf3apfm1y3XJKeMkarUJ2mTy9oxSrCKbQ3X0XN0ljdEWQtc8qtV1L/arCXy+/yAfcI9pIXBg9hhFZcpRPze9NDyadrQ6bAU0nkxNgxaP1u0xGFei7jDk73WlmiRJle7WBZ81Tj2nXqISA+iiPALV7w68MdESD4JF1AmmuGcVCug7gT0rB5u2bI7S16T335jfYAohsmbwNsmtAH1hWyvtteWNY9lKtpN6/9Wi3/7+Lr9q/rEPcdCuaiiTpkyjPXgeCcPmEP/vH7+DLe2yfMcknbbOaR7MLVm/MEfoFeXMkt+xrEVw==\" FormaPago=\"01\" NoCertificado=\"20001000000300022763\" Certificado=\"MIIFzDCCA7SgAwIBAgIUMjAwMDEwMDAwMDAzMDAwMjI3NjMwDQYJKoZIhvcNAQELBQAwggFmMSAwHgYDVQQDDBdBLkMuIDIgZGUgcHJ1ZWJhcyg0MDk2KTEvMC0GA1UECgwmU2VydmljaW8gZGUgQWRtaW5pc3RyYWNpw7NuIFRyaWJ1dGFyaWExODA2BgNVBAsML0FkbWluaXN0cmFjacOzbiBkZSBTZWd1cmlkYWQgZGUgbGEgSW5mb3JtYWNpw7NuMSkwJwYJKoZIhvcNAQkBFhphc2lzbmV0QHBydWViYXMuc2F0LmdvYi5teDEmMCQGA1UECQwdQXYuIEhpZGFsZ28gNzcsIENvbC4gR3VlcnJlcm8xDjAMBgNVBBEMBTA2MzAwMQswCQYDVQQGEwJNWDEZMBcGA1UECAwQRGlzdHJpdG8gRmVkZXJhbDESMBAGA1UEBwwJQ295b2Fjw6FuMRUwEwYDVQQtEwxTQVQ5NzA3MDFOTjMxITAfBgkqhkiG9w0BCQIMElJlc3BvbnNhYmxlOiBBQ0RNQTAeFw0xNjEwMjEyMDU0MDFaFw0yMDEwMjEyMDU0MDFaMIG4MRwwGgYDVQQDExNJTk1PQiBFRE1BIFNBIERFIENWMRwwGgYDVQQpExNJTk1PQiBFRE1BIFNBIERFIENWMRwwGgYDVQQKExNJTk1PQiBFRE1BIFNBIERFIENWMSUwIwYDVQQtExxUTUU5NjA3MDlMUjIgLyBIRUdUNzYxMDAzNFMyMR4wHAYDVQQFExUgLyBIRUdUNzYxMDAzTURGUk5OMDkxFTATBgNVBAsUDFBydWViYXNfQ0ZESTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJgqZ+ezJyeJXACMK8ehFp64ecAl8jfYKB4xMJy0RRb+qXKRewxtLojiTFECWdCx283tEkdHUj8bLzsCfFAMnsP2G4CS2aE2/1LLCHoZpdImaasLX1YJL2bUzxKQKi+RlL63M49yyfvGBjEgG7f6TMwVSUSbgDFpYAFHqx4LK+p2GVHuUUzoiIm8xRYaW1YPMa457be5W8wsjw0nGRLfo8hRIjPHedkwtcqYPj57xsPXMfxWP45vOlW7GuLkMq/ECccHxJiPitiThcDFKlf/mAR0kaux9LTffvWilA2uQAlyVyNVjqfdpvDdq4ycTaoIMYKrv/9R31dQ0AmdXT8cfbcCAwEAAaMdMBswDAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCBsAwDQYJKoZIhvcNAQELBQADggIBAF5kwvyBUp7Ad99DktzEhrJwnMQyhA79sVc4Ns2SpLON/cV244ZnG5hgXk2awKbHEiSj/ke7EhgEpGS818ERsj7eW/wRgugBZraVn48GOn6qX0uV9EjwWEGK5uT6IDN25igeXxVJHP3hn40fX2BPqsaqRP49YMxcOWD7mhWRh2E6BnoKYjgHVJbavUN6pjCBLmy4hKwfitbjqtUiiWOmBDvvmLFpEGXG8OXn2xladBUkfC4sfgMBpVZVuEV7RqAgCSCZ2xo6UEyd4KKpTjbdp0Tj5gw+NmiovAZHwU/NPRojN95f/ibj7268LBr2DcO5rlmr7szwJ3dtwu86N7HkUxW3vo3qGHTVK2HRBArda9VN4pEyIL0Qt46ci5rFYXB2cCWU8XAh8gaZnxJoNTSY4A4yMJG9UfM/2rHC+YvOouIZ2kJZ2h+SwKOYGJOX749P/QeF4Z/L/ODs3E08bV7IQna1ZHmd6ydYhZVpheMgNoNnIG6jdzfyuo8NZAIIW/JGmPTANPCwTSHqBY1lmnp/oZNrkxGWtGhbltRfBoFQfTqCZALm6fsVeQqHQ6a7W45FJ2RD1nltPSdniMo3Iz/t4eHCjFvM3aORvA9oJEPr5ZzzBV2fQOXkyS8QdsSVb5ZmJG+FqZKKlsiaX6xhqK6gqTLyJN+7/yr9T/ZZ4M7VrRoL\" SubTotal=\"200.00\" Moneda=\"MXN\" TipoCambio=\"1\" Total=\"603.28\" TipoDeComprobante=\"I\" MetodoPago=\"PUE\" LugarExpedicion=\"06300\" xmlns:cfdi=\"http://www.sat.gob.mx/cfd/3\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><cfdi:Emisor Rfc=\"TME960709LR2\" Nombre=\"INMOB EDMA SA DE CV \" RegimenFiscal=\"601\" /><cfdi:Receptor Rfc=\"AAA010101AAA\" Nombre=\"Rodolfo Carranza Ramos\" UsoCFDI=\"G03\" /><cfdi:Conceptos><cfdi:Concepto ClaveProdServ=\"50211503\" NoIdentificacion=\"UT421511\" Cantidad=\"1\" ClaveUnidad=\"H87\" Unidad=\"Pieza\" Descripcion=\"Cigarros\" ValorUnitario=\"200.00\" Importe=\"200.00\"><cfdi:Impuestos><cfdi:Traslados><cfdi:Traslado Base=\"200.00\" Impuesto=\"002\" TipoFactor=\"Tasa\" TasaOCuota=\"0.160000\" Importe=\"32.08\" /><cfdi:Traslado Base=\"232.00\" Impuesto=\"003\" TipoFactor=\"Tasa\" TasaOCuota=\"1.600000\" Importe=\"371.20\" /></cfdi:Traslados></cfdi:Impuestos></cfdi:Concepto></cfdi:Conceptos><cfdi:Impuestos TotalImpuestosTrasladados=\"403.28\"><cfdi:Traslados><cfdi:Traslado Impuesto=\"002\" TipoFactor=\"Tasa\" TasaOCuota=\"0.160000\" Importe=\"32.08\" /><cfdi:Traslado Impuesto=\"003\" TipoFactor=\"Tasa\" TasaOCuota=\"1.600000\" Importe=\"371.20\" /></cfdi:Traslados></cfdi:Impuestos><cfdi:Complemento><nomina12:Nomina Version=\"1.2\" TipoNomina=\"O\" FechaPago=\"2016-09-09\" FechaInicialPago=\"2016-09-15\" FechaFinalPago=\"2016-09-30\" NumDiasPagados=\"15\" TotalDeducciones=\"112.03\" TotalPercepciones=\"115.00\"><nomina12:Emisor RegistroPatronal=\"A1234567890\" /><nomina12:Receptor Curp=\"AAAA001030HSPBBB00\" NumSeguridadSocial=\"12345678901\" FechaInicioRelLaboral=\"2013-09-21\" Antigüedad=\"P158W\" TipoContrato=\"01\" Sindicalizado=\"No\" TipoJornada=\"06\" TipoRegimen=\"02\" NumEmpleado=\"123\" Departamento=\"Departamento\" Puesto=\"Puesto\" RiesgoPuesto=\"1\" PeriodicidadPago=\"10\" Banco=\"012\" CuentaBancaria=\"5512345678\" SalarioBaseCotApor=\"1234.12\" SalarioDiarioIntegrado=\"1234.12\" ClaveEntFed=\"DIF\" /><nomina12:Percepciones TotalSueldos=\"115.00\" TotalExento=\"59.00\" TotalGravado=\"56.00\"><nomina12:Percepcion Clave=\"012\" Concepto=\"Concepto Tipo 012\" ImporteExento=\"8.00\" ImporteGravado=\"2.00\" TipoPercepcion=\"012\" /><nomina12:Percepcion Clave=\"001\" Concepto=\"Concepto Tipo 001\" ImporteExento=\"1.00\" ImporteGravado=\"2.00\" TipoPercepcion=\"001\" /><nomina12:Percepcion Clave=\"014\" Concepto=\"Concepto Tipo 014\" ImporteExento=\"50.00\" ImporteGravado=\"52.00\" TipoPercepcion=\"014\" /></nomina12:Percepciones><nomina12:Deducciones TotalOtrasDeducciones=\"112.03\"><nomina12:Deduccion TipoDeduccion=\"001\" Clave=\"001\" Concepto=\"Deducción Tipo 001\" Importe=\"22.53\" /><nomina12:Deduccion TipoDeduccion=\"018\" Clave=\"018\" Concepto=\"Deducción Tipo 018\" Importe=\"71.60\" /><nomina12:Deduccion TipoDeduccion=\"019\" Clave=\"019\" Concepto=\"Deducción Tipo 019\" Importe=\"17.90\" /></nomina12:Deducciones><nomina12:Incapacidades><nomina12:Incapacidad DiasIncapacidad=\"1\" TipoIncapacidad=\"02\" ImporteMonetario=\"102.00\" /></nomina12:Incapacidades></nomina12:Nomina><tfd:TimbreFiscalDigital xsi:schemaLocation=\"http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd\" Version=\"1.1\" UUID=\"232b6dc0-09e3-4b03-a8b4-4ed1c1fda62e\" FechaTimbrado=\"2017-05-11T17:28:32\" RfcProvCertif=\"AAA010101AAA\" SelloCFD=\"hFHbbQPvk3tb1o3s4TipRPBGG7kLyC9iRQgS4vVf3apfm1y3XJKeMkarUJ2mTy9oxSrCKbQ3X0XN0ljdEWQtc8qtV1L/arCXy+/yAfcI9pIXBg9hhFZcpRPze9NDyadrQ6bAU0nkxNgxaP1u0xGFei7jDk73WlmiRJle7WBZ81Tj2nXqISA+iiPALV7w68MdESD4JF1AmmuGcVCug7gT0rB5u2bI7S16T335jfYAohsmbwNsmtAH1hWyvtteWNY9lKtpN6/9Wi3/7+Lr9q/rEPcdCuaiiTpkyjPXgeCcPmEP/vH7+DLe2yfMcknbbOaR7MLVm/MEfoFeXMkt+xrEVw==\" NoCertificadoSAT=\"20001000000300022323\" SelloSAT=\"lKCPKv5lfVXWYm0KlO4oMD7o5OnkesES91/0CtDAmrbwOypRp1fsSeZHReL9oF+Ill37hhgKyVXobuK7TWQerrlD5kx9wCDQX35hbcIc5pMlB2/pTbblu7Ysyb2DXFUlQ2ZqBOgt3uwbZhSAoOc/kp3NAnL3vxL6FnP76Wov1LSj4ZnznrO9ILL4ES2+ySg0AzNRGZmnCoArLlHQVTjA9yJtoPsk0phtwgOrHdFQDmjWhbcCYHt1Ot0VFbgF4/kj0QgEJht5zP0hqpMkU8zIqt5+r8zdaw1ydQBqQ7YHkulbgwsgmTDNxyqHvBe9TRmFRLFj6SkOmAj8uC5MHaIVdg==\" xmlns:tfd=\"http://www.sat.gob.mx/TimbreFiscalDigital\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" /></cfdi:Complemento></cfdi:Comprobante>" }, "status": "success" } |
En la que dentro del nodo “data”, encontraremos el nodo “tfd”, que donde se encuentra el complemento timbre fiscal, así como el nodo “cfdi”, que es donde se encuentra el comprobante con el timbre ya insertado.
Dichos elementos tiene escapados todas las comillas dobles con una diagonal invertida (\).
Descarga el ejemplo
El proyecto de ejemplo utilizado en esta explicación se encuentra disponible en nuestro repositorio de GitHub. Haría falta descargar el repositorio y una vez descargado, ingresar a la carpeta TEST donde se encontrará un proyecto de ejemplo.