Skip to content

Instantly share code, notes, and snippets.

@eneldoserrata
Last active December 18, 2015 00:58
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save eneldoserrata/5700123 to your computer and use it in GitHub Desktop.
Save eneldoserrata/5700123 to your computer and use it in GitHub Desktop.
Antes que nada las gracias a la gente de developers.do por su plugin en jquery https://github.com/hminaya/SDQ que fue de donde me fije para hacer esto Valida las identificaciones fiscales de la República Dominicana, Cédula de identidad personal y Registro nacional del contribuyente (RNC) en python
# -*- coding: utf-8 -*-
# Estas cedulas fueron emitidas por la JCE, pero no cumplen con el
# digito verificador, por lo cual deben ser verificadas por separado.
import csv
import cPickle
__author__ = 'eneldoserrata'
excepcionesCedulas = ['00000000018', '11111111123', '00100759932', '00105606543', '00114272360', '00200123640',
'00200409772', '00800106971', '01200004166', '01400074875', '01400000282', '03103749672',
'03200066940', '03800032522', '03900192284', '04900026260', '05900072869', '07700009346',
'00114532330', '03121982479', '40200700675', '40200639953', '00121581750', '00119161853',
'22321581834', '00121581800', '09421581768', '22721581818', '90001200901', '00301200901',
'40200452735', '40200401324', '10621581792', '00208430205', '00101118022', '00167311001',
'00102025201', '02755972001', '01038813907', '01810035037', '00161884001', '00102630192',
'00000021249', '00144435001', '00100350928', '00100523399', '00109402756', '00101659661',
'00539342005', '00104662561', '08016809001', '05500012039', '00104486903', '00103754365',
'01200014133', '10983439110', '08498619001', '00104862525', '00100729795', '00644236001',
'01650257001', '00170009162', '00651322001', '00297018001', '00100288929', '00190002567',
'01094560111', '01300020331', '00109785951', '00110047715', '05400067703', '00100061945',
'00100622461', '02831146001', '10462157001', '00100728113', '00108497822', '00481106001',
'00100181057', '10491297001', '00300244009', '00170115579', '02038569001', '00100238382',
'03852380001', '00100322649', '00107045499', '00100384523', '00130610001', '06486186001',
'00101621981', '00201023001', '00520207699', '00300636564', '00000140874', '05700071202',
'03100673050', '00189405093', '00105328185', '10061805811', '00117582001', '00103443802',
'00100756082', '00100239662', '04700027064', '04700061076', '05500023407', '05500017761',
'05400049237', '05400057300', '05600038964', '05400021759', '00100415853', '05500032681',
'05500024190', '06400011981', '05500024135', '06400007916', '05500014375', '05500008806',
'05500021118', '05600051191', '00848583056', '00741721056', '04801245892', '04700004024',
'00163709018', '05600267737', '00207327056', '00731054054', '00524571001', '00574599001',
'00971815056', '06800008448', '04900011690', '03111670001', '00134588056', '04800019561',
'05400040523', '05400048248', '05600038251', '00222017001', '06100011935', '06100007818',
'00129737056', '00540077717', '00475916056', '00720758056', '02300062066', '02700029905',
'02600094954', '11700000658', '03100109611', '04400002002', '03400157849', '03900069856',
'00100524531', '00686904003', '00196714003', '00435518003', '00189213001', '06100009131',
'02300085158', '02300047220', '00100593378', '00100083860', '00648496171', '00481595003',
'00599408003', '00493593003', '00162906003', '00208832003', '00166533003', '00181880003',
'00241997013', '00299724003', '00174729003', '01000005580', '00400012957', '00100709215',
'08900001310', '05400053627', '05400055770', '08800003986', '02300031758', '01154421047',
'00300013835', '00300011700', '01300001142', '00147485003', '00305535206', '05400054156',
'06100016486', '00100172940', '04800046910', '00101527366', '00270764013', '00184129003',
'05400033166', '05400049834', '05400062459', '09700003030', '05300013029', '05400037495',
'05400028496', '05400059956', '05400072273', '02300052220', '00356533003', '00163540003',
'00376023023', '00362684023', '00633126023', '00278005023', '00235482001', '00142864013',
'00131257003', '00236245013', '00757398001', '00146965001', '00516077003', '00425759001',
'00857630012', '06843739551', '02300023225', '00298109001', '00274652001', '00300017875',
'00300025568', '01300005424', '00103266558', '00174940001', '00289931003', '00291549003',
'02800021761', '02800029588', '01000268998', '02600036132', '00200040516', '01100014261',
'02800000129', '01200033420', '02800025877', '00300020806', '00200021994', '00200063601',
'07600000691', '09300006239', '00200028716', '04900028443', '00163549012', '01200008613',
'01200011252', '01100620962', '00100255349', '00108796883', '03102828522', '00000719400',
'00004110056', '00000065377', '00000292212', '00000078587', '00000126295', '00000111941',
'12019831001', '00171404771', '03000411295', '00000564933', '00000035692', '00143072001',
'03102936385', '00000155482', '00000236621', '00400001552', '04941042001', '00300169535',
'00102577448', '03600127038', '00100174666', '00100378440', '00104785104', '00101961125',
'05600063115', '00110071113', '00100000169', '04902549001', '00155144906', '06337850001',
'02300054193', '00100016495', '00101821735', '00544657001', '03807240010', '08952698001',
'00345425001', '06100013662', '08900005064', '05400058964', '05400022042', '05400055485',
'05400016031', '05400034790', '05400038776', '05400076481', '05400060743', '05400047674',
'00246160013', '00116256005', '00261011013', '01600026316', '00103983004', '05600037761',
'00291431001', '00100530588', '01600009531', '05500022399', '05500003079', '05500006796',
'05500027749', '06400014372', '00352861001', '00100053841', '00218507031', '02300037618',
'04600198229', '00000058035', '04700074827', '04700070460', '04700020933', '07800000968',
'00300019575', '00100126468', '00300001538']
excepcionesRNC = ['501478442', '501463232', '501479252', '501832602', '501477322', '501479872', '501480692',
'525001772', '531028132', '518114042', '501473602', '501859012', '502618972', '505066242',
'501348182', '531105692', '512043572', '512043742', '505055992', '502899432', '502598912',
'515123442', '505620452', '531002192', '506124652', '501482172', '531136962', '501483322',
'531025702', '502604432', '501491902', '502895232', '501481362', '523000622', '531047242',
'502610122', '501448152', '504072002', '501473122', '501141812', '522007802', '531040892',
'501374752', '504073742', '502895062', '501751432', '523020232', '501457682', '501096132',
'506507802', '523018742', '501374582', '512924072', '501985972', '523007082', '519513152',
'511105842', '531017912', '502617852', '505055852', '502855842', '501495592', '501484582',
'501134042', '502893582', '511097092', '501265082', '531011752', '531025672', '504685292',
'531007062', '531020832', '531094372', '531023912', '523001092', '503999472', '512043602',
'501477012', '531011892', '504070832', '531013992', '531048052', '516018412', '506510722',
'501448462', '502866232', '502604882', '502608012', '503970652', '502615922', '501937382',
'502602162', '531019362', '501038272', '501038442', '531121272', '503998182', '531057132',
'531113792', '504686132', '501000992', '510303072', '501078622', '504686612', '531040922',
'524003012', '501987762', '524001362', '501970282', '531021022', '501618082', '531028612',
'501200762', '501265422', '523010652', '501057242', '531127912', '531043522', '524008502',
'505621122', '524006712', '531054222', '501485252', '503518512', '531085012', '501407472',
'502895542', '502614632', '502858132', '501080392', '511100352', '531019052', '531072182',
'531046912', '523023452', '522003262', '524000412', '502610602', '501223932', '501009582',
'531050502', '531105862', '523000312', '501847502', '523018572', '531072212', '501925082',
'501042032', '501088172', '507032912', '501203532', '502611102', '501260412', '501240322',
'501048472', '501098402', '504684822', '502610572', '505623702', '531046602', '501008292',
'501249532', '531044812', '501195742', '505625802', '520001442', '511104242', '502881622',
'501207392', '501232532', '501485082', '502610912', '501060812', '523018602', '531119162',
'501050302', '523025722', '531014972', '531041562', '503996082', '501296832', '501432892',
'501066462', '524006682', '523021972', '501280472', '501215492', '501219692', '501005412',
'501154582', '501240802', '502610882', '531026202', '531026172', '501325522', '502610742',
'501275452', '507033072', '502870272', '501322442', '501321292', '501934782', '503517702',
'501334092', '501177272', '501177582', '523000592', '531029112', '501266372', '501266992',
'531029732', '501287612', '501240292', '531028892', '501269932', '501176772', '502589522',
'501432752', '505054872', '531030722', '531094402', '503996872', '501164022', '501164502',
'505055712', '501902872', '512046172', '501334742', '531053072', '501238832', '501522972',
'531034892', '505066382', '531036992', '501336982', '501490582', '502611412', '502611862',
'501555072', '505067222', '531029872', '531031842', '531031672', '501482032', '531032652',
'501400982', '531028922', '501527192', '531029562', '531122562', '501581782', '505066412',
'507031762', '531030862', '501343962', '501843272', '505067192', '531028752', '531045592',
'531030102', '502599412', '501617582', '501617612', '502611552', '502612532', '516019222',
'501552812', '501522832', '531033152', '502611382', '531033292', '531036542', '502611692',
'524008022', '505028812', '531031982', '505057332', '502611242', '501624112', '503996112',
'531034272', '502612672', '502592612', '501655042', '501430792', '501619372', '501619682',
'501749322', '523001602', '531033802', '501626832', '501408622', '501522212', '531039592',
'531032172', '502613202', '503975042', '531048702', '511099532', '502612842', '502613172',
'512920972', '501539492', '509532902', '531030072', '531032512', '511098692', '501521542',
'501521682', '501451692', '501525912', '501439862', '502612192', '501551662', '501545522',
'502888082', '501615202', '501690832', '501408282', '512046032', '502612362', '501532102',
'505612832', '502613342', '501590862', '531032202', '502611722', '501759212', '501742042',
'501470042', '501650342', '501685782', '504000842', '501552332', '531032792', '501707492',
'502893612', '511100042', '531034442', '531035562', '512046202', '505067052', '501557032',
'531032822', '531037522', '501555692', '501641742', '501584552', '514033432', '501705562',
'501540202', '531035732', '505613332', '502612222', '512921162', '505056972', '501851992',
'501609482', '501704612', '502018932', '501661182', '511106482', '501562192', '501587772',
'531035252', '512921332', '502888112', '501704272', '501729682', '503996422', '505062972',
'501600612', '520000802', '501884912', '501553762', '502861192', '501705392', '501684352',
'501648542', '502885652', '501593632', '501659102', '501638342', '501903402', '501904492',
'501904522', '502612702', '531037212', '502592582', '501685022', '501699902', '501573402',
'531032482', '502897952', '501895272', '502569912', '501906142', '505622382', '501828982',
'502507542', '501712852', '501914072', '501897402', '502571062', '503510112', '531042232',
'502861362', '522002002', '502604092', '502016832', '512921022', '501689362', '501487042',
'501871802', '531141222', '506508582', '523021042', '531103762', '503995752', '502504322',
'518111442', '502025912', '531139082', '501813322', '501713972', '501670912', '501696822',
'501900322', '502876262', '505048082', '501804722', '507032262', '531063752', '505062832',
'531043212', '505612972', '501889442', '502048572', '502587392', '502597282', '525001462',
'501717072', '502861672', '502613792', '501495282', '501766952', '502613822', '502014112',
'502589832', '505067362', '503019052', '502880332', '531118832', '505614622', '531038812',
'531043492', '502549512', '523003672', '502026722', '501930752', '501933662', '501933832',
'503996902', '531129222', '502594232', '502861222', '502557132', '531036712', '502539762',
'501834672', '512922002', '505050982', '531128862', '502003552', '531128072', '530001622',
'502501862', '524001532', '519510552', '531063922', '502856032', '502612982', '506125772',
'531038332', '502535252', '531037972', '524008812', '501880712', '501881042', '531033942',
'501812032', '501786562', '502613962', '501908862', '502861532', '503004012', '502573812',
'531038162', '531021162', '502500262', '502569432', '502569602', '503002362', '502573502',
'503004802', '502614152', '531139902', '502055412', '504681602', '502574142', '502507992',
'531050162', '503014212', '502558252', '502569882', '502570112', '502609612', '501252592',
'502569122', '531044952', '502575572', '503510422', '502861702', '531033772', '502569262',
'505039652', '531041902', '531038782', '503501342', '504073602', '502602022', '531032962',
'531038472', '522013322', '502613512', '531113822', '531036682', '502613482', '505013092',
'502613652', '501807802', '502571852', '502573162', '531033012', '523020062', '504004082',
'504017532', '531057612', '502559062', '502618662', '505620142', '505038362', '502572972',
'502575122', '503508312', '502517262', '501966242', '531133572', '502560842', '501467262',
'502605382', '502054432', '503008972', '502571372', '502568452', '505012622', '503015812',
'503018102', '503512042', '505036262', '504061302', '505040022', '505045032', '504062562',
'507033102', '502895682', '502602332', '502615132', '502858272', '505038532', '505038672',
'502558392', '511100972', '505628852', '502514972', '502572352', '531039142', '502572492',
'523006752', '502574452', '502896522', '503000092', '531044162', '503510902', '503511062',
'524009452', '504015742', '504064972', '504065022', '505626272', '506008652', '507030502',
'503510872', '531064902', '502861842', '505030302', '504065502', '531129532', '505037722',
'506120592', '504688062', '522002142', '505069462', '501490272', '502568592', '505031112',
'502570732', '511083342', '503973252', '509500512', '531009162', '503974852', '503975212',
'504065472', '502570872', '506118652', '511009932', '510902162', '502560192', '502861982',
'523004032', '511077652', '506012072', '504065782', '531114012', '502560052', '505004182',
'511081242', '506118172', '523003842', '502594372', '531020212', '513004642', '513004952',
'531119332', '510001092', '504688402', '509503422', '531121612', '509006682', '514008772',
'531057272', '514026622', '501801022', '506006072', '508020992', '531041252', '506116722',
'514010432', '522000972', '515007272', '523003982', '504010562', '513008842', '504062082',
'515005342', '507029512', '515004532', '523024602', '508022812', '523022782', '505614762',
'515119402', '514029532', '531133602', '512000342', '520001582', '514027432', '531046122',
'505001302', '504683702', '507000042', '523004202', '505614932', '503997062', '517008282',
'517008452', '517008932', '507005192', '519006102', '503016282', '513000132', '517026442',
'531128102', '510006442', '502862032', '514025952', '501429182', '513007102', '501430482',
'524001702', '509502922', '512032392', '507004552', '502579322', '515000782', '504068102',
'509503112', '511090012', '509503252', '515116462', '515117612', '512034972', '502857292',
'506003472', '509501292', '512006952', '510300502', '518110772', '518110942', '505068512',
'519505672', '518007262', '531065232', '512034662', '519501952', '512034832', '531042372',
'517000672', '517025942', '517021572', '515119852', '517025152', '524001672', '519006382',
'505618652', '513006912', '505057502', '512040212', '502862342', '515121792', '516000262',
'502035632', '502400012', '531043182', '501407642', '501211802', '504687872', '505614592',
'517021882', '517022382', '501046852', '518004492', '501310312', '502880782', '501486542',
'502018452', '501318402', '512041472', '518111752', '505001612', '508005012', '511097572',
'502886012', '522006512', '506010452', '502051662', '502038682', '505010972', '510003192',
'505625632', '518005782', '501016732', '502533322', '508000142', '505008692', '502537972',
'531057302', '502894732', '502049722', '501439412', '501448632', '501453202', '501545492',
'501552952', '504011232', '503502802', '503515882', '517007502', '501910662', '502863152',
'523004482', '504000052', '523004342', '501361162', '501149732', '514026452', '524001842',
'505615122', '501500812', '531132592', '501496882', '505035592', '502618352', '504070352',
'501406832', '501406972', '502589212', '501416242', '502862512', '502863462', '531068002',
'523005292', '501243852', '501478922', '506506172', '502595492', '531066042', '531057582',
'523005632', '507029172', '501997962', '531054362', '501087192', '502593082', '502862652',
'502602472', '505063952', '505613022', '502602502', '505060872', '501405852', '505049712',
'505615262', '522002452', '531066352', '501478892', '531121442', '511101332', '514035982',
'524002172', '518107062', '531069092', '518113542', '524001982', '501617752', '524010272',
'502863322', '501399992', '502864442', '502862962', '522002932', '502589662', '504681882',
'522002592', '531135532', '523022472', '523005152', '523006132', '504681912', '501681752',
'502863292', '531065992', '523004792', '502864612', '514033572', '505615092', '524002032',
'531067472', '503504872', '502864582', '531094682', '524002482', '503997542', '519507632',
'502592892', '512922142', '522003092', '522002762', '505626442', '502604572', '503997682',
'531067502', '523005772', '531067812', '512046342', '501971602', '531068142', '531068932',
'501401172', '501476962', '502616732', '531067782', '531123852', '501433082', '511101642',
'501429522', '501388702', '502865082', '512922312', '502864922', '503513952', '523005322',
'523005462', '505615572', '503997852', '501690492', '505615602', '502865562', '524002652',
'505615432', '504682072', '525001802', '502890532', '524002512', '502865902', '503514312',
'531066212', '502866712', '509500172', '502865112', '502864752', '531094712', '501917462',
'523006302', '502619022', '531069602', '531070392', '531130522', '531070422', '531069432',
'522003122', '516017742', '502583842', '522009562', '502866062', '531129192', '512033372',
'523005802', '531067952', '502863802', '523005942', '531072042', '504073882', '531019532',
'531044022', '501766502', '501769412', '513022012', '501961682', '502866372', '502895712',
'502579942', '531120462', '502587252', '531130972', '523006442', '502586612', '531059542',
'502865872', '525001942', '503514622', '524002822', '503975492', '506122102', '531069122',
'503997712', '531055202', '502587112', '501491252', '513022322', '504074552', '531070732',
'502865422', '501135162', '502585152', '502864892', '523006612', '501436162', '531011922',
'502865732', '502586752', '502618042', '501759492', '501424962', '506510382', '501949852',
'531059712', '502582692', '531071852', '531008212', '504073572', '523001742', '522011532',
'519507462', '501824812', '504686442', '505622242', '502587082', '501792392', '503507812',
'502588852', '505615742', '501783482', '502866402', '502589492', '505054252', '531071062',
'531070872', '502589182', '502589042', '501784462', '502588542', '504072762', '502590342',
'502587422', '502587562', '505048902', '531020352', '522008752', '501775722', '531103932',
'531070902', '503998042', '502588372', '502588402', '505051032', '531021952', '531020662',
'502893752', '504070182', '531042062', '502574932', '501494162', '502881312', '503972612',
'507031622', '523013392', '503517842', '505056492', '501411712', '503972582', '531096162',
'501780882', '501779922', '515128762', '531008042', '502590792', '502614802', '502591322',
'502587872', '505052462', '502587902', '503507502', '502592132', '505053922', '522003432',
'505056182', '505069322', '501711422', '515118872', '505051202', '505051512', '505055402',
'507883432', '502880812', '501405712', '505049992', '501404392', '502898452', '531012902',
'523022502', '505052772', '505052802', '502590512', '522009732', '502590172', '531028302',
'520000012', '505050672', '510305482', '510303102', '510303242', '503515572', '502591942',
'506123532', '506123362', '505050192', '505052152', '531039452', '531118972', '502590032',
'505052322', '531009502', '512921472', '501424032', '523020542', '505053272', '524006852',
'512924382', '512045222', '531018722', '531008832', '506124962', '501402152', '514035052',
'519511672', '501410392', '501402772', '505055232', '531018692', '505623842', '505063812',
'502603312', '523000282', '511099702', '501429492', '502856172', '506123672', '512043432',
'502591292', '519507772', '523023622', '501897852', '502591632', '505050532', '501405992',
'501424822', '502856482', '502591802', '502889542', '501452362', '531136792', '505053302',
'511106822', '512043882', '511098862', '512041812', '505052942', '502592922', '504070972',
'501898352', '505626302', '523006922', '501419772', '501456252', '531132142', '501450572',
'523023282', '525000652', '502593902', '531062802', '501999752', '501414592', '502618832',
'502888392', '502599382', '501405542', '502616082', '523006892', '515123582', '510303382',
'510303412', '506507462', '501412832', '505056832', '503973082', '531037042', '505054732',
'501430822', '504070662', '501410112', '506123702', '503515262', '501383522', '502593732',
'501421602', '504071022', '512922452', '501413952', '502603142', '511094972', '507031932',
'504070522', '502858582', '502880472', '518113712', '512041502', '525000962', '502616112',
'502592752', '501414622', '523003532', '522007632', '512041782', '531012082', '531105722',
'502596332', '501996362', '506124202', '523023312', '510304052', '523013422', '502574312',
'501466762', '505057022', '501417192', '512921642', '501419942', '507032092', '519513462',
'512923262', '502599242', '501439102', '501447652', '501451412', '502597312', '503998352',
'501493182', '501493972', '501421432', '502888422', '502570422', '512045362', '501457232',
'501494022', '531020182', '531131782', '501417842', '501784012', '501484752', '502572042',
'511095502', '514031162', '511105532', '501415262', '501451072', '502597452', '505068482',
'502603282', '502858442', '501419322', '501453032', '501451862', '504682242', '501460152',
'504071812', '501896112', '502591462', '531132282', '501452192', '531137012', '501467122',
'501452842', '502602952', '502598122', '501452222', '501483152', '502614462', '511094832',
'501966412', '501432612', '501450432', '515123272', '505059602', '501469672', '501440232',
'520003062', '505059092', '505059122', '520002252', '501484132', '505057952', '531056292',
'531106052', '503518342', '502616422', '522011052', '511095472', '502600542', '515122942',
'502855672', '502600992', '502603002', '531014832', '531104572', '501487522', '501488332',
'505060392', '514031952', '504072932', '502880502', '523024742', '501487832', '512043122',
'502901992', '501488022', '512043912', '501490892', '501464042', '501464212', '531050782',
'501464492', '501490132', '501462422', '524010752', '531073022', '501458182', '501367942',
'501493212', '501954902', '505067842', '501487182', '501487212', '511094662', '531034132',
'503973872', '531054192', '501455302', '505059572', '511095332', '501471332', '531045932',
'501496262', '531040302', '501021272', '524008162', '501497552', '501885552', '502572212',
'502572662', '505060082', '505060112', '501456082', '531574692', '502614012', '502598742',
'507032122', '531010012', '501495452', '501494812', '501494952', '502600232', '501492852',
'502600402', '501487972', '525001012', '505070282', '501496092', '531017742', '531104602',
'502594062', '507032742', '501498192', '531576792', '502601492', '501497242', '531012252',
'501489282', '531036232', '501999892', '501489142', '501489452', '511096932', '518114182',
'523000932', '501492992', '511097432', '502866542', '531576482', '531018242', '531573092',
'501486852', '505060732', '531046742', '502588062', '510902472', '531007682', '531007712',
'531574102', '501498052', '501499342', '504072622', '504073122', '502602642', '512046792',
'501498222', '502855702', '511099672', '501497692', '531041872', '502586582', '502601042',
'531575702', '501498532', '501851712', '531052262', '502052472', '507032432', '502895852',
'531034302', '502600372', '504073262', '505059432', '505060252', '502588992', '531128412',
'503507162', '522000182', '531009812', '531013682', '501907882', '531016622', '519513322',
'531006872', '510900682', '531006902', '502893922', '502538472', '531016762', '502603762',
'531040442', '531131812', '531095182', '531011132', '512044862', '531009642', '502560532',
'518114212', '501495312', '531008352', '510307612', '524011872', '504073912', '512045052',
'505052012', '505052292', '531013852', '503996252', '531039622', '531010772', '531007992',
'531010632', '531089352', '531010322', '531007232', '501497862', '502591772', '505053752',
'502593872', '501856722', '505053892', '531015502', '531009332', '502614292', '502608152',
'511098072', '511098102', '505063162', '505064932', '523023762', '502605072', '502606192',
'505063782', '512044692', '531014212', '514032622', '531015782', '502606672', '506124792',
'531012392', '502896042', '531012422', '502614772', '505064622', '505064592', '505061852',
'531015952', '531016002', '531011442', '531048192', '531024552', '531010152', '531009952',
'501767002', '531016142', '502617682', '502605102', '505062212', '502604122', '501944702',
'505064282', '512044072', '502608632', '503973392', '502604912', '531014662', '502603932',
'502856652', '502616392', '531045282', '531014522', '502606052', '531095212', '531134722',
'531051002', '531016932', '505063022', '531015162', '502605412', '512036002', '531016452',
'502605552', '502606982', '502605862', '502860102', '531024412', '502606362', '505065122',
'502608322', '531025222', '502617062', '502898762', '505064002', '531026032', '531026652',
'505065602', '505065572', '502608942', '502606532', '505065432', '505064452', '524000382',
'531022282', '531020492', '503517192', '502609752', '531026512', '502606222', '523002692',
'502607792', '502607202', '531025192', '505063642', '531019702', '505066102', '502604602',
'509505212', '523001882', '505063472', '502603592', '505065262', '502607172', '531095492',
'531017432', '531019672', '502607962', '502607652', '523001262', '502607032', '531049652',
'531055652', '531050472', '531024722', '516019192', '531025982', '502857152', '502607822',
'502608802', '505064762', '512045842', '531056152', '502859732', '531060222', '531051282',
'505614002', '502857462', '502859902', '505063332', '531044472', '522001502', '502857802',
'523002722', '502609892', '502609132', '502608772', '504073432', '502858922', '501949542',
'502859872', '520001272', '503995922', '511099842', '523002862', '531060532', '502609582',
'523002552', '531024692', '502894392', '531023742', '531023262', '505069292', '502857012',
'505616722', '531048532', '512920832', '523002102', '505613952', '531059682', '502857632',
'502858612', '518115472', '523000762', '503996562', '502857942', '505070592', '502856962',
'531055172', '505613162', '502901852', '531054842', '523002412', '522001162', '520001302',
'502617402', '522000492', '503518482', '522000522', '531056012', '531049792', '502617372',
'502617992', '531049512', '505063502', '524012992', '531056632', '505613812', '531046572',
'509505662', '505065742', '502610262', '531023432', '531058902', '502857772', '531049822',
'505070312', '524000242', '522000832', '502856512', '503995892', '524000692', '523003192',
'523002242', '515121032', '518111302', '505613782', '515124422', '502615612', '531058112',
'524001192', '531061962', '531061202', '525001632', '511100832', '514033262', '501423982',
'523003362', '502858892', '531057752', '502858752', '505614282', '503996392', '512921782',
'531048222', '507284172', '502859422', '531062322', '502860552', '505613642', '531061342',
'505614452', '523002072', '531058872', '504070212', '502859082', '531129672', '523001912',
'502859562', '522001332', '531058082', '502860862', '531056772', '505613472', '531062292',
'514033092', '531059062', '505613502', '501514732', '524000722', '523001432', '523002382',
'522001952', '505617192', '531073502', '502618522', '531062152', '522003602', '502867042',
'531062632', '503996732', '526000892', '504685802', '505614142', '502888872', '531069262',
'531061482', '505058452', '502860722', '502608292', '503974232', '531072972', '502863012',
'522001812', '502860692', '506505842', '512921952', '501737472', '502860412', '501767932',
'502866852', '501490302', '531062012', '523003222', '522001782', '522001642', '524001052',
'531032342', '502867492', '503998522', '531075742', '523007872', '505007122', '502890702',
'522003572', '531073472', '502856792', '502590482', '511094492', '501407332', '523007902',
'506509082', '505070142', '501483802', '501451242', '502592272', '501516212', '502867352',
'502866992', '506509252', '507033412', '531574242', '505058762', '531110572', '522001472',
'505614312', '531015332', '523007112', '522003742', '531128552', '505620312', '523007252',
'511100522', '523001122', '502867662', '505615882', '503997992', '505615912', '502591152',
'505070452', '502590822', '505064312', '531073812', '503998492', '502601972', '503998972',
'502868812', '531077532', '502885822', '531007402', '531108322', '502867182', '524003802',
'531076552', '510902502', '531074932', '504073092', '501438122', '503974062', '502886152',
'523008402', '524003292', '523007732', '503998662', '531076382', '522004102', '523007562',
'531010802', '514033882', '502896352', '502573022', '502617232', '531039762', '502867212',
'523007422', '531078652', '531140102', '523008232', '522006652', '507033382', '523008992',
'523008682', '531079802', '524004132', '505616242', '505616072', '531079942', '504682382',
'531077222', '531074452', '512922592', '524003772', '523009492', '523008062', '503973902',
'502869622', '523009212', '522004552', '531080002', '524003462', '514033912', '512922622',
'502868502', '504682412', '502868472', '531076692', '505616552', '531076412', '511101952',
'531076242', '502876572', '502868782', '531075882', '501416102', '505616102', '520003372',
'523008542', '531078792', '520002392', '502868332', '524003632', '501484612', '531130662',
'531077362', '502867972', '502868022', '522003912', '502868162', '523008372', '502867522',
'531074762', '524003942', '512922762', '522004692', '531079772', '503999022', '502869592',
'505616692', '512922932', '506127112', '502870752', '522004412', '522004242', '502869762',
'531078822', '531134692', '522004722', '511102452', '514034102', '502870442', '531080282',
'506127562', '531081742', '523008852', '502869452', '504682552', '502870302', '524004272',
'502870132', '524004582', '531079152', '522004382', '505616382', '523008712', '503999332',
'531084512', '511102622', '502870892', '524004892', '502004222', '523009182', '531082722',
'531081262', '523007392', '511102592', '501419802', '523020682', '531081572', '501132252',
'503999502', '511102312', '531081602', '502871082', '505624032', '531080142', '531081432',
'531080312', '502871732', '531083362', '511102762', '505062182', '530001762', '531084482',
'506506342', '524004442', '505616862', '520002732', '505617052', '523009972', '523009832',
'531082692', '503999162', '524004612', '501971262', '502871112', '506127902', '531017092',
'531081882', '506506202', '523010512', '504682722', '531083052', '502871252', '502871872',
'531082862', '524005082', '511102932', '531081912', '522004862', '531084822', '531085322',
'502872402', '505072692', '505071122', '502871902', '503974372', '502871392', '523010342',
'502881002', '503999642', '523010482', '502872062', '522005192', '501523162', '502895402',
'505617362', '522011192', '522005052', '523009662', '502870922', '523010962', '519510862',
'504683052', '531084342', '505072552', '505061682', '531083222', '531095662', '501094822',
'502865392', '522005222', '501505482', '503999782', '502872372', '502873212', '531085292',
'505073982', '505074032', '502871562', '505068172', '523011012', '523010032', '531086302',
'505071602', '502871422', '523024122', '501374302', '511103602', '523010822', '523011152',
'531088062', '524005732', '524005392', '503999952', '531087872', '505617532', '514025162',
'505623982', '505617672', '523011292', '531087732', '502872542', '531086132', '503970032',
'502872682', '531084792', '524005562', '531087422', '502873492', '523010172', '502873352',
'524005872', '501443762', '524005422', '531087392', '523011322', '524013832', '531085462',
'531088402', '502872852', '522005532', '502872992', '512037432', '505618032', '505074172',
'502873182', '504683222', '507033722', '511103742', '523011942', '502873972', '531088372',
'531084962', '505072862', '531089832', '505617702', '504683192', '501523502', '522005362',
'523010792', '523012272', '511104862', '502873832', '531089522', '523011772', '502874332',
'503999812', '505625942', '512923122', '522005842', '530002432', '511097882', '523011462',
'502874022', '502872712', '522006032', '523011802', '502873042', '502888902', '507883122',
'506506512', '505072412', '505071572', '505071432', '522005672', '531058732', '531087902',
'524006062', '531092302', '513023582', '511103912', '504683362', '502874502', '523011632',
'505068342', '531088542', '531090962', '503970482', '522005702', '502875282', '531090342',
'506506482', '531088232', '505617982', '502873662', '523012892', '511103882', '531092922',
'531088712', '506506652', '515127812', '506506792', '523012132', '531090202', '505617842',
'503970202', '502873522', '510307302', '505618512', '531093112', '531092892', '531091322',
'501453792', '531091012', '505071742', '502601352', '522006342', '505618482', '503970512',
'505618172', '502874642', '505071882', '501691812', '502875622', '523013082', '523012442',
'506506822', '523012922', '502875312', '523012582', '531089492', '503970172', '502875762',
'531090172', '523012612', '522006202', '502874162', '502874472', '531088682', '511104072',
'505618342', '506506962', '511104102', '531133742', '531095832', '531096502', '504683532',
'531091292', '523013252', '524006542', '531094062', '502876602', '531136652', '531094232',
'502876092', '504687562', '503970342', '502875452', '502876122', '531091152', '531019842',
'523013112', '531093082', '531131952', '502876912', '503970822', '531095522', '502877552',
'522011702', '525000032', '505618822', '504683982', '524007042', '524007182', '504684962',
'523014062', '502876742', '522006822', '523013732', '505618792', '505622552', '523012752',
'531097592', '502896212', '504684032', '531096782', '531096812', '506510242', '505618962',
'511104382', '503970792', '503971012', '531099722', '524007212', '502896182', '522007012',
'531105552', '504687732', '502876882', '523013902', '531097452', '505619012', '502877722',
'502877382', '502894112', '523020372', '523013562', '504683842', '531098882', '512923432',
'502877862', '502877412', '520002562', '523014852', '522006962', '531096472', '503970962',
'531128692', '524007352', '531098912', '518115332', '506507152', '503971322', '512923572',
'531100852', '531100682', '531129052', '531098602', '503971292', '502877072', '503971152',
'523015212', '502877242', '523013872', '531100992', '522006792', '505619322', '523014712',
'505619152', '531102162', '504684512', '502878192', '530001932', '501661972', '523014402',
'501579222', '531098572', '531100712', '502879342', '504684342', '524010442', '516018692',
'525000172', '502879512', '502879172', '531102782', '523022952', '531101182', '531102952',
'523015042', '505619462', '503971462', '512923602', '531103002', '523014682', '504684202',
'531099862', '505619292', '511104692', '522007772', '522007462', '523015522', '531102022',
'531103592', '514034382', '502881142', '531115612', '511104552', '523014542', '530002742',
'502879962', '516018722', '531101212', '523015182', '502879652', '531108012', '523016502',
'501682112', '501454152', '531107172', '523015492', '531106222', '531108632', '511105052',
'506507322', '502878222', '502881282', '524008642', '514035222', '523014992', '523016022',
'505620282', '502880022', '504684482', '531103622', '504685012', '502880162', '526000132',
'531107202', '502881452', '506510692', '531107342', '502881592', '524009002', '522007942',
'502882572', '531106982', '523020402', '503971772', '526000272', '523017002', '531106842',
'523016162', '531108292', '505624202', '530002122', '501825002', '523016332', '531108152',
'522008302', '526000302', '524008782', '502046502', '503971802', '510901352', '531107032',
'502882882', '525000342', '523016952', '501488502', '512923742', '502883102', '530002092',
'504685152', '531109302', '525000482', '522008272', '531109612', '520002872', '523015352',
'524008952', '505621572', '519511702', '531014492', '520002902', '523016812', '505621432',
'523016642', '502882742', '531108462', '505621092', '501406492', '502883412', '501455132',
'511105192', '523017592', '501075682', '501401202', '506507632', '523017312', '505621262',
'502883692', '530002602', '502883072', '504685322', '531050332', '523016472', '505621882',
'501483632', '531128722', '531020522', '501495142', '502883242', '502889232', '507034052',
'524009142', '531110742', '523015972', '531109442', '502885792', '501610472', '523017282',
'502883552', '504685462', '502883862', '523017452', '501522182', '502884052', '531132312',
'514035362', '531018552', '501420452', '524009312', '505621912', '506507942', '524006372',
'502884672', '502884842', '523017622', '522000352', '531112842', '502884192', '531112982',
'524009282', '511105222', '501723552', '502885202', '501448012', '502885342', '505622102',
'502885032', '505622412', '502884532', '502884222', '501494502', '522008612', '505622072',
'531112052', '502884702', '502884362', '531111072', '531112532', '510303552', '502886292',
'504685772', '531114322', '520003232', '523018912', '503972272', '502594402', '531114292',
'501634312', '531114152', '502885962', '504685632', '531114462', '531129842', '519512172',
'523018262', '531112362', '526000582', '523018122', '512923092', '502885482', '522008892',
'523018432', '531120322', '523018092', '502885172', '504685942', '522008922', '503972752',
'505623192', '502886322', '531134862', '531116562', '531132002', '520001752', '524005902',
'531116732', '523022642', '531115582', '531116392', '518113852', '512923882', '523009352',
'506508272', '506509112', '502886462', '502886632', '523019072', '531116422', '531115442',
'522009112', '502886772', '502887892', '514035532', '531117682', '523019382', '523019412',
'511107012', '502887132', '531117712', '505623222', '531123712', '515123302', '502887442',
'525000792', '502887302', '522009872', '502887752', '531117402', '523019722', '530002572',
'522009082', '510901042', '531113652', '523019102', '523019242', '531118492', '512923912',
'505623672', '522009902', '502889062', '511105672', '531117992', '531117372', '502887922',
'523019862', '520001922', '505624172', '523019552', '522009252', '531117542', '531117852',
'524010612', '522010072', '502889712', '526000612', '519512202', '520001892', '502887612',
'505623362', '531124182', '522010102', '505624962', '505625772', '523021522', '526000752',
'531121752', '502891032', '502889682', '505625012', '502891342', '502891172', '502891202',
'511106172', '514035672', '503972922', '507034222', '531121892', '523020852', '531123992',
'502887582', '523021182', '506508302', '502890842', '511106202', '531121582', '523021662',
'516019052', '502891822', '531122872', '502892632', '502891512', '502891652', '524010892',
'502892152', '531123682', '502890982', '503973422', '502891962', '522010242', '506508612',
'523020992', '523003702', '502892322', '504686752', '531124042', '531122902', '523021352',
'522010382', '502890672', '502892292', '522010722', '514035842', '502892462', '505625322',
'523021832', '524011252', '522010692', '502894422', '504686892', '531126312', '524011112',
'502892802', '531124352', '531126762', '531125162', '511106512', '502891792', '508021972',
'531125952', '503973562', '531126002', '507883262', '531125022', '531087562', '502892772',
'502892012', '525001152', '505625152', '525001292', '523022022', '531124212', '501809562',
'525001322', '502893272', '523022162', '502893442', '523022812', '531127742', '504687082',
'523022332', '502895372', '506508922', '531126932', '522011222', '531126142', '522010862',
'531126622', '504687112', '502893132', '519513292', '503973732', '510902332', '506509732',
'502896972', '531133262', '512924412', '523023592', '505626612', '531132622', '523023142',
'531126592', '505626132', '514036172', '502897022', '502894902', '502897642', '523024092',
'531132452', '523023932', '531136032', '526000922', '531127882', '522011672', '502898002',
'503974682', '524012372', '501487662', '531135982', '502898282', '502898142', '506510072',
'502897162', '523024572', '502898312', '522012032', '506509902', '511107292', '504687902',
'523024262', '531136172', '502897782', '522012172', '524012542', '512924862', '502899092',
'531136822', '511107632', '531135702', '502899262', '522012342', '511107322', '505626752',
'531135672', '502897502', '526001082', '502898592', '506510102', '522011982', '505627112',
'522011842', '524012852', '505057642', '524012712', '523025242', '531138132', '526001112',
'525002132', '502898622', '523024912', '505056042', '504688372', '502899912', '504688232',
'502900422', '522012202', '502899122', '531136202', '524012682', '505627422', '511107772',
'514036342', '523024882', '523025072', '502900112', '502900732', '519513632', '516019532',
'502900392', '531137152', '501407022', '505627902', '502900252', '531137462', '511107802',
'531137292', '523025382', '523025412', '502899572', '525002302', '505627562', '502899602',
'522012652', '504688542', '520003542', '523025862', '505627732', '502899882', '505627872',
'522012512', '531138302', '519514132', '531138582', '502899742', '524013042', '523025692',
'512925052', '525002272', '531138442', '531138892', '502901542', '522012962', '502901372',
'502900902', '522013152', '502901232', '504688682', '502902042', '523025552', '502900562']
def is_identification(value):
"""
Valida las identificaciones fiscales de la República Dominicana
Cédula de identidad personal y Registro nacional del contribuyente
:param value: recibe una cédula o RNC
"""
if len(value) > 0:
value = value.strip()
if (len(value) == 9 or len(value) == 11) and value.isdigit(): # Valida logitud y Valida que solo sean numeros
num = list(map(int, value)) # convierte string en lista de string
if len(value) == 11: # si tiene 11 digitos es una cedula
if value in excepcionesCedulas: # valida en el listado
return True
else: # valida el algoritmo de (LUHN)
return sum(num[::-2] + [sum(divmod(d * 2, 10)) for d in num[-2::-2]]) % 10 == 0
else:
if value in excepcionesRNC:
return True
else:
pesoRNC = [7, 9, 8, 6, 5, 4, 3, 2] # Mod11 pero el RNC utiliza su propio sistema de peso.
resto = sum([num[i]*pesoRNC[i] for i in range(len(pesoRNC))]) % 11
digito = resto if resto in [0, 1] else 11-resto
return digito == num[-1]
else:
return False
@danielgpm
Copy link

Nice Eneldo, aqui unos tips:

  • La linea 17 y 19 puede ser solo:
    if (len(value) == 9 or len(value) == 11) and value.isdigit():
    y asi eliminas las lineas 31 y 32.
  • Puedes mover "num = list(map(int, value))" antes de la linea 19 y lo borras de las 23 y 26

@eneldoserrata
Copy link
Author

thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment