One API for Gov, Open Banking, Blockchains, and more data sources in Mexico and LATAM

Syncfy • Blog

December 16, 2019

It’s been a long road since we first introduced our API for open banking and fiscal capabilities in Mexico. After working with customers of all sizes and from different markets, we feel thankful and proud that Syncfy® is trusted by many, from freelancers and startups to large corporations, ERP and accounting technologies, money lenders, family offices, wealth management firms, and well-known banks.

While our focus is Mexico and LATAM, Syncfy® today serves 12 countries and processes data from 200,000+ logins daily, millions of electronic invoices per month, 74 institutions (including personal, business, corporate and government services), 4 blockchains, PayPal and the major crypto exchanges.

You can find the full list of institutions we support here: https://syncfy.com/w/en/sync/site/coverage

Note: If your favorite institution isn’t on the list, please let us know! Just signup at www.paybook.com and request it from the bank aggregation wizard. It often takes only 2 to 4 days for us to have it ready for you!.

Fiscal and other Government Services

E-Invoice: Syncfy® not only allows you to pull inbound and outbound electronic invoices, but it also lets you query invoices to check various statuses, such as if is a legitimate invoice, If it has been canceled, or if a customer or supplier appears on the SAT blacklist.

Tax Returns, AFORE and ID Validation: You can also download tax returns, validate a citizen’s identity by connecting to the Registro Nacional de Población (RENAPO) and the Instituto Nacional Electoral (INE), connect to the Mexican Pension System (Sistema de Ahorro para el Retiro) to get AFORE information.

High Availability for E-Invoice Stamping: In order to issue electronic invoices in Mexico, you need to be registered and authorized by the fiscal authority (SAT). Only government-approved entities called PACs (Proveedores Autorizados de Certificación) can generate the required digital stamps, so, to create invoices, you need a PAC, period. Syncfy® connects to multiple PACs and monitors their performance to offer a load-balance style service, thus delivering a high-availability and fail-over solution for issuing, stamping and sending electronic invoices.

Let’s get a little more technical

As software developers, we built our API with the focus on creating the fastest and easiest way to integrate it in any solution and environment. We have extensive documentation, resources of code samples, snippets, widgets, and a dashboard that keeps you up-to-date on account statuses, manage plans, customize your widget and give you some debugging tools.

Documentation: https://www.paybook.com/w/en/sync/public/app/(section:docs)
Open Source Repositories: www.github.com/paybook
* For BackEnd: PHP, Python, Go, .NET, nodeJS, Java and Ruby
* For FrontEnd: Angular and React
* for Mobile: iOS and Android
* for a Docker Container: Get an open source and fully operational built-in system in python-mongo-angularJS plug&play in your favorite cloud service that includes: SignUp, login, financial aggregation wizard, transactions visualization, transaction detail and user settings.
Syncfy® Widget: https://www.npmjs.com/package/@paybook/sync-widget

* Would you like to contribute in one or more repos? Send a message to hello[at]paybook[dot]com

What do you get?

Dashboard: After Signing Up https://syncfy.com/w/en/sync/signup, you will get access to the Syncfy® Dashboard where you will find your sandbox and production API keys, see the live status of every institution, manage your data plan and billing info, and gain access to documentation, support forums, code resources, and live chat.

Paybook Syncfy® Dashboard

Data aggregation wizard widget: We have created Syncfy® Widget, a code snippet that you can embed into your app or platform as a widget to display a white-labeled and fully customizable institution aggregation wizard. It is available for web, iOS, and Android.

Syncfy® Widget Builder

Installation: The Syncfy® Widget can be installed via a npm package.
npm install --save @paybook/sync-widget

Integration: Import Syncfy® Widget Styles and the Class
import "@paybook/sync-widget/dist/widget.css";
import SyncWidget from "@paybook/sync-widget";

Usage: To create an instance of SyncWidget, you need to create an element in the DOM with a unique selector.

<div id="widget"></div>

Once you have the element, you’re ready to instantiate a new SyncWidget with your desired configuration.

// Any of the following formats may be used

var syncWidget = new SyncWidget("sync_token");

var syncWidget = new SyncWidget({
token: "sync_token"
});

var syncWidget = new SyncWidget({
token: "sync_token",
element: "#widget",
config: {
locale: "es",
entrypoint: {
country: "MX"
}
}
});

