API Doc

Welcome to Api/v5/

Summary

Understanding Url's

Render Mode

Activate

Check IBAN

Currencies

ISO 4217

Exchange

Geolocation

Spanish NIF

Spanish CIF

To reset your APIKEY

Users

Access counter for free users

Script pdf server

Credit card validation

Barcodes

Qrcodes

Understanding the URL's

Any service call has https://code.pedroruizhidalgo.es/api/v5 as API root. Let's call it in this manual [apiroot]

For every service call you need to provide your own [apikey]. This can be obtained in https://pedroruizhidalgo.es/createapiaccount.

The [apikey] consists in a string of 32 character length.

The general url format is [apiroot]/[service]/[renderway]/[apikey].

For example: To get your user data visit [apiroot]/user/json/[apikey]

go to summary
Render mode

There are three ways to render the results:

  • json
  • xml
  • html

Ex: If you want to get your geolocation data in json format, call it like. [apiroot]/users/json/[apikey].

go to summary
Activate

A successfull process will display this screen:

After create your account you will receive an email like :

Of course, activation service has the three render ways. Nevertheless, if you follow the email's link, shall render in html, unless you type manually the url. Like this:

[apiroot]/activation/[rendermode]/[apikey]

go to summary
Check Iban

Access mode [apiroot]/checkiban/[rendermode]/[iban]/[apikey]

(This example was obtained when searching in google "example iban".)

{
    "account": "0532013000",
    "bank": "37040044",
    "bban": "370400440532013000",
    "branch": "",
    "checksum": "89",
    "country": "DE",
    "country_central": "Deutsche Bundesbank",
    "country_central_url": "http://www.bundesbank.de/",
    "human_format": "DE89 3704 0044 0532 0130 00",
    "nationalchecksum": ""
}
      

As you can see, we provide the iban decomposed format, human readable format, the sum of control and the national bank of this country, among others.

If iban is not valid we provide:

{
    "iban": "DE89370400440532013014",
    "validate": "false"
}      
      
go to summary
Currencies exchanges

Access mode: [apiroot]/currencies/[rendermode]/[apikey]

Bellow are shown not real exchanges. We present random data.

