Fan Courier Python API Client Library
Project description
Fan Courier Python API Client Library
A client developed as a library, easy to integrate Fan Courier in Python projects
Official documentation: https://cloud.mail.ru/public/3ki1/2X2QSMyA2
Details: https://cloud.mail.ru/public/4Gyq/5pNssPQ7W
Install:
pip install fan-courier-client
Initialization
import fan_courier_client
client = fan_courier_client.Client(client_id, username, password)
Get client list
client.list()
[
{
"client_id": "7024738",
"nume": "FAN Courier Corespondenta Pipera",
"adresa": "Bucuresti, Ridicare din sediul FAN Pipera (Sediu), , Sos Fabrica de Glucoza 11 C, 020331"
},
{
"client_id": "7032158",
"nume": "FAN COURIER - cont test",
"adresa": "Bucuresti, Fabrica de Glucoza (sosea), 11C, FAN, 020331"
},
...
]
Get addresses list
# Optional fields: 'judet', 'localitate', 'language'
client.addresses.get()
[
OrderedDict([
('judet', 'Alba'),
('localitate', 'Abrud'),
('strada', ''),
('de_la', '1'),
('pana_la', 'T'),
('paritate', '2'),
('cod_postal', '515100'),
('tip', ''),
('cod_cartare', '6642'),
('numar_depozit', 'R3.23'),
('id_strada', '124795'),
('cod_sortare_vizual', '01-02'),
('litera_cartare', 'F'),
('agentie', 'Campeni')
]),
OrderedDict([
('judet', 'Alba'),
('localitate', 'Abrud'),
('strada', '1 Decembrie 1918'),
('de_la', '1'),
('pana_la', 'T'),
('paritate', '2'),
('cod_postal', '515100'),
('tip', 'Strada'),
('cod_cartare', '6642'),
('numar_depozit', 'R3.23'),
('id_strada', '149847'),
('cod_sortare_vizual', '01-02'),
('litera_cartare', 'F'),
('agentie', 'Campeni')
]),
...
]
Get cities list
client.addresses.cities()
[
OrderedDict([
('judet', 'Alba'),
('localitate', 'Abrud'),
('agentie', 'Campeni'),
('km', '0'),
('cod_rutare', '6641'),
('id_localitate_fan', '10001'),
('litera_cartare', 'F'),
('dep_no', 'R3.23')
]),
OrderedDict([
('judet', 'Alba'),
('localitate', 'Abrud-Sat'),
('agentie', 'Campeni'),
('km', '0'),
('cod_rutare', '6641'),
('id_localitate_fan', '21913'),
('litera_cartare', 'F'),
('dep_no', 'R3.23')
]),
...
]
Get rates
request_data = {
'serviciu': 'Standard',
'localitate_dest': 'Vrancea',
'judet_dest': 'Test',
'plicuri': 1,
'colete': 1,
'greutate': 20,
'lungime': 10,
'latime': 10,
'inaltime': 10,
'val_decl': 10,
'plata_ramburs': 'destinatar',
'optiuni': 'A'
}
client.rates.get(**request_data)
81.90
Get AWB in HTML
client.awb.get(awb_id=2324000120066)
# html text response
b'\r\n<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//E...
Create AWB
request_data = {
'tip_serviciu': 'Standard',
'banca': 'Test',
'iban': 'XXXXXXX',
'nr_plicuri': 1,
'nr_colete': 0,
'greutate': 1,
'plata_expeditie': 'ramburs',
'rambursbani': 100,
'plata_ramburs_la': 'destinatar',
'valoare_declarata': 400,
'persoana_contact_expeditor': 'Test User',
'observatii': 'Lorem ipsum',
'continut': 'Fragil',
'nume_destinatar': 'Test',
'persoana_contact': 'Test',
'telefon': '123456789',
'fax': '123456789',
'email': 'example@example.com',
'judet': 'Galati',
'localitatea': 'Tecuci',
'strada': 'Lorem',
'nr': '2',
'cod_postal': '123456',
'bloc': '',
'scara': '',
'etaj': '',
'apartament': '',
'inaltime_pachet': '',
'latime_pachet': '',
'lungime_pachet': '',
'restituire': '',
'centru_cost': '',
'optiuni': '',
'packing': '',
'date_personale': ''
}
client.awb.create(**request_data)
[
OrderedDict([
('number', '1'),
('success', '1'),
('awb_id', '2324000120066'),
('tariff', '')
])
]
Export AWB in PDF
client.awb.export(awb_id=2324000120066)
b'%PDF-1.4\n1 0 obj\n<<\n/Title (\xfe\xff)\n/Creator (\xfe\xff)\n/Producer...
Delete AWB
client.awb.delete(awb_id=2324000120066)
'2324000120066 DELETED'
Track AWB
client.awb.tracking(awb_id=2324000120066)
Code | Result |
---|---|
2 | Livrat |
3 | Avizat |
6 | Refuz primire |
7 | Refuz plata transport |
8 | Livrare din sediul FAN Courier |
9 | Redirectionat |
12 | Contactat, livrare ulterioara |
14 | Restrictii acces la adresa |
15 | Refuz predare ramburs |
38 | AWB neexpediat |
42 | Adresa gresita |
43 | Retur |
47 | Predat partener extern |
{
'progressdetail': None
}
Track AWB list
client.awb.tracking_list(awb_list=[2324000120066, 2322000120004])
[
{
'awb': None,
'oras destinatar': '',
'continut': '',
'nume confirmare': '',
'data confirmare': '',
'ora confirmare': '',
'awb retur': '',
'ramburs': '',
'data virament': '',
'0': {
'id': 0,
'status': 'AWB-ul nu a fost predat catre FAN Courier',
'data': '',
'ora': '',
'oras': '',
'traseu': ''
}
}
]
client.awb.download(awb_id=2322000120004) # text
client.awb.download_scan(awb_id=2322000120004) # text
client.awb.errors() # dict list
Get services list
client.services.get()
[
'Standard',
'RedCode',
'Caiet Sarcini',
'Express Loco 1H',
'Express Loco 2H',
'Express Loco 4H',
'Express Loco 6H',
'Cont Colector',
'Express Loco 1H-Cont Colector',
'Express Loco 2H-Cont Colector',
'Express Loco 4H-Cont Colector',
'Express Loco 6H-Cont Colector',
'Red code-Cont Colector',
'Export',
'Export-Cont Colector',
'Produse Albe',
'Produse Albe-Cont Colector',
'Transport Marfa',
'Transport Marfa-Cont Colector',
'Transport Marfa Produse Albe',
'Transport Marfa Produse Albe-Cont Colector'
]
Get remarks list
Remarks
client.remarks.get()
[
'Livrare urgenta',
'Livrare Luni',
'Livrare Luni-Apel telefonic inainte',
'A se contacta telefonic',
'Atentie-FRAGIL',
'Livrare cu stampila si semnatura',
'Livrare dupa ora 16:00',
'Livrare in intervalul 09:00 - 17:00',
'Livrare personala cu CNP/serie CI'
]
Get sheet by date
client.sheets.get(data='17.11.2020')
[
OrderedDict([
('nr_crt', '1'),
('awb', '2322000120004'),
('client_dest', 'asdasd asdasda'),
('telefon_dest', '0748069725'),
('stradadestinatar', 'Strada Campia Libertatii, nr. 43, bl. MC3, sc. A, et. 2, ap. 13'),
('nrdestinatar', ''),
('blocdestinatar', ''),
('scaradestinatar', ''),
('etajdestinatar', ''),
('apdestinatar', ''),
('oras_dest', 'Bistrita'),
('orasel', 'Agrisu de Jos'),
('plic', '0'),
('colet', '1'),
('kg', '1.00'),
('continut', ''),
('plata_la', 'expeditor'),
('val_decl', ''),
('ramburs', '600.75'),
('obs', ''),
('persexpeditor', 'Alina Mircea'),
('persdest', 'asdasd asdasda'),
('depnr', '18-Bistrita'),
('kmextdest', '40'),
('data_awb', '17.11.2020'),
('ora_awb', '07:34:21'),
('ridicat', 'NU'),
('centru_cost', ''),
('status', 'Nepreluat'),
('data_confirmarii', ''),
('ora_confirmarii', ''),
('nume_confirmare', ''),
('client_exp', 'FAN COURIER - cont test'),
('restituire', ''),
('tip_serviciu', 'Cont Colector'),
('banca', 'RAIFFEISEN BANK ROMANA'),
('iban', 'RO53RZBR0000060009520959'),
('awb_retur', '')
]),
OrderedDict([
('nr_crt', '2'),
('awb', '2322000120007'),
...
]),
...
]
Export sheet in HTML
client.sheets.export()
b'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//E...
Get transfers
client.transfers.get(data='18.11.2020')
[
{
'oras_destinatar': ...,
'data_awb': ...,
'suma_incasata': ...,
'numar_awb': ...,
'expeditor': ...,
'destinatar': ...,
'continut': ...,
'persoanad': ...,
'data_virament': ...,
'persoanae': ...,
'ramburs_la_awb': ...,
'awb_retur': ...,
'incasare_card': ...
},
...
]
Get orders
client.orders.get(data='17.11.2020')
[
OrderedDict([
('nr_crt', '1'),
('data_ridicare_comanda', '17.11.2020'),
('ora_de_la', '12:30'),
('ora_pana_la', '16:45'),
('persoana_contact', 'DORU'),
('telefon', '0787787639'),
('email', 'it@fancourier.ro'),
('colete', '3'),
('plicuri', '0'),
('greutate', '45.00'),
('inaltime', '10.00'),
('latime', '10.00'),
('lungime', '10.00'),
('observatii', 'RIDICARE JIULUI NR 2'),
('strada', ''),
('nr', ''),
('bloc', ''),
('scara', ''),
('etaj', ''),
('ap', ''),
('localitate', ''),
('judet', ''),
('numar_comanda', ''),
('status', 'In asteptare')
])
]
Create order
request_data = {
'pers_contact': 'pers_contact',
'tel': 'tel',
'email': 'email@mail.com',
'greutate': 10,
'inaltime': 1,
'lungime': 1,
'latime': 1,
'ora_ridicare': '17:00'
}
client.orders.create(**request_data)
'Inregistrarea comenzii este finalizata cu SUCCES. In intervalul specificat, FAN Courier va ridica expeditia din locatia indicata. Va multumim!'
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
fan_courier_client-0.4.tar.gz
(12.4 kB
view hashes)