For detailed documentation on how to integrate the Syncfy® Widget please visit https://www.npmjs.com/package/@paybook/sync-widget

Sync Connect Widget in Action: The following animation shows Syncfy® Widget in action on a production web environment. Oh! By the way.., the widget is responsive ready.

Fresh data through Webhooks: Setup an HTTP callback to your desired URL. Syncfy® will invoke your URL each time data is updated to help you stay up to date with the latest changes.

{ 
   "event":"refresh",
   "id_job":"5df6bc410d76cd51ad244b14",
   "id_job_uuid":"5df6bc410d76cd51ad244b13",
   "id_credential":"5de6fb8991c068339f3434a0",
   "id_user":"5807c5b689432125718b45dd",
   "id_external":"5807c5b689432125718b45dd",
   "id_site":"56cf5728784806f72b8b4568",
   "id_site_organization":"56cf4ff5784806152c8b4567",
   "id_site_organization_type":"56cf4f5b784806cf028b4568",
   "endpoints":{ 
      "credential":[ 
         "\/v1\/credentials\/5de6fb8991c068339f3434a0"
      ],
      "attachments": [
         "\/v1\/attachments?id_credential=5de6fb8991c068339f3434a0&dt_refresh_from=1576094922&dt_refresh_to=1576451140&limit=5000&skip=0&wbhk=1"
      ],
      "transactions":[ 
         "\/v1\/transactions?id_credential=5de6fb8991c068339f3434a0&dt_refresh_from=1576094922&dt_refresh_to=1576451140&limit=5000&skip=0&wbhk=1"
      ]
   }
}

Bank transaction sample

{
"id_transaction": "5df537bafb0f301322565ffc",
"id_account": "5ddacdd081f09265470071ef",
"id_account_type": "520d3aa93b8e778e0d000000",
"id_credential": "5ddacdc99933bd75c55939c9",
"id_currency": "523a25953b8e77910e8b4567",
"id_disable_type": null,
"id_external": "5ddabe5ff587d5452f0b9b46",
"id_site": "5ac63e14056f2906067c4fb2",
"id_site_organization": "5ac63e14056f2906067c4fb1",
"id_site_organization_type": "56cf4f5b784806cf028b4568",
"id_user": "5ddabe7b595bf314ab7916e5",
"is_account_disable": 0,
"is_deleted": 0,
"is_disable": 0,
"is_pending": 0,
"description": "McDonald's",
"amount": -14.95,
"currency": "USD",
"attachments": [],
"extra": null,
"reference": null,
"keywords": null,
"dt_transaction": 1576299600,
"dt_refresh": 1576351674,
"dt_disable": null,
"dt_deleted": null
}

E-Invoice from SAT (fiscal authority in Mexico) JSON sample