{
  "datetime": "2018-11-16 01:48:48",
  "currency": "EUR",
  "AED": 4.6461471457249,
  "AFN": 9.6776460817445,
  "ALL": 4.2200323237199,
  "AMD": 9.8393289446083,
  "ANG": 3.7313931429439,
  "AOA": 6.0834603878127,
  "ARS": 5.9316792981381,
  "AUD": 8.0762679325772,
  "AWG": 8.1894187187727,
  "AZN": 12.978258233507,
  "BAM": 6.1529912697864,
  "BBD": 11.206022550914,
  "BDT": 9.1823388739407,
  "BGN": 12.456632924944,
  "BHD": 6.7815461902793,
  "BIF": 4.9135891664371,
  "BMD": 6.7127781411227,
  "BND": 8.1445180453102,
  "BOB": 6.2242701520325,
  "BRL": 8.7677800859175,
  "BSD": 6.1976218648244,
  "BTC": 3.3241508250703,
  "BTN": 6.4592368120603,
  "BWP": 4.071466806378,
  "BYN": 4.3246796467922,
  "BYR": 8.5919133190028,
  "BZD": 7.8266520345708,
  "CAD": 11.517522925286,
  "CDF": 7.547173770865,
  "CHF": 7.4345128747795,
  "CLF": 7.9374379790097,
  "CLP": 3.6851411772357,
  "CNY": 5.9307642974568,
  "COP": 8.1828722959305,
  "CRC": 8.6596290085742,
  "CUC": 10.132776836461,
  "CUP": 5.2037863490189,
  "CVE": 4.2651799634403,
  "CZK": 7.584960799471,
  "DJF": 6.2507793755507,
  "DKK": 5.2409218965289,
  "DOP": 5.8492308416633,
  "DZD": 5.5823156109929,
  "EGP": 5.4981067788313,
  "ERN": 6.8574757547385,
  "ETB": 7.8026076861669,
  "EUR": 1,
  "FJD": 3.9938584598684,
  "FKP": 8.8001287499443,
  "GBP": 7.3488376542688,
  "GEL": 3.2968148217987,
  "GGP": 7.5475570943894,
  "GHS": 5.8086857501458,
  "GIP": 6.4241706698314,
  "GMD": 3.5951970967442,
  "GNF": 6.7786199109529,
  "GTQ": 5.9462476190861,
  "GYD": 5.6016798348174,
  "HKD": 9.5022646461158,
  "HNL": 7.8784914998703,
  "HRK": 4.9241436915119,
  "HTG": 8.7317052184286,
  "HUF": 5.8574888267822,
  "IDR": 9.0719950627871,
  "ILS": 9.630584616042,
  "IMP": 9.3573048800963,
  "INR": 7.1654400411832,
  "IQD": 7.6616257935118,
  "IRR": 11.502323060065,
  "ISK": 6.152962762468,
  "JEP": 7.1574626738007,
  "JMD": 8.4325204600731,
  "JOD": 4.7818723995154,
  "JPY": 6.0339096910478,
  "KES": 5.793513918665,
  "KGS": 7.2571004546513,
  "KHR": 8.5363145356701,
  "KMF": 6.7414181398886,
  "KPW": 4.5059593322249,
  "KRW": 5.0063942312293,
  "KWD": 12.915457213258,
  "KYD": 8.4448755092197,
  "KZT": 9.2969559795675,
  "LAK": 6.3127564169992,
  "LBP": 7.7276708594187,
  "LKR": 5.9339858716978,
  "LRD": 8.0808869740371,
  "LSL": 5.1316651772389,
  "LTL": 4.8106624459897,
  "LVL": 8.8610470298962,
  "LYD": 9.9823649241507,
  "MAD": 9.0589773454978,
  "MDL": 5.437692419364,
  "MGA": 8.7870756968796,
  "MKD": 8.4900048065418,
  "MMK": 9.3291384867994,
  "MNT": 3.9479079264905,
  "MOP": 8.2350569759659,
  "MRO": 6.3773925227008,
  "MUR": 7.6886504086147,
  "MVR": 5.2851890284965,
  "MWK": 9.2311064876761,
  "MXN": 5.2310951376479,
  "MYR": 5.6989256314463,
  "MZN": 10.583518670212,
  "NAD": 10.513183967915,
  "NGN": 9.2545715618201,
  "NIO": 4.0026489081805,
  "NOK": 8.0990330623924,
  "NPR": 10.536949940742,
  "NZD": 7.271527229469,
  "OMR": 7.8590375338025,
  "PAB": 4.0768830678784,
  "PEN": 7.8809628895861,
  "PGK": 8.7199254616722,
  "PHP": 7.1271019327115,
  "PKR": 7.7604353398832,
  "PLN": 5.8555563897153,
  "PYG": 3.8839451078716,
  "QAR": 7.8361941584554,
  "RON": 5.2243631930204,
  "RSD": 7.0993025703818,
  "RUB": 8.4133301113794,
  "RWF": 4.8989829499735,
  "SAR": 7.0682272930016,
  "SBD": 10.865205054109,
  "SCR": 9.6989246628708,
  "SDG": 9.4821194501045,
  "SEK": 4.9046467728469,
  "SGD": 11.355499138755,
  "SHP": 6.0644627521115,
  "SLL": 5.6119492913652,
  "SOS": 7.6638092140964,
  "SRD": 5.6285722929186,
  "STD": 4.7190859595868,
  "SVC": 8.3556263434494,
  "SYP": 7.4611010437184,
  "SZL": 6.2312483611662,
  "THB": 6.3255493684325,
  "TJS": 6.5990743402387,
  "TMT": 5.2343363627951,
  "TND": 5.353273607955,
  "TOP": 6.3218200282761,
  "TRY": 7.9211605628585,
  "TTD": 3.726481734182,
  "TWD": 6.8280462589246,
  "TZS": 5.8370511274957,
  "UAH": 5.0873666326922,
  "UGX": 7.6988494795276,
  "USD": 5.1856136485867,
  "UYU": 11.925372363499,
  "UZS": 9.2625725065649,
  "VEF": 8.9998103822581,
  "VND": 4.6529321226538,
  "VUV": 7.605392567164,
  "WST": 8.6080268456638,
  "XAF": 8.9221517392072,
  "XAG": 5.4560064861812,
  "XAU": 3.0381078338428,
  "XCD": 3.1814454887907,
  "XDR": 3.871404645439,
  "XOF": 5.9326726053528,
  "XPF": 6.2210763586783,
  "YER": 10.794912568664,
  "ZAR": 3.3005758641756,
  "ZMK": 5.6269343754402,
  "ZMW": 7.4960366387367,
  "ZWL": 5.11225698521
}
go to summary
ISO 4217 Currency Codes

The ISO 4217 code list is used in banking and business globally.

Access mode: [apiroot]/currencies/[coin_names]/[render]/[apikey]
{
    "AED": "United Arab Emirates Dirham",
    "AFN": "Afghanistan Afghani",
    "ALL": "Albania Lek",
    "AMD": "Armenia Dram",
    "ANG": "Netherlands Antilles Guilder",
    "AOA": "Angola Kwanza",
    "ARS": "Argentina Peso",
    "AUD": "Australia Dollar",
    "AWG": "Aruba Guilder",
    "AZN": "Azerbaijan Manat",
    "BAM": "Bosnia and Herzegovina Convertible Marka",
    "BBD": "Barbados Dollar",
    "BDT": "Bangladesh Taka",
    "BGN": "Bulgaria Lev",
    "BHD": "Bahrain Dinar",
    "BIF": "Burundi Franc",
    "BMD": "Bermuda Dollar",
...
    "VEF": "Venezuela Bolívar",
    "VND": "Viet Nam Dong",
    "VUV": "Vanuatu Vatu",
    "WST": "Samoa Tala",
    "XAF": "Communauté Financière Africaine (BEAC) CFA Franc BEAC",
    "XCD": "East Caribbean Dollar",
    "XDR": "International Monetary Fund (IMF) Special Drawing Rights",
    "XOF": "Communauté Financière Africaine (BCEAO) Franc",
    "XPF": "Comptoirs Français du Pacifique (CFP) Franc",
    "YER": "Yemen Rial",
    "ZAR": "South Africa Rand",
    "ZMW": "Zambia Kwacha",
    "ZWD": "Zimbabwe Dollar"
}          
      
go to summary
Exchange service

Alias of currency service

go to summary
Geolocation

Access mode: [apiroot]/geolocation/[rendermode]/[apikey]/[optional IP address]

Call geolocation service whith out the optional IP address for get your own IP. In other words, if you do not provide an IP address, the service will proccess your current IP address.

{
    "area_code": "",
    "city": "",
    "continent": "North America",
    "continent_code": "NA",
    "country_code": "US",
    "country_name": "United States",
    "currency": "USD",
    "currency_simbol": "$",
    "currency_utf8": "$",
    "current_time": "2018-10-25 21:22:50",
    "in_eu": "no",
    "IP": "70.110.40.10",
    "latitude": "37.751",
    "longitude": "-97.822",
    "region": "",
    "region_code": "",
    "region_name": "",
    "tax_percent": false,
    "time_zone": "",
    "usdollar_to_usd": "1"
}    
  

An egyptian example.

{
    "area_code": "",
    "city": "Cairo",
    "continent": "Africa",
    "continent_code": "AF",
    "country_code": "EG",
    "country_name": "Egypt",
    "currency": "EGP",
    "currency_simbol": "£",
    "currency_utf8": "£",
    "current_time": "2018-10-25 21:24:34",
    "in_eu": "no",
    "IP": "45.100.28.10",
    "latitude": "30.0771",
    "longitude": "31.2859",
    "region": "Cairo Governorate",
    "region_code": "C",
    "region_name": "Cairo Governorate",
    "tax_percent": false,
    "time_zone": "Africa/Cairo",
    "usdollar_to_egp": "17.953"
}      
  

Another european example:

{
    "area_code": "",
    "city": "",
    "continent": "Europe",
    "continent_code": "EU",
    "country_code": "IT",
    "country_name": "Italy",
    "currency": "EUR",
    "currency_simbol": "€",
    "currency_utf8": "€",
    "current_time": "2018-10-25 21:26:12",
    "in_eu": "yes",
    "IP": "94.80.188.102",
    "latitude": "43.1479",
    "longitude": "12.1097",
    "region": "",
    "region_code": "",
    "region_name": "",
    "tax_percent": 22,
    "time_zone": "Europe/Rome",
    "usdollar_to_eur": "0.8765"
}
  

As you can observe, we convert the currency from us dollar to local.

go to summary
Spanish NIF / NIE

There are two identification documents for people in Spain. NIF (means Fiscal Identification Number), and NIE (means Foreign Identification Number).