{ 
"CFDI:COMPROBANTE":{
"XMLNS:XSI":"http://www.w3.org/2001/XMLSchema-instance",
"XSI:SCHEMALOCATION":"http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd",
"VERSION":"3.3",
"SERIE":"A",
"FOLIO":"708",
"FECHA":"2019-01-01T11:27:54",
"SELLO":"F2flQ+K41jo9rJxGLiRUkOy411oHX+WOY/2Gmcr3aWhqzc/B9IWMSwyT1eEzDO47GKVlkO5PNKBJC2csAfIfhj24F9T29hczZbDy1V+gj/ptkl7Tb2Ub5avaebCCk2a0DcoErzRNnZWgOafyAk8Aw3uJj7E18Qc8gj3RdaFQafIF5QvlrZv/2ZjRJ1nXdJbJQGv9rASmRgATZt3a4cwN8U4+Qa4JfuM9+ADwwhkefl24FfUaJDQHPqFahSOW7V81pg==",
"FORMAPAGO":"03",
"NOCERTIFICADO":"00001000000407752030",
"CERTIFICADO":"MIIF/agAwIBAgIUMDAwMDEwMDAwMDA0MDc3NTIwMzAwDQYJKoZIhvcNAQELBQAwggGyMTgwNgYDVQQDDC9BLkMuIGRlbCBTZXJ2aWNpbyBkZSBBZG1pbmlzdHJhY2nDs24gVHJpYnV0YXJpYTEvMC0GA1UECgwmU2VydmljaW8gZGUgQWRtaW5pc3RyYWNpw7NuIFRyaWJ1dGFyaWExODA2BgNVBAsML0FkbWluaXN0cmFjacOzbiBkZSBTZWd1cmlkYWQgZGUgbGEgSW5mb3JtYWNpw7NuMR8wHQYJKoZIhvcNAQkBFhBhY29kc0BzYXQuZ29iLm14MSYwJAYDVQQJDB1Bdi4gSGlkYWxnbyA3NywgQ29sLiBHdWVycmVybzEOMAwGA1UEEQwFMDYzMDAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBEaXN0cml0byBGZWRlcmFsMRQwEgYDVQQHDAtDdWF1aHTDqW1vYzEVMBMGA1UELRMMU0FUOTcwNzAxTk4zMV0wWwYJKoZIhvcNAQkCDE5SZXNwb25zYWJsZTogQWRtaW5pc3RyYWNpw7NuIENlbnRyYWwgZGUgU2VydmljaW9zIFRyaWJ1dGFyaW9zIGFsIENvbnRyaWJ1eWVudGUwHhcNMTcxMDA5MjAwNDU0WhcNMjExMDA5MjAwNDU0WjCBnjEXMBUGA1UEAxMORU5FIEFMIENVQk8gU0MxFzAVBgNVBCkTDkVORSBBTCBDVUJPIFNDMRcwFQYDVQQKEw5FTkUgQUwgQ1VCTyBTQzElMCMGA1UELRMcRUNVMDgwNjMwMzlBIC8gTU9SQzc4MDUxMTdFMzEeMBwGA1UEBRMVIC8gTU9SQzc4MDUxMUhDTE5ETDE3MQowCAYDVQQLEwExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsoyY7ZviXD/zOur8CfZxMRWx1iqkQTC9WSY0EJsRO8hF5Pom6tTcQWbSqDpMrpTi0QSl+UgbEOqYLZzvyUzrpfrcsas50Wy6VHC9gfn9BXsOH/DYW7B3DdiDV3/jn1+1zXPIc8ckE+i8gc6se8mQHFUhK8BWDaWZRpsCSyg7lWEGYy/2vbj9/1zVmd2TsSI+uEPLTQvF2H7cJ2JkLDvq731y4FRByylVjchoqjH2QvBBeUtGpH6FWhjUOHKci0ye2cd7LituL+aHmj+TqS9JnShJzlcP8HCqWrwNTD9+V2tX2K2xePF1qFvWXuLawzplXYOOmIXvqRrvdZWsmF+/zHGWGU3D6zKrkA7Gj2WFYhJzYVZPC3L0Mpr0FEPD3ok/ZvmCWqaUzxjhDu+AUf8eUQqnZmv6jOefBeavH1po9vQCABpD0fUV4fI9dhM3LkQyKMHdOMmxQIX0ZrpGmkeVf5YpxXndYzQskuOHlfD/tNAqk2omIp1aPaeZJP9PjcO/KADVzCalBu72xEpGjxza2aaNxPEaXRjWNtf1yHS3yccgbq76O3NPRSZC5OrTnX+DgOQXnJeEVQKwdrIkeKnqwAhfLx/3hvi7zM6G9XqzfUZ1MOQMyV/WQsk+EDoe800cdJfznt//zjyshJ2xhWLR9Q5dLXSJNZj1wwfMOhvHJOG59pZqQ7RsNZpz1NbiRwLblafXWfKi9wxZQ+kjWppV89ci87ZMuDZZwc4eWqSCbxjWSwIiTpoAuaZOKl/fHVA+abXArz4ww6LvSn7lakCGd+1ewqC2iVjhG1/hg4dWnY6GStN129aOVaTAKM4T4+YxQFvVy+jv89g75SoID79kDMVD9TVBGX5+cIYBdcP7B/X6T9FHtDlpLC8pwH1yg=",
"SUBTOTAL":"1023.00",
"MONEDA":"MXN",
"TIPOCAMBIO":"1",
"TOTAL":"1102.00",
"TIPODECOMPROBANTE":"I",
"METODOPAGO":"PPD",
"LUGAREXPEDICION":"25270",
"XMLNS:CFDI":"http://www.sat.gob.mx/cfd/3",
"CFDI:EMISOR":{
"RFC":"XAXX010101000"
},
"CFDI:RECEPTOR":{
"RFC":"XAXX010101000",
"USOCFDI":"G03"
},
"CFDI:CONCEPTOS":[
{
"CFDI:CONCEPTO":{
"CLAVEPRODSERV":"81112107",
"NOIDENTIFICACION":"001",
"CANTIDAD":"1",
"CLAVEUNIDAD":"E48",
"UNIDAD":"Unidad de servicio",
"DESCRIPCION":"Servicios profesionales",
"VALORUNITARIO":"450.00",
"IMPORTE":"450.00",
"CFDI:IMPUESTOS":{
"CFDI:TRASLADOS":{
"CFDI:TRASLADO":{
"BASE":"450.00",
"IMPUESTO":"002",
"TIPOFACTOR":"Tasa",
"TASAOCUOTA":"0.160000",
"IMPORTE":"72.00"
}
}
}
}
}
],
"CFDI:IMPUESTOS":{
"TOTALIMPUESTOSTRASLADADOS":"100.00",
"CFDI:TRASLADOS":{
"CFDI:TRASLADO":{
"IMPUESTO":"002",
"TIPOFACTOR":"Tasa",
"TASAOCUOTA":"0.160000",
"IMPORTE":"100.00"
}
}
},
"CFDI:COMPLEMENTO":{
"TFD:TIMBREFISCALDIGITAL":{
"XMLNS:TFD":"http://www.sat.gob.mx/TimbreFiscalDigital",
"XSI:SCHEMALOCATION":"http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd",
"VERSION":"1.1",
"UUID":"A5440CD1-3337-4DF4-8C2E-NAP62BE99B13",
"FECHATIMBRADO":"2019-01-01T01:27:57",
"RFCPROVCERTIF":"DND070112H92",
"SELLOCFD":"IJj4vvaGiix1w6SfQfMqcd1zwEIRjj6Ke+K41jo9rJxGLiRUkOy411oHX+r7zkQawN6CtnNWvwPU7d6kLIA6rGuIBNV7ug3a32gqnamnvreqVOJoC+WOY/2Gmcr3aWhqzc/B9IWMSwyT1eEzDO47GKVlkO5PNKBJC2csAfIfhj24F9T29hczZbDy1V+gj//2ZjRJ1nXdJbJQGv9rASmRgATZt3a4cwN8U4+Qa4JfuM9+ADwwhkefl24FfUaJDQHPqFahSOW7V81pg==",
"NOCERTIFICADOSAT":"00001000000405908583",
"SELLOSAT":"8241a1u3zIJ6L7ukQKe+FpYN1Fwc6wikpBOtujnwBXh/WbrGg8RBvcFNgLyQ+sS8ZPMgHmAKQuL9zq/I0yoUsX2FZ7B8buqJ83hi+7aZ6YL4gtC5+Q0ZESUSWkrJPoP3c5Zeq/+f6SloQKyu7PTSJrKRyGzs5jrl1d6ShnO5dNvRms6P6gN4M4lMkLh1hjf0QUncHl6pUikZRCk4PNyiRI3tvqBs0dXYjuiPhuEU6rfX/+/lEA=="
}
}
}

Syncfy® Session Flow

Following you will find a quick demo video step by step of how you can integrate Syncfy® in your solution in a matter of minutes! How rad is that?

How to Integrate Paybook Syncfy® API. Step-by-step guided video: https://www.youtube.com/watch?v=MLMvXxWYjb8
By Hugo Ochoa, Software Architech at Paybook

What’s in the oven?

  • We’re expanding to support even more countries: Brazil, Guatemala, Peru, Bolivia, and El Salvador. You can find the full list of countries Syncfy® supports by clicking here.
  • Auto-Categorization in 4 different categorization templates (personal finances, business finances, SAT compliant and a template for Non-Profits).
  • Money Transfers in Mexico and ACH for payments in Mexico.
  • Deep debugging and logging tools in the dashboard.
  • Fiscal Data: Receive Metadata, XML and JSON in a single request.
  • Total integration of the open standard RFC 7519 of JSON Web Tokens to introduce the API Key Security Service that will enable you to get more control over your API Keys security, with a Multi-API Key support, roles, and permission-based schema, Syncfy® will now offer a way to link an API Key to an IP and/or to a resource.

I hope you will find this information useful. Please keep tuned, and don’t hesitate to reach out if you have any questions or would like to discuss how Syncfy® can help you. We’d be more than happy to contribute to your project.

Gerardo Treviño
Founder and CEO
www.syncfy.com
www.twitter.com/gerardotrevino_
www.linkedin.com/in/gerardotrevino