The NIF, has eight numbers and a leter as checksum. And NIE consists in first letter (X,Y or Z), seven digits an identical letter as checksum.

This software is provided as is. We have no responsibility for the use for the end user.

Access mode: [apiroot]/spanishdni/[rendermode]/[NIF or NIE]/[apikey]

Ex: https://code.pedroruizhidalgo.es/api/v5/spanishcif/json/12378978V/[apikey]

{
    "literal": "Z",
    "numeral": "12345678",
    "raw_literal": "V",
    "validate": "false"
}
    

But I can amend it like;

https://code.pedroruizhidalgo.es/api/v5/spanishcif/json/12345678Z/[apikey], to get:

{
    "literal": "Z",
    "numeral": "12345678",
    "raw_literal": "Z",
    "validate": "true"
}
    

Let's try now with a NIE.

{
    "literal": "L",
    "numeral": "1234567",
    "raw_literal": "P",
    "validate": "false"
}
    

And now with the correct letter...

{
    "literal": "L",
    "numeral": "1234567",
    "raw_literal": "L",
    "validate": "true"
}
    

I'm sure you understand the advantages...

go to summary
Spanish CIF

Each company in Spain has a code associated with tax purposes. This code is called CIF.

The CIF code determines the type of company and the province to which it belongs. We decompose the code and present the extracted data.

Access mode: [apiroot]/spanishcif/A12345678/json/[apikey] will show...

{
  "abbreviation": "SA, SAL, SAU, SAE",
  "check_sum": 0,
  "checksum_type": "Number",
  "province": "Castellón",
  "province_code": "12",
  "raw_number": "34567",
  "raw_type": "A",
  "type": "Sociedad Anónima",
  "validate": "false"
}
   

If we correct the checsum... [apiroot]/spanishcif/A12345670/json/[apikey]

{
  "abbreviation": "SA, SAL, SAU, SAE",
  "check_sum": 0,
  "checksum_type": "Number",
  "province": "Castellón",
  "province_code": "12",
  "raw_number": "34567",
  "raw_type": "A",
  "type": "Sociedad Anónima",
  "validate": "true"
}
  

You dig it?...

go to summary
Reset APIKEY

Navigate to https://pedroruizhidalgo.es/resetapikey and follow instructions.

Enter your registered email if you are non free user, and follow instructions... Finallly, we will email you a new APIKEY.

go to summary
Users

Access way: [apiroot]/users/[rendermode]/[apikey]

Enter your registered email, and go on... We will email you a new APIKEY.

{
    "activation_code": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "active": "1",
    "can_activate": "1",
    "company": "",
    "date_creation": "2018-10-22 18:08:44",
    "date_modification": "2018-10-26 09:35:30",
    "email": "your@email.com",
    "first_name": "Free",
    "forgotten_password_code": "",
    "forgotten_password_time": "0",
    "lang": "en",
    "last_login": "2018-10-26 11:35:30",
    "last_name": "User",
    "phone": "",
    "remember_code": "",
    "username": "freeuser"
}
go to summary
Access counter for free users

Access mode: [apiroot]/getconnectioncounter/[rendermode]/[apikey]

It does not make sense for users who are not free.

{
    "count": 9,
    "user": "freeuser"
}
   

If you are not a free user will obtain that:

{
  "count": "Your plan is not countable",
  "user": "nonfreeuser"
}
   
go to summary
Pdf file server

Access mode: [apiroot]/servepdf/[rendermode]/[apikey]

The post format content is divided in sections. Each section name must be enclosed in square brackets. These are:

  • [header]
  • [armor]
  • [loop]
  • [afterloop]
  • [footer]
  • [pagename]
  • [filename]
  • [utf8]

We use the FPDF syntax. Every single line content is separated by comma, and its structure is very simple. The first item must be the PFDF, function name (see manual) and it follows, allways separated by comma, the rest of params. Send the script using http POST as raw text.

[armor] is a end part of [head].

[afterloop] is executed immediately after [loop] section.

[filename] only needs one only row, where you describe the final name of your document.

If you declare [utf8] (as void section) your final document will be utf8 encoded.

[header]
image,assets/img/logo.png,65,13,15,15
SetFont,Arial,B,13
cell,30
cell,120,10,API SERVICES V5,0,0,C
ln,5
setfont,arial,,8
cell,30
cell,120,8,@pedroruizhidalg,0,1,C
cell,30
SetFont,times,i,10
settextcolor,180,180,180
cell,120,3,"Coding the world since 1983!",0,1,C
ln,10
SetFont,Arial,B,8
settextcolor,0,0,0

[armor]
cell,10,4.5,Num,1,0,C
cell,50,4.5,Name,1,0,C
cell,50,4.5,Address,1,0,C
cell,20,4.5,Phone,1,0,C
cell,50,4.5,Email,1,1,C
SetFont,Arial,,8

[loop]
1,Lorem ipsum dolor sit amet,Praesent varius tellus id urna ida,Integer ut,quam@pellentesque.com
2,Lorem ipsum dolor sit amet,Praesent varius tellus id urna ida,Integer ut,quam@pellentesque.com
3,Lorem ipsum dolor sit amet,Praesent varius tellus id urna ida,Integer ut,quam@pellentesque.com
4,Lorem ipsum dolor sit amet,Praesent varius tellus id urna ida,Integer ut,quam@pellentesque.com
5,Lorem ipsum dolor sit amet,Praesent varius tellus id urna ida,Integer ut,quam@pellentesque.com
6,Lorem ipsum dolor sit amet,Praesent varius tellus id urna ida,Integer ut,quam@pellentesque.com
7,Lorem ipsum dolor sit amet,Praesent varius tellus id urna ida,Integer ut,quam@pellentesque.com
8,Lorem ipsum dolor sit amet,Praesent varius tellus id urna ida,Integer ut,quam@pellentesque.com
9,Lorem ipsum dolor sit amet,Praesent varius tellus id urna ida,Integer ut,quam@pellentesque.com
10,Lorem ipsum dolor sit amet,Praesent varius tellus id urna ida,Integer ut,quam@pellentesque.com

...

95,Lorem ipsum dolor sit amet,Praesent varius tellus id urna ida,Integer ut,quam@pellentesque.com
96,Lorem ipsum dolor sit amet,Praesent varius tellus id urna ida,Integer ut,quam@pellentesque.com
97,Lorem ipsum dolor sit amet,Praesent varius tellus id urna ida,Integer ut,quam@pellentesque.com
98,Lorem ipsum dolor sit amet,Praesent varius tellus id urna ida,Integer ut,quam@pellentesque.com
99,Lorem ipsum dolor sit amet,Praesent varius tellus id urna ida,Integer ut,quam@pellentesque.com
100,Lorem ipsum dolor sit amet,Praesent varius tellus id urna ida,Integer ut,quam@pellentesque.com

[afterloop]
ln,10
setx,30
cell,30,4.5,This text goes after loop.,0,1,L
setx,30
cell,30,4.5,Try it and enjoy!,0,1,L
[footer]
sety,-15
setfont,arial,i,8


[footer]
sety,-15
setfont,arial,i,8

[pagename]
Spanish accent Página

[filename]
prueba.pdf

[response]
download




   

See the sample generated by code above.

go to summary
Credit card validation

Access mode: [apiroot]/creditcardvalidate/[rendermode]/[card name]/[card number]/[apikey]

Card name can be one of this values:

  • [visaelectron], as Visa Electron.
  • [forbrugsforeningen] as Forbrugsforeningen.
  • [dankort] as Dankort.
  • [visa] as Visa.
  • [mastercard] as Master Card.
  • [amex] as American Express.
  • [dinersclub] as Diner's Club.
  • [Discover] as Discover.
  • [unionpay] as Union Pay.
  • [jcb] as JCB.

By example: https://code.pedroruizhidalgo.es/api/v5/creditcardvalidate/json/amex/378282246310005/[apikey]

Responses as:

{
    "cardnum": "378282246310005",
    "cardtype": "amex",
    "human_format": "3782 8224 6310 005",
    "message": "your 'amex' credit card is valid",
    "validation": "true"
}
or
{
    "cardnum": "23423423",
    "cardtype": "amex",
    "human_format": "null",
    "message": "sorry, your 'amex' credit card is not valid",
    "validation": "false"
}
go to summary
Barcodes

Access mode: [apiroot]/barcodes/

All input data must be provided in json format as HTTP POST request method as is below shown:

{
	"data_to_code" : "data to encode",
	"apikey" : "youruserapikey",
	"type_result" : "type_result",
	"codification" : "BAR_CODE_TYPE"
}

Type Results:

  • jpg
  • png
  • svg
  • html

BAR_CODE_TYPE, one of:

  • TYPE_CODE_39
  • TYPE_CODE_39_CHECKSUM
  • TYPE_CODE_39E
  • TYPE_CODE_39E_CHECKSUM
  • TYPE_CODE_93
  • TYPE_STANDARD_2_5
  • TYPE_STANDARD_2_5_CHECKSUM
  • TYPE_INTERLEAVED_2_5
  • TYPE_INTERLEAVED_2_5_CHECKSUM
  • TYPE_CODE_128
  • TYPE_CODE_128_A
  • TYPE_CODE_128_B
  • TYPE_CODE_128_C
  • TYPE_EAN_2
  • TYPE_EAN_5
  • TYPE_EAN_8
  • TYPE_EAN_13
  • TYPE_UPC_A
  • TYPE_UPC_E
  • TYPE_MSI
  • TYPE_MSI_CHECKSUM
  • TYPE_POSTNET
  • TYPE_PLANET
  • TYPE_RMS4CC
  • TYPE_KIX
  • TYPE_IMB
  • TYPE_CODABAR
  • TYPE_CODE_11
  • TYPE_PHARMA_CODE
  • TYPE_PHARMA_CODE_TWO_TRACKS

Keep in mind not all type of barcode, by its own definition, can produce alphanumerical data.

Type Alphanumerical
TYPE_CODE_39 yes
TYPE_CODE_39_CHECKSUM yes
TYPE_CODE_39E yes
TYPE_CODE_39E_CHECKSUM yes
TYPE_CODE_93 yes
TYPE_STANDARD_2_5 no
TYPE_STANDARD_2_5_CHECKSUM no
TYPE_INTERLEAVED_2_5 no
TYPE_INTERLEAVED_2_5_CHECKSUM no
TYPE_CODE_128 no
TYPE_CODE_128_A no
TYPE_CODE_128_B no
TYPE_CODE_128_C no
TYPE_EAN_2 no
TYPE_EAN_5 no
TYPE_EAN_8 no
TYPE_EAN_13 no
TYPE_UPC_A yes
TYPE_UPC_E yes
TYPE_MSI no
TYPE_MSI_CHECKSUM no
TYPE_POSTNET no
TYPE_PLANET no
TYPE_RMS4CC no
TYPE_KIX no
TYPE_IMB no
TYPE_CODABAR no
TYPE_CODE_11 no
TYPE_PHARMA_CODE no
TYPE_PHARMA_CODE_TWO_TRACKS no

An example as response of:

{
	"data_to_code" : "test code bar",
	"apikey" : "verysecretapikey",
	"type_result" : "html",
	"codification" : "TYPE_CODE_39"
}

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

go to summary
Qrcodes

Access mode: [apiroot]/qrcodes/

All input data must be provided in json format as HTTP POST request method as is below shown:

{
	"data" : "this is the data to codify",
	"apikey" : "yourverysecretapikey",
	"level" : "M",
	"size" : 3,
	"black" : "255,255,255",
	"quality" : true,
	"white" : "0,0,255"
}

Free users can send data and apikey.

To convert the API request to an image, you can do something like that: (For convenience, we expose the code in PHP, but you can do it with you preferred language)

$post = json_encode( array(
          "data" => "your text to code",
          "apikey" => "yourapikey",
          "level" => "M",
          "size" => 4,
          "black" => "255,255,255",
          "quality" => true,
          "white" => "30,30,255"
        )
      );
      $ch = curl_init('https://code.pedroruizhidalgo.es/api/v5/qrcodes');
      curl_setopt( $ch , CURLOPT_CUSTOMREQUEST , "POST");    
      curl_setopt( $ch , CURLOPT_POSTFIELDS , $post );
      curl_setopt( $ch , CURLOPT_RETURNTRANSFER , true );
      curl_setopt( $ch , CURLOPT_HTTPHEADER , array (                                                                          
        'Content-Type: application/json',                                                                                
        'Content-Length: ' . strlen($post))                                                                       
      );
      $result = curl_exec(  $ch );
and finally...
      echo <img src="data:image/png;base64,' . base64_encode ( $result ) . '">';
This image is generated on the fly whith the current date: 2018-11-16 01:48:47, check it!

go to summary

As the limit of a function that never reaches the value, this manual, this API and their services, are under continue construction.