talks/ifsc/index.html

997 lines
161 KiB
HTML
Raw Permalink Normal View History

2020-05-16 11:46:18 +00:00
<!DOCTYPE html><html lang="en-US"><head><title>IFSC</title><meta property="og:title" content="IFSC"><meta charset="UTF-8"><meta name="viewport" content="width=device-width,height=device-height,initial-scale=1.0"><meta name="apple-mobile-web-app-capable" content="yes"><meta http-equiv="X-UA-Compatible" content="ie=edge"><meta property="og:type" content="website"><meta name="twitter:card" content="summary"><style>@media screen{body,html{background:#000;height:100%;margin:0;overflow:hidden}.bespoke-marp-osc{display:none;opacity:0}.bespoke-marp-parent{bottom:0;left:0;position:absolute;right:0;top:0}.bespoke-marp-parent>.bespoke-marp-osc{background:rgba(0,0,0,.65);border-radius:7px;bottom:50px;color:#fff;display:block;font-family:Helvetica,Arial,sans-serif;font-size:16px;left:50%;line-height:0;opacity:1;padding:12px;position:absolute;touch-action:manipulation;-webkit-transform:translateX(-50%);transform:translateX(-50%);transition:opacity .2s linear;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;z-index:1}.bespoke-marp-parent>.bespoke-marp-osc>*{margin-left:6px}.bespoke-marp-parent>.bespoke-marp-osc>:first-child{margin-left:0}.bespoke-marp-parent>.bespoke-marp-osc>span{opacity:.8}.bespoke-marp-parent>.bespoke-marp-osc>span[data-bespoke-marp-osc=page]{display:inline-block;min-width:140px;text-align:center}.bespoke-marp-parent>.bespoke-marp-osc>button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:0;color:inherit;cursor:pointer;font-size:inherit;opacity:.8;outline:none;padding:0;transition:opacity .2s linear;-webkit-tap-highlight-color:transparent}.bespoke-marp-parent>.bespoke-marp-osc>button:disabled{cursor:not-allowed;opacity:.15!important}.bespoke-marp-parent>.bespoke-marp-osc>button:hover{opacity:1}.bespoke-marp-parent>.bespoke-marp-osc>button:hover:active{opacity:.6}.bespoke-marp-parent>.bespoke-marp-osc>button:hover:not(:disabled){transition:none}.bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev]{background:transparent url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJNNjggOTBMMjggNTBsNDAtNDAiLz48L3N2Zz4=") no-repeat 50%;background-size:contain;height:32px;overflow:hidden;text-indent:100%;white-space:nowrap;width:32px}.bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next]{background:transparent url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJNMzIgOTBsNDAtNDAtNDAtNDAiLz48L3N2Zz4=") no-repeat 50%;background-size:contain;height:32px;overflow:hidden;text-indent:100%;white-space:nowrap;width:32px}.bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen]{background:transparent url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6NXB4fTwvc3R5bGU+PC9kZWZzPjxyZWN0IGNsYXNzPSJhIiB4PSIxMCIgeT0iMjAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI2MCIgcng9IjUuNjciLz48cGF0aCBjbGFzcz0iYSIgZD0iTTQwIDcwSDIwVjUwbTIwIDBMMjAgNzBtNDAtNDBoMjB2MjBtLTIwIDBsMjAtMjAiLz48L3N2Zz4=") no-repeat 50%;background-size:contain;height:32px;overflow:hidden;text-indent:100%;white-space:nowrap;width:32px}.bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen].exit{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6NXB4fTwvc3R5bGU+PC9kZWZzPjxyZWN0IGNsYXNzPSJhIiB4PSIxMCIgeT0iMjAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI2MCIgcng9IjUuNjc
width: 1280px;
height: 720px;
box-sizing: border-box;
overflow: hidden;
position: relative;
scroll-snap-align: center center;
}article#presentation > svg > foreignObject > section::after {
bottom: 0;
content: attr(data-marpit-pagination);
padding: inherit;
pointer-events: none;
position: absolute;
right: 0;
}article#presentation > svg > foreignObject > section:not([data-marpit-pagination])::after {
display: none;
}/* Normalization */article#presentation > svg > foreignObject > section h1 {
font-size: 2em;
margin: 0.67em 0;
}@page {
size: 1280px 720px;
margin: 0;
}@media print {html, body {
background-color: #fff;
margin: 0;
page-break-inside: avoid;
break-inside: avoid-page;
}
article#presentation > svg > foreignObject > section {
page-break-before: always;
break-before: page;
}
article#presentation > svg > foreignObject > section, article#presentation > svg > foreignObject > section * {
-webkit-print-color-adjust: exact !important;
color-adjust: exact !important;
}
article#presentation > svg[data-marpit-svg] {
display: block;
height: 100vh;
width: 100vw;
}
}article#presentation > svg > foreignObject > section svg[data-marp-fitting=svg]{display:block;height:auto;width:100%}@supports (-ms-ime-align:auto){article#presentation > svg > foreignObject > section svg[data-marp-fitting=svg]{position:static}}article#presentation > svg > foreignObject > section svg[data-marp-fitting=svg].__reflow__{content:""}@supports (-ms-ime-align:auto){article#presentation > svg > foreignObject > section svg[data-marp-fitting=svg].__reflow__{position:relative}}article#presentation > svg > foreignObject > section [data-marp-fitting-svg-content]{display:table;white-space:nowrap}article#presentation > svg > foreignObject > section [data-marp-fitting-svg-content-wrap]{white-space:pre}article#presentation > svg > foreignObject > section img[data-marp-twemoji]{background:transparent;height:1em;margin:0 .05em 0 .1em;vertical-align:-.1em;width:1em}/*!
2020-02-06 10:13:17 +00:00
* Marp default theme.
*
* @theme default
2020-05-16 11:46:18 +00:00
*/@font-face{font-family:octicons-link;src:url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAZwABAAAAAACFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEU0lHAAAGaAAAAAgAAAAIAAAAAUdTVUIAAAZcAAAACgAAAAoAAQAAT1MvMgAAAyQAAABJAAAAYFYEU3RjbWFwAAADcAAAAEUAAACAAJThvmN2dCAAAATkAAAABAAAAAQAAAAAZnBnbQAAA7gAAACyAAABCUM+8IhnYXNwAAAGTAAAABAAAAAQABoAI2dseWYAAAFsAAABPAAAAZwcEq9taGVhZAAAAsgAAAA0AAAANgh4a91oaGVhAAADCAAAABoAAAAkCA8DRGhtdHgAAAL8AAAADAAAAAwGAACfbG9jYQAAAsAAAAAIAAAACABiATBtYXhwAAACqAAAABgAAAAgAA8ASm5hbWUAAAToAAABQgAAAlXu73sOcG9zdAAABiwAAAAeAAAAME3QpOBwcmVwAAAEbAAAAHYAAAB/aFGpk3jaTY6xa8JAGMW/O62BDi0tJLYQincXEypYIiGJjSgHniQ6umTsUEyLm5BV6NDBP8Tpts6F0v+k/0an2i+itHDw3v2+9+DBKTzsJNnWJNTgHEy4BgG3EMI9DCEDOGEXzDADU5hBKMIgNPZqoD3SilVaXZCER3/I7AtxEJLtzzuZfI+VVkprxTlXShWKb3TBecG11rwoNlmmn1P2WYcJczl32etSpKnziC7lQyWe1smVPy/Lt7Kc+0vWY/gAgIIEqAN9we0pwKXreiMasxvabDQMM4riO+qxM2ogwDGOZTXxwxDiycQIcoYFBLj5K3EIaSctAq2kTYiw+ymhce7vwM9jSqO8JyVd5RH9gyTt2+J/yUmYlIR0s04n6+7Vm1ozezUeLEaUjhaDSuXHwVRgvLJn1tQ7xiuVv/ocTRF42mNgZGBgYGbwZOBiAAFGJBIMAAizAFoAAABiAGIAznjaY2BkYGAA4in8zwXi+W2+MjCzMIDApSwvXzC97Z4Ig8N/BxYGZgcgl52BCSQKAA3jCV8CAABfAAAAAAQAAEB42mNgZGBg4f3vACQZQABIMjKgAmYAKEgBXgAAeNpjYGY6wTiBgZWBg2kmUxoDA4MPhGZMYzBi1AHygVLYQUCaawqDA4PChxhmh/8ODDEsvAwHgMKMIDnGL0x7gJQCAwMAJd4MFwAAAHjaY2BgYGaA4DAGRgYQkAHyGMF8NgYrIM3JIAGVYYDT+AEjAwuDFpBmA9KMDEwMCh9i/v8H8sH0/4dQc1iAmAkALaUKLgAAAHjaTY9LDsIgEIbtgqHUPpDi3gPoBVyRTmTddOmqTXThEXqrob2gQ1FjwpDvfwCBdmdXC5AVKFu3e5MfNFJ29KTQT48Ob9/lqYwOGZxeUelN2U2R6+cArgtCJpauW7UQBqnFkUsjAY/kOU1cP+DAgvxwn1chZDwUbd6CFimGXwzwF6tPbFIcjEl+vvmM/byA48e6tWrKArm4ZJlCbdsrxksL1AwWn/yBSJKpYbq8AXaaTb8AAHja28jAwOC00ZrBeQNDQOWO//sdBBgYGRiYWYAEELEwMTE4uzo5Zzo5b2BxdnFOcALxNjA6b2ByTswC8jYwg0VlNuoCTWAMqNzMzsoK1rEhNqByEyerg5PMJlYuVueETKcd/89uBpnpvIEVomeHLoMsAAe1Id4AAAAAAAB42oWQT07CQBTGv0JBhagk7HQzKxca2sJCE1hDt4QF+9JOS0nbaaYDCQfwCJ7Au3AHj+LO13FMmm6cl7785vven0kBjHCBhfpYuNa5Ph1c0e2Xu3jEvWG7UdPDLZ4N92nOm+EBXuAbHmIMSRMs+4aUEd4Nd3CHD8NdvOLTsA2GL8M9PODbcL+hD7C1xoaHeLJSEao0FEW14ckxC+TU8TxvsY6X0eLPmRhry2WVioLpkrbp84LLQPGI7c6sOiUzpWIWS5GzlSgUzzLBSikOPFTOXqly7rqx0Z1Q5BAIoZBSFihQYQOOBEdkCOgXTOHA07HAGjGWiIjaPZNW13/+lm6S9FT7rLHFJ6fQbkATOG1j2OFMucKJJsxIVfQORl+9Jyda6Sl1dUYhSCm1dyClfoeDve4qMYdLEbfqHf3O/AdDumsjAAB42mNgYoAAZQYjBmyAGYQZmdhL8zLdDEydARfoAqIAAAABAAMABwAKABMAB///AA8AAQAAAAAAAAAAAAAAAAABAAAAAA==) format("woff")}article#presentation > svg > foreignObject > section .markdown-body .octicon,article#presentation > svg > foreignObject > section .octicon{display:inline-block;fill:currentColor;vertical-align:text-bottom}article#presentation > svg > foreignObject > section .markdown-body .anchor,article#presentation > svg > foreignObject > section .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}article#presentation > svg > foreignObject > section .markdown-body .anchor:focus,article#presentation > svg > foreignObject > section .anchor:focus{outline:none}article#presentation > svg > foreignObject > section .markdown-body h1 .octicon-link,article#presentation > svg > foreignObject > section .markdown-body h2 .octicon-link,article#presentation > svg > foreignObject > section .markdown-body h3 .octicon-link,article#presentation > svg > foreignObject > section .markdown-body h4 .octicon-link,article#presentation > svg > foreignObject > section .markdown-body h5 .octicon-link,article#presentation > svg > foreignObject > section .markdown-body h6 .octicon-link,article#presentation > svg > foreignObject > section h1 .octicon-link,article#presentation > svg > foreignObject > section h2 .octicon-link,article#presentation > svg > foreignObject > section h3 .octicon-link,article#presentation > svg > foreignObject > section h4 .octicon-link,article#presentation > svg > foreignObject > section h5 .octicon-link,article#presentation > svg > foreignObject > section h6 .octicon-link{color:#1b1f23;vertical-align:middle;visibility:hidden}article#presentation > svg > foreignObject > section .markdown-body h1:hover .anchor,article#presentation > svg > foreignObject > section .markdown-body h2:hover .anchor,article#presentation > svg > foreignObject > section .markdown-body h3:hove
padding: 0 !important;
}article#presentation > svg > foreignObject > section[data-marpit-advanced-background="background"]::before,
article#presentation > svg > foreignObject > section[data-marpit-advanced-background="background"]::after,
article#presentation > svg > foreignObject > section[data-marpit-advanced-background="content"]::before,
article#presentation > svg > foreignObject > section[data-marpit-advanced-background="content"]::after {
display: none !important;
}article#presentation > svg > foreignObject > section[data-marpit-advanced-background="background"] > div[data-marpit-advanced-background-container] {
all: initial;
display: flex;
flex-direction: row;
height: 100%;
overflow: hidden;
width: 100%;
}article#presentation > svg > foreignObject > section[data-marpit-advanced-background="background"] > div[data-marpit-advanced-background-container][data-marpit-advanced-background-direction="vertical"] {
flex-direction: column;
}article#presentation > svg > foreignObject > section[data-marpit-advanced-background="background"][data-marpit-advanced-background-split] > div[data-marpit-advanced-background-container] {
width: 50%;
}article#presentation > svg > foreignObject > section[data-marpit-advanced-background="background"][data-marpit-advanced-background-split="right"] > div[data-marpit-advanced-background-container] {
margin-left: 50%;
}article#presentation > svg > foreignObject > section[data-marpit-advanced-background="background"] > div[data-marpit-advanced-background-container] > figure {
all: initial;
background-position: center;
background-repeat: no-repeat;
background-size: cover;
flex: auto;
margin: 0;
}article#presentation > svg > foreignObject > section[data-marpit-advanced-background="content"],
article#presentation > svg > foreignObject > section[data-marpit-advanced-background="pseudo"] {
background: transparent !important;
}article#presentation > svg > foreignObject > section[data-marpit-advanced-background="pseudo"],
article#presentation > svg[data-marpit-svg] > foreignObject[data-marpit-advanced-background="pseudo"] {
pointer-events: none !important;
}article#presentation > svg > foreignObject > section[data-marpit-advanced-background-split] {
width: 100%;
height: 100%;
}</style></head><body><div class="bespoke-marp-osc"><button data-bespoke-marp-osc="prev" tabindex="-1" title="Previous slide">Previous slide</button><span data-bespoke-marp-osc="page"></span><button data-bespoke-marp-osc="next" tabindex="-1" title="Next slide">Next slide</button><button data-bespoke-marp-osc="fullscreen" tabindex="-1" title="Toggle fullscreen (f)">Toggle fullscreen</button></div><article id="presentation"><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="1" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="1" style="--paginate:true;">
<h1>IFSC</h1>
<p>-nemo<br />
- Payments &amp; Fintech deepdives</p>
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="2" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="2" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1>Q: What does IFSC stand for?</h1>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="3" style="--paginate:true;" data-marpit-advanced-background="background"><div data-marpit-advanced-background-container="true" data-marpit-advanced-background-direction="horizontal"><figure style="background-image:url(&quot;https://fakeimg.pl/1920x800/ff4d4d/fff/?text=wrong&quot;);"></figure></div></section></foreignObject><foreignObject width="1280" height="720"><section id="3" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="3" style="--paginate:true;" data-marpit-advanced-background="content">
2020-02-06 10:13:17 +00:00
<h1></h1>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject><foreignObject width="1280" height="720" data-marpit-advanced-background="pseudo"><section style="" data-marpit-advanced-background="pseudo" data-marpit-pagination="3"></section></foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="4" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="4" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h2><strong>International Financial Services Centre</strong></h2>
<p>(Only partly kidding: <a href="https://www.rbi.org.in/Scripts/NotificationUser.aspx?Id=9619&amp;Mode=0">https://www.rbi.org.in/Scripts/NotificationUser.aspx?Id=9619&amp;Mode=0</a>)</p>
<blockquote>
<p>In exercise of the powers conferred by section 47 of the Foreign Exchange Management Act, 1999 (42 of 1999), the Reserve Bank makes the following regulations relating to financial institutions set up in International Financial Services Centres, namely:-</p>
<blockquote>
<p>(f) International Financial Services Centre or IFSC shall have the same meaning given in Section 2 (q) of the Special Economic Zones Act, 2005 (28 of 2005).</p>
</blockquote>
</blockquote>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="5" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="5" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h2>Fine!</h2>
<p><strong>Indian Financial System Code</strong></p>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="6" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="6" style="--paginate:true;">
<h2>Agenda</h2>
<ol>
<li>The <a href="https://ifsc.razorpay.com">ifsc.razorpay.com</a> project.</li>
<li>IFSC in the background.</li>
<li>Future Scope / Collaboration ideas.</li>
</ol>
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="7" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="7" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h2>some metrics first</h2>
<ul>
2020-05-16 11:46:18 +00:00
<li>4 Years since first release (Feb 2016)</li>
2020-02-06 10:13:17 +00:00
<li>64 releases</li>
<li>72 tags</li>
</ul>
2020-05-16 11:46:18 +00:00
<pre><code><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap>-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
PHP <span class="hljs-number">13</span> <span class="hljs-number">175</span> <span class="hljs-number">68</span> <span class="hljs-number">2063</span>
Ruby <span class="hljs-number">9</span> <span class="hljs-number">111</span> <span class="hljs-number">23</span> <span class="hljs-number">2008</span>
JavaScript <span class="hljs-number">5</span> <span class="hljs-number">26</span> <span class="hljs-number">1</span> <span class="hljs-number">1548</span>
YAML <span class="hljs-number">5</span> <span class="hljs-number">4</span> <span class="hljs-number">24</span> <span class="hljs-number">1256</span>
Markdown <span class="hljs-number">4</span> <span class="hljs-number">157</span> <span class="hljs-number">0</span> <span class="hljs-number">383</span>
Elixir <span class="hljs-number">8</span> <span class="hljs-number">53</span> <span class="hljs-number">63</span> <span class="hljs-number">308</span>
Bourne Shell <span class="hljs-number">2</span> <span class="hljs-number">10</span> <span class="hljs-number">13</span> <span class="hljs-number">31</span>
-------------------------------------------------------------------------------
SUM: <span class="hljs-number">47</span> <span class="hljs-number">536</span> <span class="hljs-number">192</span> <span class="hljs-number">7613</span>
-------------------------------------------------------------------------------
2020-02-06 10:13:17 +00:00
</span></span></foreignObject></svg></code></pre>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="8" style="--paginate:true;" data-marpit-advanced-background="background"><div data-marpit-advanced-background-container="true" data-marpit-advanced-background-direction="horizontal"><figure style="background-image:url(&quot;0.1.7.png&quot;);background-size:80%;"></figure></div></section></foreignObject><foreignObject width="1280" height="720"><section id="8" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="8" style="--paginate:true;" data-marpit-advanced-background="content">
2020-02-06 10:13:17 +00:00
<h2>0.1.7</h2>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
</section>
</foreignObject><foreignObject width="1280" height="720" data-marpit-advanced-background="pseudo"><section style="" data-marpit-advanced-background="pseudo" data-marpit-pagination="8"></section></foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="9" style="--paginate:true;" data-marpit-advanced-background="background"><div data-marpit-advanced-background-container="true" data-marpit-advanced-background-direction="horizontal"><figure style="background-image:url(&quot;google-image-search.jpg&quot;);background-size:100%;"></figure></div></section></foreignObject><foreignObject width="1280" height="720"><section id="9" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="9" style="--paginate:true;" data-marpit-advanced-background="content"><footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject><foreignObject width="1280" height="720" data-marpit-advanced-background="pseudo"><section style="" data-marpit-advanced-background="pseudo" data-marpit-pagination="9"></section></foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="10" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="10" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1>the IFSC wall of cuteness</h1>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="11" style="--paginate:true;" data-marpit-advanced-background="background"><div data-marpit-advanced-background-container="true" data-marpit-advanced-background-direction="horizontal"><figure style="background-image:url(&quot;cute-collage.jpg&quot;);background-size:100%;"></figure></div></section></foreignObject><foreignObject width="1280" height="720"><section id="11" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="11" style="--paginate:true;" data-marpit-advanced-background="content"><footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
</section>
</foreignObject><foreignObject width="1280" height="720" data-marpit-advanced-background="pseudo"><section style="" data-marpit-advanced-background="pseudo" data-marpit-pagination="11"></section></foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="12" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="12" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1>what is it?</h1>
<p>The IFSC Toolkit includes:</p>
<ol>
<li>An API, served publicly at <a href="https://ifsc.razorpay.com">https://ifsc.razorpay.com</a></li>
<li>A dataset, attached to every release in multiple formats</li>
<li>An SDK that does multiple things:
<ul>
<li>Offline IFSC validations</li>
<li>Requests to the API</li>
<li>Offline Bank checks</li>
</ul>
</li>
<li>In various languages: Node.JS/PHP/Ruby/Elixir</li>
</ol>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="13" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="13" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1>what's the source?</h1>
<h2>3 Primary Sources: RBI/NPCI/RTI</h2>
<p>RBI publishes a list of all RTGS/NEFT branches as excel sheets:</p>
<ul>
2020-05-16 11:46:18 +00:00
<li>NEFT: <a href="https://rbidocs.rbi.org.in/rdocs/content/docs/68774.xlsx">rbidocs.rbi.org.in/rdocs/content/docs/68774.xlsx</a></li>
<li>RTGS: <a href="https://rbidocs.rbi.org.in/rdocs/RTGS/DOCs/RTGEB0815.xlsx">rbidocs.rbi.org.in/rdocs/RTGS/DOCs/RTGEB0815.xlsx</a></li>
2020-02-06 10:13:17 +00:00
</ul>
<p>NPCI publishes a few lists:</p>
<ul>
2020-05-16 11:46:18 +00:00
<li>All Live ACH member banks: <a href="https://www.npci.org.in/national-automated-clearing-live-members-1">npci.org.in/national-automated-clearing-live-members-1</a></li>
<li>All UPI live member banks: <a href="https://www.npci.org.in/upi-live-members">npci.org.in/upi-live-members</a></li>
2020-02-06 10:13:17 +00:00
<li><a href="https://docplayer.net/25942453-Imps-procedural-guidelines.html">NBIN codes</a>, published in IMPS Procedural guidelines v1.7</li>
</ul>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="14" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="14" style="--paginate:true;">
<h2>Additional Sources</h2>
<ul>
<li>Any interim RBI circulars</li>
<li>Any guidelines from NPCI</li>
<li>A few RBI/NCPI circulars</li>
</ul>
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="15" style="--paginate:true;" data-marpit-advanced-background="background"><div data-marpit-advanced-background-container="true" data-marpit-advanced-background-direction="horizontal"><figure style="background-image:url(&quot;https://fakeimg.pl/1920x800/c56cf0/fff/?text=what's+the+data&quot;);"></figure></div></section></foreignObject><foreignObject width="1280" height="720"><section id="15" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="15" style="--paginate:true;" data-marpit-advanced-background="content"><footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject><foreignObject width="1280" height="720" data-marpit-advanced-background="pseudo"><section style="" data-marpit-advanced-background="pseudo" data-marpit-pagination="15"></section></foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="16" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="16" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h2><code>banks.json</code></h2>
<p>List of all Banks in India* with the following details:</p>
<ul>
<li>Bank Code (4 characters)</li>
<li>Bank Type</li>
<li>Primary IFSC (Usually of the IMPS HO Branch)</li>
<li>Primary MICR (Used on Cheques)</li>
<li>IIN (First 6 digits of issued cards)</li>
<li>ABPS Support (true/false)</li>
<li>NACH/ACH Credit/Debit Support (true/false)</li>
<li>UPI Support (true)</li>
</ul>
<p>* - Based on all members listed in the NPCI ACH list.</p>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="17" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="17" style="--paginate:true;">
<h2><code>banks.json</code></h2>
<pre><code class="language-json"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap>{
<span class="hljs-attr">"SBIN"</span>: {
// Bank Code
<span class="hljs-attr">"code"</span>: <span class="hljs-string">"SBIN"</span>,
// Bank Type
<span class="hljs-attr">"type"</span>: <span class="hljs-string">"PSB"</span>,
// Primary IMPS IFSC
<span class="hljs-attr">"ifsc"</span>: <span class="hljs-string">"SBIN0004343"</span>,
<span class="hljs-attr">"micr"</span>: <span class="hljs-string">"400002000"</span>,
// IIN = BIN
<span class="hljs-attr">"iin"</span>: <span class="hljs-string">"508548"</span>,
// Aadhaar Payments Bridge System
<span class="hljs-attr">"apbs"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"ach_credit"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"ach_debit"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"nach_debit"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"upi"</span>: <span class="hljs-literal">true</span>
}
}
</span></span></foreignObject></svg></code></pre>
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="18" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="18" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1><code>by-bank.tar.gz</code> (8.4MB)</h1>
<p>A tar.gz file containing one JSON file for each bank, with a list of all known branches with the following details for every branch:</p>
<ul>
<li>IFSC</li>
<li>Branch name</li>
<li>Address (Centre/District/State/Address/Contact)</li>
<li>Bank Name</li>
2020-05-16 11:46:18 +00:00
<li>UPI/RTGS/NEFT/IMPS Support (<code>true/false</code>)</li>
2020-02-06 10:13:17 +00:00
<li>MICR</li>
</ul>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="19" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="19" style="--paginate:true;">
<h1><code>by-bank/PYTM.json</code></h1>
<p>Same as the data at <a href="https://ifsc.razorpay.com/PYTM0000001">https://ifsc.razorpay.com/PYTM0000001</a></p>
<pre><code class="language-json"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap>{
<span class="hljs-attr">"PYTM0000001"</span>: {
<span class="hljs-attr">"BANK"</span>: <span class="hljs-string">"PAYTM PAYMENTS BANK LTD"</span>,
<span class="hljs-attr">"IFSC"</span>: <span class="hljs-string">"PYTM0000001"</span>,
<span class="hljs-attr">"BRANCH"</span>: <span class="hljs-string">"RTGS-HO"</span>,
<span class="hljs-attr">"CENTRE"</span>: <span class="hljs-string">"NOIDA"</span>,
<span class="hljs-attr">"DISTRICT"</span>: <span class="hljs-string">"NOIDA"</span>,
<span class="hljs-attr">"STATE"</span>: <span class="hljs-string">"UTTAR PRADESH"</span>,
<span class="hljs-attr">"ADDRESS"</span>: <span class="hljs-string">"B-121,Sector-5,Noida-201301"</span>,
<span class="hljs-attr">"CONTACT"</span>: <span class="hljs-string">"33996699"</span>,
<span class="hljs-attr">"IMPS"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"RTGS"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"CITY"</span>: <span class="hljs-string">"Gautam Buddh Nagar"</span>,
<span class="hljs-attr">"NEFT"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"MICR"</span>: <span class="hljs-literal">null</span>
}
}
</span></span></foreignObject></svg></code></pre>
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="20" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="20" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1><code>IFSC-list.json</code> (4MB)</h1>
<p>A single JSON file with every known IFSC code inside it.</p>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="21" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="21" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1><code>IFSC.csv</code> (25MB)</h1>
<p>Single CSV file containing the same fields as the by-bank JSON file. Covers all banks.</p>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="22" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="22" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1><code>IFSC.json</code> (1.7MB)</h1>
<p>A somewhat-compressed, human-readable JSON file containing all valid IFSCs for a bank, with leading zeroes removed.</p>
<pre><code><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap><span class="hljs-string">"ADCC"</span>: [<span class="hljs-number">1</span>,<span class="hljs-number">2</span>,<span class="hljs-number">3</span>,<span class="hljs-number">4</span>,<span class="hljs-number">5</span>,<span class="hljs-number">6</span>,<span class="hljs-number">7</span>,<span class="hljs-number">8</span>,<span class="hljs-number">9</span>,<span class="hljs-number">10</span>,<span class="hljs-number">11</span>,<span class="hljs-number">12</span>,<span class="hljs-number">13</span>,<span class="hljs-number">14</span>,<span class="hljs-number">15</span>,<span class="hljs-number">16</span>,<span class="hljs-number">17</span>,<span class="hljs-number">18</span>,<span class="hljs-number">19</span>,<span class="hljs-number">20</span>
<span class="hljs-number">21</span>,<span class="hljs-number">22</span>,<span class="hljs-number">23</span>,<span class="hljs-number">24</span>,<span class="hljs-number">25</span>,<span class="hljs-number">26</span>,<span class="hljs-number">28</span>,<span class="hljs-number">29</span>,<span class="hljs-number">30</span>,<span class="hljs-number">31</span>,<span class="hljs-number">32</span>,<span class="hljs-number">33</span>,<span class="hljs-number">34</span>,<span class="hljs-number">35</span>,<span class="hljs-number">36</span>,<span class="hljs-number">37</span>,<span class="hljs-number">38</span>
<span class="hljs-number">39</span>,<span class="hljs-number">40</span>,<span class="hljs-number">41</span>,<span class="hljs-number">42</span>,<span class="hljs-number">43</span>,<span class="hljs-number">44</span>,<span class="hljs-number">45</span>,<span class="hljs-number">46</span>,<span class="hljs-number">47</span>,<span class="hljs-number">48</span>,<span class="hljs-number">49</span>,<span class="hljs-number">50</span>,<span class="hljs-number">51</span>,<span class="hljs-number">52</span>,<span class="hljs-number">53</span>,<span class="hljs-number">54</span>,<span class="hljs-number">55</span>
<span class="hljs-number">56</span>,<span class="hljs-number">57</span>,<span class="hljs-number">58</span>,<span class="hljs-number">59</span>,<span class="hljs-number">60</span>,<span class="hljs-number">61</span>,<span class="hljs-number">62</span>,<span class="hljs-number">64</span>,<span class="hljs-number">65</span>,<span class="hljs-number">66</span>,<span class="hljs-number">67</span>,<span class="hljs-number">68</span>,<span class="hljs-number">110</span>,<span class="hljs-number">114</span>,<span class="hljs-number">70</span>,<span class="hljs-number">71</span>
<span class="hljs-number">72</span>,<span class="hljs-number">73</span>,<span class="hljs-number">74</span>,<span class="hljs-number">75</span>,<span class="hljs-number">76</span>,<span class="hljs-number">77</span>,<span class="hljs-number">78</span>,<span class="hljs-number">79</span>,<span class="hljs-number">80</span>,<span class="hljs-number">81</span>,<span class="hljs-number">82</span>,<span class="hljs-number">83</span>,<span class="hljs-number">84</span>,<span class="hljs-number">85</span>,<span class="hljs-number">86</span>,<span class="hljs-number">87</span>
<span class="hljs-number">88</span>,<span class="hljs-number">89</span>,<span class="hljs-number">90</span>,<span class="hljs-number">91</span>,<span class="hljs-number">92</span>,<span class="hljs-number">93</span>,<span class="hljs-number">94</span>,<span class="hljs-number">95</span>,<span class="hljs-number">96</span>,<span class="hljs-number">97</span>,<span class="hljs-number">98</span>,<span class="hljs-number">99</span>,<span class="hljs-number">100</span>,<span class="hljs-number">101</span>,<span class="hljs-number">102</span>
<span class="hljs-number">103</span>,<span class="hljs-number">104</span>,<span class="hljs-number">105</span>,<span class="hljs-number">106</span>,<span class="hljs-number">107</span>,<span class="hljs-number">108</span>,<span class="hljs-number">109</span>,<span class="hljs-number">111</span>,<span class="hljs-number">112</span>,<span class="hljs-number">113</span>,<span class="hljs-number">115</span>,<span class="hljs-number">116</span>]
</span></span></foreignObject></svg></code></pre>
<p><code>ADCC0000001</code> to <code>ADCC0000116</code> are all valid branches.</p>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="23" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="23" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1><code>banknames.json</code></h1>
2020-05-16 11:46:18 +00:00
<p>A manually curated human-readable list of all banknames against 4 letter bank codes. Currently at 1437 entries.</p>
<pre><code class="language-json"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap> <span class="hljs-string">"CCOB"</span>: <span class="hljs-string">"City Co-operative Bank"</span>,
<span class="hljs-string">"CCUX"</span>: <span class="hljs-string">"Chengelpattu Co-operative Urban Bank"</span>,
<span class="hljs-string">"CDCX"</span>: <span class="hljs-string">"Cuddalore District Central Co-operative Bank"</span>,
<span class="hljs-string">"CEBX"</span>: <span class="hljs-string">"Central Co-operative Bank Bikaner"</span>,
<span class="hljs-string">"CGBX"</span>: <span class="hljs-string">"Chhattisgarh Gramin Bank"</span>,
<span class="hljs-string">"CGGX"</span>: <span class="hljs-string">"Chaitanya Godavari Grameena Bank"</span>,
<span class="hljs-string">"CHAS"</span>: <span class="hljs-string">"JP Morgan Chase Bank"</span>,
<span class="hljs-string">"CHAX"</span>: <span class="hljs-string">"Chamoli Zila Sahkari Bank"</span>,
<span class="hljs-string">"CHBX"</span>: <span class="hljs-string">"Chamba Urban Co-operative Bank"</span>,
</span></span></foreignObject></svg></code></pre>
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="24" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="24" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1>The API</h1>
<p>Has a single <code>/:ifsc</code> endpoint that returns all the information about the branch from the IFSC code. <a href="https://ifsc.razorpay.com/PUNB0026200">https://ifsc.razorpay.com/PUNB0026200</a></p>
<pre><code class="language-json"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap>{
<span class="hljs-attr">"BRANCH"</span>: <span class="hljs-string">"KASHIPUR"</span>,
<span class="hljs-attr">"CENTRE"</span>: <span class="hljs-string">"KASHIPUR"</span>,
<span class="hljs-attr">"DISTRICT"</span>: <span class="hljs-string">"KASHIPUR (UTTARANCHAL)"</span>,
<span class="hljs-attr">"STATE"</span>: <span class="hljs-string">"UTTARAKHAND"</span>,
<span class="hljs-attr">"ADDRESS"</span>: <span class="hljs-string">"MATA MANDIR ROAD,DISTT. UDHAM SINGH NAGAR"</span>,
<span class="hljs-attr">"CONTACT"</span>: <span class="hljs-string">""</span>,
<span class="hljs-attr">"UPI"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"RTGS"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"CITY"</span>: <span class="hljs-string">"KASHIPUR (UTTARANCHAL)"</span>,
<span class="hljs-attr">"NEFT"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"IMPS"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"MICR"</span>: <span class="hljs-string">""</span>,
<span class="hljs-attr">"BANK"</span>: <span class="hljs-string">"Punjab National Bank"</span>,
<span class="hljs-attr">"BANKCODE"</span>: <span class="hljs-string">"PUNB"</span>,
<span class="hljs-attr">"IFSC"</span>: <span class="hljs-string">"PUNB0026200"</span>
}
</span></span></foreignObject></svg></code></pre>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="25" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="25" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h2>Code Examples</h2>
<h3>PHP</h3>
<pre><code class="language-php"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap>IFSC::validate(<span class="hljs-string">'KKBK0000261'</span>); <span class="hljs-comment">// true</span>
IFSC::validateBankCode(<span class="hljs-string">'PUNB'</span>); <span class="hljs-comment">// true</span>
IFSC::getBankName(<span class="hljs-string">'PUNB'</span>); <span class="hljs-comment">// Returns 'Punjab National Bank'</span>
IFSC::getBankName(<span class="hljs-string">'ABCD'</span>); <span class="hljs-comment">// Returns null</span>
IFSC::getBankName(Bank::PUNB); <span class="hljs-comment">//Returns Punjab National Bank</span>
</span></span></foreignObject></svg></code></pre>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="26" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="26" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<pre><code class="language-php"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap>Bank::getDetails(Bank::PUNB);
Bank::getDetails(<span class="hljs-string">'PUNB'</span>);
<span class="hljs-comment">// Returns an array:</span>
<span class="hljs-comment">// [</span>
<span class="hljs-comment">// 'code' =&gt; 'PUNB',</span>
<span class="hljs-comment">// 'type' =&gt; 'PSB',</span>
<span class="hljs-comment">// 'ifsc' =&gt; 'PUNB0244200',</span>
<span class="hljs-comment">// 'micr' =&gt; '110024001',</span>
<span class="hljs-comment">// 'iin' =&gt; '508568',</span>
<span class="hljs-comment">// 'apbs' =&gt; true,</span>
<span class="hljs-comment">// 'ach_credit' =&gt; true,</span>
<span class="hljs-comment">// 'ach_debit' =&gt; true,</span>
<span class="hljs-comment">// 'nach_debit' =&gt; true,</span>
<span class="hljs-comment">// 'name' =&gt; 'Punjab National Bank',</span>
<span class="hljs-comment">// 'bank_code' =&gt; '024',</span>
<span class="hljs-comment">// 'upi' =&gt; true</span>
<span class="hljs-comment">// ]</span>
</span></span></foreignObject></svg></code></pre>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="27" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="27" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h2>lookups</h2>
<pre><code class="language-php"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap>$client = <span class="hljs-keyword">new</span> Client();
$res = $client-&gt;lookupIFSC(<span class="hljs-string">'KKBK0000261'</span>);
<span class="hljs-keyword">echo</span> $res-&gt;bank; <span class="hljs-comment">// 'KOTAK MAHINDRA BANK LIMITED'</span>
<span class="hljs-keyword">echo</span> $res-&gt;branch; <span class="hljs-comment">// 'GURGAON'</span>
<span class="hljs-keyword">echo</span> $res-&gt;address; <span class="hljs-comment">// 'JMD REGENT SQUARE,MEHRAULI GURGAON ROAD,OPPOSITE BRISTOL HOTEL,'</span>
<span class="hljs-keyword">echo</span> $res-&gt;contact; <span class="hljs-comment">// '4131000'</span>
<span class="hljs-keyword">echo</span> $res-&gt;city; <span class="hljs-comment">// 'GURGAON'</span>
<span class="hljs-keyword">echo</span> $res-&gt;district; <span class="hljs-comment">// 'GURGAON'</span>
<span class="hljs-keyword">echo</span> $res-&gt;state; <span class="hljs-comment">// 'HARYANA'</span>
<span class="hljs-keyword">echo</span> $res-&gt;getBankCode(); <span class="hljs-comment">// KKBK</span>
<span class="hljs-keyword">echo</span> $res-&gt;getBankName(); <span class="hljs-comment">// 'Kotak Mahindra Bank'</span>
</span></span></foreignObject></svg></code></pre>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="28" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="28" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1>Node.js</h1>
<pre><code class="language-js"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap>ifsc.validate(<span class="hljs-string">'BOTM0XEEMRA'</span>); <span class="hljs-comment">// returns false</span>
<span class="hljs-comment">// Look ma, promises!</span>
ifsc.fetchDetails(<span class="hljs-string">'KKBK0000261'</span>).then(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">res</span>) </span>{
<span class="hljs-built_in">console</span>.log(res);
});
<span class="hljs-built_in">console</span>.log(ifsc.bank.PUNB); <span class="hljs-comment">// Prints 'PUNB'</span>
</span></span></foreignObject></svg></code></pre>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="29" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="29" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1>Ruby</h1>
<pre><code class="language-ruby"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap>Razorpay::IFSC::IFSC.validate! <span class="hljs-string">'KKBK0000261'</span> <span class="hljs-comment"># =&gt; true</span>
<span class="hljs-comment"># Fetches details over API, constants as well</span>
Razorpay::IFSC::Bank.get_details Razorpay::IFSC::Bank::PUNB
{
<span class="hljs-symbol">code:</span> <span class="hljs-string">'PUNB'</span>,
<span class="hljs-symbol">type:</span> <span class="hljs-string">'PSB'</span>,
<span class="hljs-symbol">ifsc:</span> <span class="hljs-string">'PUNB0244200'</span>,
<span class="hljs-symbol">micr:</span> <span class="hljs-string">'110024001'</span>,
<span class="hljs-symbol">bank_code:</span> <span class="hljs-string">'024'</span>,
<span class="hljs-symbol">iin:</span> <span class="hljs-string">'508568'</span>,
<span class="hljs-symbol">apbs:</span> <span class="hljs-literal">true</span>,
<span class="hljs-symbol">ach_credit:</span> <span class="hljs-literal">true</span>,
<span class="hljs-symbol">ach_debit:</span> <span class="hljs-literal">true</span>,
<span class="hljs-symbol">nach_debit:</span> <span class="hljs-literal">true</span>
}
</span></span></foreignObject></svg></code></pre>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="30" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="30" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1>Support Matrix</h1>
<table>
<thead>
<tr>
<th>Language</th>
<th>Validation</th>
<th>API Client</th>
<th>Sublet Support (Custom)</th>
<th>Bank Constants</th>
</tr>
</thead>
<tbody>
<tr>
<td>PHP</td>
<td><img class="emoji" draggable="false" alt="✅" src="https://twemoji.maxcdn.com/2/svg/2705.svg" data-marp-twemoji=""/></td>
<td><img class="emoji" draggable="false" alt="✅" src="https://twemoji.maxcdn.com/2/svg/2705.svg" data-marp-twemoji=""/></td>
<td><img class="emoji" draggable="false" alt="✅" src="https://twemoji.maxcdn.com/2/svg/2705.svg" data-marp-twemoji=""/> (<img class="emoji" draggable="false" alt="✅" src="https://twemoji.maxcdn.com/2/svg/2705.svg" data-marp-twemoji=""/>)</td>
<td><img class="emoji" draggable="false" alt="✅" src="https://twemoji.maxcdn.com/2/svg/2705.svg" data-marp-twemoji=""/></td>
</tr>
<tr>
<td>Ruby</td>
<td><img class="emoji" draggable="false" alt="✅" src="https://twemoji.maxcdn.com/2/svg/2705.svg" data-marp-twemoji=""/></td>
<td><img class="emoji" draggable="false" alt="✅" src="https://twemoji.maxcdn.com/2/svg/2705.svg" data-marp-twemoji=""/></td>
<td><img class="emoji" draggable="false" alt="✅" src="https://twemoji.maxcdn.com/2/svg/2705.svg" data-marp-twemoji=""/> (<img class="emoji" draggable="false" alt="✅" src="https://twemoji.maxcdn.com/2/svg/2705.svg" data-marp-twemoji=""/>)</td>
<td><img class="emoji" draggable="false" alt="✅" src="https://twemoji.maxcdn.com/2/svg/2705.svg" data-marp-twemoji=""/></td>
</tr>
<tr>
<td>Elixir</td>
<td><img class="emoji" draggable="false" alt="✅" src="https://twemoji.maxcdn.com/2/svg/2705.svg" data-marp-twemoji=""/></td>
<td><img class="emoji" draggable="false" alt="✅" src="https://twemoji.maxcdn.com/2/svg/2705.svg" data-marp-twemoji=""/></td>
<td><img class="emoji" draggable="false" alt="✅" src="https://twemoji.maxcdn.com/2/svg/2705.svg" data-marp-twemoji=""/> (<img class="emoji" draggable="false" alt="❎" src="https://twemoji.maxcdn.com/2/svg/274e.svg" data-marp-twemoji=""/>)</td>
<td><img class="emoji" draggable="false" alt="❎" src="https://twemoji.maxcdn.com/2/svg/274e.svg" data-marp-twemoji=""/></td>
</tr>
<tr>
<td>Node.js</td>
<td><img class="emoji" draggable="false" alt="✅" src="https://twemoji.maxcdn.com/2/svg/2705.svg" data-marp-twemoji=""/></td>
<td><img class="emoji" draggable="false" alt="✅" src="https://twemoji.maxcdn.com/2/svg/2705.svg" data-marp-twemoji=""/></td>
<td><img class="emoji" draggable="false" alt="❎" src="https://twemoji.maxcdn.com/2/svg/274e.svg" data-marp-twemoji=""/> (<img class="emoji" draggable="false" alt="❎" src="https://twemoji.maxcdn.com/2/svg/274e.svg" data-marp-twemoji=""/>)</td>
<td><img class="emoji" draggable="false" alt="✅" src="https://twemoji.maxcdn.com/2/svg/2705.svg" data-marp-twemoji=""/></td>
</tr>
</tbody>
</table>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="31" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="31" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1>Growth Chart</h1>
<p><img src="chart.png" alt="" /></p>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="32" style="--paginate:true;" data-marpit-advanced-background="background"><div data-marpit-advanced-background-container="true" data-marpit-advanced-background-direction="horizontal"><figure style="background-image:url(&quot;https://fakeimg.pl/1920x800/c56cf0/fff/?text=planned+learnings&quot;);"></figure></div></section></foreignObject><foreignObject width="1280" height="720"><section id="32" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="32" style="--paginate:true;" data-marpit-advanced-background="content"><footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject><foreignObject width="1280" height="720" data-marpit-advanced-background="pseudo"><section style="" data-marpit-advanced-background="pseudo" data-marpit-pagination="32"></section></foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="33" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="33" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1>planned learnings</h1>
<ul>
<li>polyglot-single-repo-packages</li>
<li>open-data-superfast-public-APIs</li>
<li>scapegoat-application for random tests</li>
</ul>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="34" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="34" style="--paginate:true;">
<h1>polyglot</h1>
<pre><code><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap>src/banknames<span class="hljs-selector-class">.json</span>
2020-02-06 10:13:17 +00:00
src/ruby
2020-05-16 11:46:18 +00:00
src/banks<span class="hljs-selector-class">.json</span>
2020-02-06 10:13:17 +00:00
src/patches
2020-05-16 11:46:18 +00:00
src/custom-sublets<span class="hljs-selector-class">.json</span>
2020-02-06 10:13:17 +00:00
src/elixir
src/node
2020-05-16 11:46:18 +00:00
src/IFSC<span class="hljs-selector-class">.json</span>
src/sublet<span class="hljs-selector-class">.json</span>
2020-02-06 10:13:17 +00:00
src/php
</span></span></foreignObject></svg></code></pre>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="35" style="--paginate:true;" data-marpit-advanced-background="background"><div data-marpit-advanced-background-container="true" data-marpit-advanced-background-direction="horizontal"><figure style="background-image:url(&quot;https://fakeimg.pl/1920x800/c56cf0/fff/?text=unplanned+learnings&quot;);"></figure></div></section></foreignObject><foreignObject width="1280" height="720"><section id="35" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="35" style="--paginate:true;" data-marpit-advanced-background="content"><footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject><foreignObject width="1280" height="720" data-marpit-advanced-background="pseudo"><section style="" data-marpit-advanced-background="pseudo" data-marpit-pagination="35"></section></foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="36" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="36" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1>1. There are too many banks in India</h1>
<ul>
<li><code>banknames.json</code> holds 1400+ named banks</li>
<li>Adding sublets, it adds up to atleast 2500+</li>
<li>Not all banks are recognized by RBI (with a 4 letter code)</li>
</ul>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="37" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="37" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1>2. There are 11 kinds of banks in India:</h1>
<ul>
<li>DCCB (District Co-operative Central Bank)</li>
<li>Foreign Bank</li>
<li>LAB (Local Area Bank)</li>
<li>O-UCB (Urban Co-operative Bank)</li>
<li>PB (Payment Bank)</li>
<li>Private (Private Sector Banks)</li>
<li>PSB (Public Sector Bank)</li>
<li>RRB (Regional Rural Bank)</li>
2020-05-16 11:46:18 +00:00
<li>S-UCB (State Urban Co-operative Banks)</li>
2020-02-06 10:13:17 +00:00
<li>SCB (State Co-operative Bank)</li>
<li>SFB (Small Finance Bank)</li>
</ul>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="38" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="38" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1>3. RBI has no idea what its doing.</h1>
<pre><code><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap><span class="hljs-string">"IPOS"</span>: <span class="hljs-string">"India Post Payments Bank"</span>,
<span class="hljs-string">"IPPB"</span>: <span class="hljs-string">"India Post Payments Bank"</span>,
</span></span></foreignObject></svg></code></pre>
<h2><code>IPOS0000001</code></h2>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="39" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="39" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1>3.1 AJAR/AJUX</h1>
<pre><code><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap><span class="hljs-string">"AJAR"</span>: <span class="hljs-string">"Ajara Urban Co-operative Bank"</span>,
<span class="hljs-string">"AJUX"</span>: <span class="hljs-string">"Ajara Urban Co-operative Bank"</span>,
</span></span></foreignObject></svg></code></pre>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="40" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="40" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h2>3.2 CXBX (Chartered Sahakari Bank Niyamitha)</h2>
<p><code>CSBX0CSB001</code> (Supports only IMPS, not listed by RBI)</p>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="41" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="41" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h2>3.3 KOEX (KEB Hana Bank)</h2>
<pre><code><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap><span class="hljs-string">KOEX0000001:</span> RTGS<span class="hljs-regexp">/NEFT/</span>IMPS
<span class="hljs-string">KOEX0000002:</span> RTGS<span class="hljs-regexp">/NEFT/</span>IMPS
<span class="hljs-string">KOEX00000SC:</span> RTGS/IMPS
</span></span></foreignObject></svg></code></pre>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="42" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="42" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1>4. The NPCI doesn't come under RTI</h1>
<blockquote>
<p>The contention arises from the fact that while it is incorporated as a non-profit organisation, 57 percent of its shares are held by public sector banks.</p>
</blockquote>
<blockquote>
<p>“In a reply to an RTI, we found that AP Hota, the chief general manager of the RBI, was deputed by the Bank for two years to the management. Moreover, the RTI also revealed that RBI had provided office space as well as an inventory list of items to NPCI.”</p>
</blockquote>
<h2>Judgement:</h2>
<blockquote>
2020-05-16 11:46:18 +00:00
<p>Commission is also of the view that it may be open to the complainantto seek information through public authority for NPCI i.e. RBI or Ministry of Financeas the case may be. That being so, the complaint of the complainant is unfounded and the same is rejected. <a href="https://bit.ly/39dsFK6">https://bit.ly/39dsFK6</a> (Dec 2019)</p>
2020-02-06 10:13:17 +00:00
</blockquote>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="43" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="43" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1>5. Companies still use MICR</h1>
2020-05-16 11:46:18 +00:00
<p>(Magnetic Ink Character Recognition code)</p>
2020-02-06 10:13:17 +00:00
<pre><code><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap><span class="hljs-number">000</span> <span class="hljs-number">000</span> <span class="hljs-number">000</span>
City Bank Branch
</span></span></foreignObject></svg></code></pre>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="44" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="44" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1>6. IBAN</h1>
<h2>International Bank Account Number</h2>
<blockquote>
<p>the Committee felt that longest IBAN is most suitable for the country. Longest IBAN envisages 26 digits IBAN for the banks in India with 18 digit account number, 4 digit bank code, 2 digit country code and 2 check digits. Under this system, banks can continue to use the existing account numbers, and where necessary the number will be padded with zeros to make the length of 18 digits as required.</p>
</blockquote>
<p><code>IN</code> + Check Digit + Bank Code + Account Number</p>
<ul>
<li>Bank Code: <code>[:alpha:]{4}</code></li>
<li>Check Digit: <code>[:digit:]{2}</code></li>
<li>Account Number: <code>[:alphanum:]{18}</code></li>
</ul>
<p>Source: <a href="https://www.iban.in/structure.html">https://www.iban.in/structure.html</a></p>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="45" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="45" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1>7. Bank Mergers are fun!</h1>
<blockquote>
2020-05-16 11:46:18 +00:00
<p>After merger, for all outward IMPS transactions of associate banks the IFS Code will changeand will be intimated to customer. However for all the inward IMPS transaction bank will support old IFSC number till 1 Month from the date of merger.</p>
2020-02-06 10:13:17 +00:00
<ul>
<li><a href="https://bank.sbi/webfiles/uploads/files/mergerofassociatebanks/IMPS%20Merger%20FAQ.pdf">SBI</a></li>
</ul>
</blockquote>
2020-05-16 11:46:18 +00:00
<p>But every merger is handled differently.</p>
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="46" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="46" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1>8. Naming banks is hard</h1>
<ul>
<li>20 different ways to write &quot;Co-operative&quot;</li>
<li>Zhilla, Zila, Jila, Jhila, District</li>
<li>Sahkari, Sahakari, Sah.,</li>
</ul>
2020-05-16 11:46:18 +00:00
<p>This was so problematic, that I ended up writing <a href="https://github.com/razorpay/ifsc/blob/master/CONTRIBUTING.md#bank-names-guidelines">Guidelines on how to keep bank names consistent</a>.</p>
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="47" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="47" style="--paginate:true;">
<h1>8.5 Guiding Principles</h1>
<ol>
<li>Keep &quot;dataset&quot; current (no dead IFSCs).</li>
<li>Keep list of banks comprehensive (include dead banks).</li>
<li>Only use official upstream sources.</li>
</ol>
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="48" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="48" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1>9. IFSC Issuance Process</h1>
<ul>
<li>RBI issues 4 letter Bank Codes.</li>
<li>They end in &quot;X&quot; for banks not connected to RBI payment/settlement systems</li>
<li>Banks inform RBI of IFSCs for each branch via <a href="http://www.idrbt.ac.in/sfms.html">SFMS</a></li>
<li>Banks inform NPCI separately of IFSCs for each branch via NFS (?)</li>
2020-05-16 11:46:18 +00:00
<li>Issuance of each branch code is entirely owned by the bank.</li>
2020-02-06 10:13:17 +00:00
</ul>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="49" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="49" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1>10. So many codes</h1>
<ul>
<li>IFSC code for IMPS</li>
<li>IFSC code for NEFT/RTGS</li>
<li>MICR code for cheques</li>
<li>SWIFT/SWIFT-BIC/BIC code for International inbound transfers</li>
<li>IBAN (International Bank Account Number)</li>
<li>NBIN (National Bank Identification) `[:digit:]{4}``</li>
<li>MMID <code>[:digit:]{7}</code> (NBIN+MAS (Mobile Account Selector, <code>[:digit:]{3}</code>))</li>
</ul>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="50" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="50" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1>11. I have no idea what I'm doing</h1>
<ul>
<li>NBIN format</li>
<li>Compression/Bloom Filter attempts</li>
</ul>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="51" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="51" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1>12. NPCI has no idea what it's doing</h1>
<p><code>@jio,@ezeepay,@lime,@purz,@s2b,@srcb,@upi</code></p>
<p>UPI handles with unknown issuing bank.</p>
<p>What happens to MDR?</p>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="52" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="52" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1>13. RBI doesn't care about data sanity</h1>
<h2>13.1 Encoding Issues</h2>
<p><code>&quot;CHENNAI - CENOTAPH ROAD &quot;</code><br />
<code>&quot;1, CENOTAPH ROAD, CHENNAI. &quot;</code></p>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="53" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="53" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h2>13.2 RBI Excel Sheets are broken</h2>
2020-05-16 11:46:18 +00:00
<pre><code><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap>[<span class="hljs-meta">WARN</span>] IFSC code longer than <span class="hljs-number">11</span> characters: IOBA0003378 RO-TIRUPATHI, <span class="hljs-keyword">using</span> IOBA0003378
[<span class="hljs-meta">WARN</span>] IFSC code longer than <span class="hljs-number">11</span> characters: BANK OF BARODA, <span class="hljs-keyword">using</span> BANKOFBAROD
[<span class="hljs-meta">WARN</span>] Second Entry found <span class="hljs-keyword">for</span> HDFC0000917, discarding
[<span class="hljs-meta">WARN</span>] Second Entry found <span class="hljs-keyword">for</span> FDRL0001808, discarding
[<span class="hljs-meta">WARN</span>] Second Entry found <span class="hljs-keyword">for</span> ICIC0000248, discarding
[<span class="hljs-meta">WARN</span>] Second Entry found <span class="hljs-keyword">for</span> ICIC0000557, discarding
[<span class="hljs-meta">WARN</span>] Second Entry found <span class="hljs-keyword">for</span> ICIC0006252, discarding
[<span class="hljs-meta">WARN</span>] Second Entry found <span class="hljs-keyword">for</span> CNRB0006822, discarding
[<span class="hljs-meta">WARN</span>] Second Entry found <span class="hljs-keyword">for</span> DBSS0IN0901, discarding
2020-02-06 10:13:17 +00:00
</span></span></foreignObject></svg></code></pre>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="54" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="54" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1>13.3 RBI Excel Sheets are very broken</h1>
<pre><code><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap>[<span class="hljs-meta">WARN</span>] Second Entry found <span class="hljs-keyword">for</span> ICIC0002261, discarding
[<span class="hljs-meta">WARN</span>] Second Entry found <span class="hljs-keyword">for</span> IDFB0040138, discarding
[<span class="hljs-meta">WARN</span>] Second Entry found <span class="hljs-keyword">for</span> CBIN0284329, discarding
[<span class="hljs-meta">WARN</span>] Second Entry found <span class="hljs-keyword">for</span> UTIB0002805, discarding
[<span class="hljs-meta">WARN</span>] Second Entry found <span class="hljs-keyword">for</span> DCBL0000126, discarding
[<span class="hljs-meta">WARN</span>] Second Entry found <span class="hljs-keyword">for</span> ICIC0000276, discarding
[<span class="hljs-meta">WARN</span>] Second Entry found <span class="hljs-keyword">for</span> ICIC0006033, discarding
[<span class="hljs-meta">WARN</span>] IFSC code longer than <span class="hljs-number">11</span> characters: IOBA0003379 RO-NAGERCOIL, <span class="hljs-keyword">using</span> IOBA0003379
[<span class="hljs-meta">WARN</span>] IFSC code longer than <span class="hljs-number">11</span> characters: IOBA0003392
[<span class="hljs-meta">INFO</span>] Removed BANKOFBAROD <span class="hljs-keyword">from</span> the list
</span></span></foreignObject></svg></code></pre>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="55" style="--paginate:true;" data-marpit-advanced-background="background"><div data-marpit-advanced-background-container="true" data-marpit-advanced-background-direction="horizontal"><figure style="background-image:url(&quot;rbi-issues.jpg&quot;);background-size:80%;"></figure></div></section></foreignObject><foreignObject width="1280" height="720"><section id="55" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="55" style="--paginate:true;" data-marpit-advanced-background="content"><footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
</section>
</foreignObject><foreignObject width="1280" height="720" data-marpit-advanced-background="pseudo"><section style="" data-marpit-advanced-background="pseudo" data-marpit-pagination="55"></section></foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="56" style="--paginate:true;" data-marpit-advanced-background="background"><div data-marpit-advanced-background-container="true" data-marpit-advanced-background-direction="horizontal"><figure style="background-image:url(&quot;rbi-response.png&quot;);background-size:70%;"></figure></div></section></foreignObject><foreignObject width="1280" height="720"><section id="56" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="56" style="--paginate:true;" data-marpit-advanced-background="content"><footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
</section>
</foreignObject><foreignObject width="1280" height="720" data-marpit-advanced-background="pseudo"><section style="" data-marpit-advanced-background="pseudo" data-marpit-pagination="56"></section></foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="57" style="--paginate:true;" data-marpit-advanced-background="background"><div data-marpit-advanced-background-container="true" data-marpit-advanced-background-direction="horizontal"><figure style="background-image:url(&quot;rbi-email-1.png&quot;);background-size:80%;"></figure></div></section></foreignObject><foreignObject width="1280" height="720"><section id="57" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="57" style="--paginate:true;" data-marpit-advanced-background="content"><footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
</section>
</foreignObject><foreignObject width="1280" height="720" data-marpit-advanced-background="pseudo"><section style="" data-marpit-advanced-background="pseudo" data-marpit-pagination="57"></section></foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="58" style="--paginate:true;" data-marpit-advanced-background="background"><div data-marpit-advanced-background-container="true" data-marpit-advanced-background-direction="horizontal"><figure style="background-image:url(&quot;rbi-email-2.png&quot;);background-size:80%;"></figure></div></section></foreignObject><foreignObject width="1280" height="720"><section id="58" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="58" style="--paginate:true;" data-marpit-advanced-background="content"><footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject><foreignObject width="1280" height="720" data-marpit-advanced-background="pseudo"><section style="" data-marpit-advanced-background="pseudo" data-marpit-pagination="58"></section></foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="59" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="59" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1>14. <a href="https://github.com/razorpay/ifsc/issues/154">NEFT blocks</a></h1>
2020-05-16 11:46:18 +00:00
<blockquote>
<p>the below following banks have been temporarily kept out of NEFT system (only) due to technical non-compliance, as such these bank will not be in a position to receive or make payments through NEFT till further orders.</p>
</blockquote>
<blockquote>
<p>The NEFT payments will be REJECTED by RBI with reason as “SENDER OR BENEFICIARY BANK NOT PARTICIPANT OF NEFT”, if we received and sent for settlement.</p>
</blockquote>
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="60" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="60" style="--paginate:true;">
<h1>NEFT Blocks</h1>
<table>
<thead>
<tr>
<th>Bank Name</th>
<th>IFSC Main Code</th>
<th>Total Branches</th>
</tr>
</thead>
<tbody>
<tr>
<td>BANK OF CEYLON</td>
<td>BCEY</td>
<td>3</td>
</tr>
<tr>
<td>KAVERI GRAMEENA BANK</td>
<td>KGRB</td>
<td>488</td>
</tr>
<tr>
<td>KERALA GRAMIN BANK</td>
<td>KLGB</td>
<td>650</td>
</tr>
<tr>
<td>KRUNG THAI BANK PCL</td>
<td>KRTH</td>
<td>2</td>
</tr>
<tr>
<td>PRAGATHI KRISHNA GRAMIN BANK</td>
<td>PKGB</td>
<td>1160</td>
</tr>
<tr>
<td>SBM BANK MAURITIUS LTD</td>
<td>STCB</td>
<td>2</td>
</tr>
</tbody>
</table>
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="61" style="--paginate:true;" data-marpit-advanced-background="background"><div data-marpit-advanced-background-container="true" data-marpit-advanced-background-direction="horizontal"><figure style="background-image:url(&quot;https://fakeimg.pl/1920x800/ff4d4d/fff/?text=HDFC0CSSUCB&amp;font=bebas&quot;);"></figure></div></section></foreignObject><foreignObject width="1280" height="720"><section id="61" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="61" style="--paginate:true;" data-marpit-advanced-background="content">
2020-02-06 10:13:17 +00:00
<h1></h1>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject><foreignObject width="1280" height="720" data-marpit-advanced-background="pseudo"><section style="" data-marpit-advanced-background="pseudo" data-marpit-pagination="61"></section></foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="62" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="62" style="--paginate:true;">
<h1>15. Sublet Branches</h1>
<pre><code class="language-json"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap>{
<span class="hljs-attr">"RTGS"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"CONTACT"</span>: <span class="hljs-string">"9890960146"</span>,
<span class="hljs-attr">"CITY"</span>: <span class="hljs-string">"SOLAPUR"</span>,
<span class="hljs-attr">"IMPS"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"ADDRESS"</span>: <span class="hljs-string">"6151 1 SIDDHESHWAR SHOPING CENTER SHOP NO 18 19 SIDHESHWAR PETH SOLAPUR"</span>,
<span class="hljs-attr">"DISTRICT"</span>: <span class="hljs-string">"SOLAPUR"</span>,
<span class="hljs-attr">"CENTRE"</span>: <span class="hljs-string">"SOLAPUR"</span>,
<span class="hljs-attr">"STATE"</span>: <span class="hljs-string">"MAHARASHTRA"</span>,
<span class="hljs-attr">"NEFT"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"BRANCH"</span>: <span class="hljs-string">"Solapur Social Urban Co-operative Bank IMPS"</span>,
<span class="hljs-attr">"MICR"</span>: <span class="hljs-string">"413590002"</span>,
<span class="hljs-attr">"UPI"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"BANK"</span>: <span class="hljs-string">"Solapur Social Urban Co-operative Bank"</span>,
<span class="hljs-attr">"BANKCODE"</span>: <span class="hljs-string">"SSLX"</span>,
<span class="hljs-attr">"IFSC"</span>: <span class="hljs-string">"HDFC0CSSUCB"</span>
}
</span></span></foreignObject></svg></code></pre>
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="63" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="63" style="--paginate:true;">
<h1>Sublet Identification</h1>
<ol>
<li><a href="https://www.npci.org.in/national-automated-clearing-live-members-1">NPCI ACH List</a> documents the IFSC that each bank provides for their IMPS setup</li>
<li>The Excel sheets provided by RBI have a bank name in the &quot;branch name&quot; field.</li>
</ol>
<p>Becomes much harder because bank names submitted to RBI may be different from what's submitted to NPCI, and doing exact matches for bank names is impossible.</p>
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="64" style="--paginate:true;" data-marpit-advanced-background="background"><div data-marpit-advanced-background-container="true" data-marpit-advanced-background-direction="horizontal"><figure style="background-image:url(&quot;https://fakeimg.pl/1920x800/ff4d4d/fff/?text=the+tech&quot;);"></figure></div></section></foreignObject><foreignObject width="1280" height="720"><section id="64" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="64" style="--paginate:true;" data-marpit-advanced-background="content">
<h1></h1>
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
</section>
</foreignObject><foreignObject width="1280" height="720" data-marpit-advanced-background="pseudo"><section style="" data-marpit-advanced-background="pseudo" data-marpit-pagination="64"></section></foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="65" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="65" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1>tech</h1>
<ol>
<li>scraper, written in ruby/bash (~400 lines)</li>
<li>release notes generator script, written in PHP</li>
<li>A patch manager to &quot;fix&quot; issues</li>
</ol>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="66" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="66" style="--paginate:true;">
<h1>run it yourselves:</h1>
<pre><code class="language-sh"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap>git <span class="hljs-built_in">clone</span> https://github.com/razorpay/ifsc.git
<span class="hljs-built_in">cd</span> ifsc/scraper
bundle install
<span class="hljs-built_in">cd</span> scripts
./bootstrap.sh
</span></span></foreignObject></svg></code></pre>
<p>Check the <code>ifsc/scraper/scripts/data</code> directory once it finishes.</p>
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="67" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="67" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<pre><code class="language-yaml"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap><span class="hljs-meta">---</span>
<span class="hljs-comment"># https://github.com/razorpay/ifsc/issues/154</span>
<span class="hljs-attr">action:</span> <span class="hljs-string">patch</span>
<span class="hljs-attr">patch:</span>
2020-05-16 11:46:18 +00:00
<span class="hljs-attr"> NEFT:</span> <span class="hljs-literal">false</span>
2020-02-06 10:13:17 +00:00
<span class="hljs-attr">ifsc:</span>
<span class="hljs-comment"># - KRTH0INBB00</span>
2020-05-16 11:46:18 +00:00
<span class="hljs-bullet"> -</span> <span class="hljs-string">BCEY0000001</span>
<span class="hljs-bullet"> -</span> <span class="hljs-string">BCEY0CHEN01</span>
<span class="hljs-bullet"> -</span> <span class="hljs-string">KGRB0000001</span>
<span class="hljs-bullet"> -</span> <span class="hljs-string">KGRB0000002</span>
<span class="hljs-bullet"> -</span> <span class="hljs-string">KGRB0000004</span>
2020-02-06 10:13:17 +00:00
</span></span></foreignObject></svg></code></pre>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="68" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="68" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<pre><code class="language-yaml"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap><span class="hljs-meta">---</span>
<span class="hljs-comment"># https://github.com/razorpay/ifsc/issues/126</span>
<span class="hljs-comment"># Source: https://www.npci.org.in/upi-live-members</span>
<span class="hljs-comment"># Last Updated: Jan 2020 (Count = 143)</span>
<span class="hljs-attr">action:</span> <span class="hljs-string">patch</span>
<span class="hljs-attr">patch:</span>
<span class="hljs-string">:upi:</span> <span class="hljs-literal">true</span>
<span class="hljs-attr">banks:</span>
2020-05-16 11:46:18 +00:00
<span class="hljs-bullet"> -</span> <span class="hljs-string">ABHY</span>
<span class="hljs-bullet"> -</span> <span class="hljs-string">ACBX</span>
<span class="hljs-bullet"> -</span> <span class="hljs-string">ADBX</span>
<span class="hljs-bullet"> -</span> <span class="hljs-string">AGVX</span>
<span class="hljs-bullet"> -</span> <span class="hljs-string">AIRP</span>
<span class="hljs-bullet"> -</span> <span class="hljs-string">ALLA</span>
2020-02-06 10:13:17 +00:00
</span></span></foreignObject></svg></code></pre>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="69" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="69" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h1>Rigorous Tests</h1>
<h2>Ensure Coverage between datasets</h2>
<pre><code><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap><span class="hljs-attribute">testNames
testConstants
testCoverageAgainstBankNames
testConstantsAgainstNames
testSubletsAgainstConstants
testConstantsAgainstCompleteBanksList
testSubletCoverage
testValidateJsonFormat
testNpciListAgainstRbi
testPatches</span>
</span></span></foreignObject></svg></code></pre>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="70" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="70" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h2>Ensure common tests between languages</h2>
<pre><code class="language-json"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap> <span class="hljs-string">"testBasicValidator"</span>: {
<span class="hljs-attr">"KKBK0000261"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"HDFC0002854"</span>: <span class="hljs-literal">true</span>,
},
<span class="hljs-string">"testValidateStringLookup"</span>: {
<span class="hljs-attr">"BOTM0NEEMRA"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"BARB0ZOOTIN"</span>: <span class="hljs-literal">true</span>
},
<span class="hljs-string">"testValidateInvalidCode"</span>: {
<span class="hljs-attr">"BOTM0XEEMRA"</span>: <span class="hljs-literal">false</span>,
},
<span class="hljs-string">"testHPSC"</span>: {
<span class="hljs-attr">"HPSC0000406"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"HPSC0000300"</span>: <span class="hljs-literal">false</span>
},
<span class="hljs-string">"testEdgeCases"</span>: {
<span class="hljs-attr">"SBMY0040704"</span>: <span class="hljs-literal">false</span>
},
<span class="hljs-string">"testSBIOldCodes"</span>: {
<span class="hljs-attr">"SBBJ0010004"</span>: <span class="hljs-literal">false</span>,
<span class="hljs-attr">"SBBJ0010006"</span>: <span class="hljs-literal">false</span>,
</span></span></foreignObject></svg></code></pre>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="71" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="71" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h2>Ensure coverage across languages</h2>
<pre><code class="language-ruby"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap>it <span class="hljs-string">'should match all constants defined in PHP'</span> <span class="hljs-keyword">do</span>
constants_file = File.readlines(<span class="hljs-string">'src/php/Bank.php'</span>)
bank_constants = constants_file
.select { <span class="hljs-params">|e|</span> e.match(<span class="hljs-regexp">/const/</span>) }
.map { <span class="hljs-params">|e|</span> e[<span class="hljs-regexp">/\s+const (\w{4})/</span>, <span class="hljs-number">1</span>] }
bank_constants.each <span class="hljs-keyword">do</span> <span class="hljs-params">|c|</span>
expect(described_class::const_get(c)).to eq c.to_sym
<span class="hljs-keyword">end</span>
<span class="hljs-keyword">end</span>
</span></span></foreignObject></svg></code></pre>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="72" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="72" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h2>Ensure coverage across languages</h2>
<pre><code class="language-js"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap><span class="hljs-comment">// Validates that all constants defined in PHP are also defined in Node</span>
<span class="hljs-keyword">let</span> file = fs
.readFileSync(<span class="hljs-string">'src/php/Bank.php'</span>)
.toString()
.split(<span class="hljs-string">'\n'</span>)
2020-05-16 11:46:18 +00:00
.filter(<span class="hljs-function">(<span class="hljs-params">l</span>) =&gt;</span> {
2020-02-06 10:13:17 +00:00
<span class="hljs-keyword">return</span> l.indexOf(<span class="hljs-string">'const'</span>) &gt; <span class="hljs-number">-1</span>;
})
2020-05-16 11:46:18 +00:00
.map(<span class="hljs-function">(<span class="hljs-params">l</span>) =&gt;</span> {
2020-02-06 10:13:17 +00:00
<span class="hljs-keyword">return</span> l.match(<span class="hljs-regexp">/\s+const (\w{4})/</span>)[<span class="hljs-number">1</span>];
})
2020-05-16 11:46:18 +00:00
.forEach(<span class="hljs-function">(<span class="hljs-params">code</span>) =&gt;</span> {
2020-02-06 10:13:17 +00:00
assert.equal(BANK[code], code);
assert.equal(IFSC.bank[code], code);
});
</span></span></foreignObject></svg></code></pre>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="73" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="73" style="--paginate:true;">
2020-02-06 10:13:17 +00:00
<h2>The API (<a href="https://github.com/razorpay/ifsc-api/">https://github.com/razorpay/ifsc-api/</a>)</h2>
<ol>
<li>Has all the data committed (huge repo, split-off)</li>
<li>Multi-stage docker build (150MB)</li>
<li>Uses Ruby/Sinatra/Redis for serving requests</li>
</ol>
2020-05-16 11:46:18 +00:00
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="74" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="74" style="--paginate:true;">
<h1>Future Scope</h1>
<ol>
<li><a href="https://github.com/razorpay/ifsc/issues/125">SWIFT code</a> for every bank branch. (<a href="https://github.com/razorpay/ifsc/pull/176">In Progress</a>)</li>
<li><a href="https://github.com/razorpay/ifsc/issues/186">AePS Membership Status</a></li>
<li>Document <em>all sublet branches, even the undeclared ones</em>. (<a href="https://github.com/razorpay/ifsc/pull/166">WIP</a>)</li>
<li>Document <em>all banks, even the undeclared/dead ones</em> (<a href="https://github.com/razorpay/ifsc/pull/166">WIP</a>)</li>
<li>Support for more languages. Contributions welcome.</li>
<li>Improve API to support usecases with free-text search.</li>
<li>Add support for hotlinking bank logos (<code>https://ifsc.razorpay.com/PUNB.svg</code>)</li>
</ol>
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="75" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="75" style="--paginate:true;">
<h1>Special Sublet Work</h1>
<pre><code class="language-yaml"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap><span class="hljs-attr">HDFC0CSLABK:</span> <span class="hljs-string">Subhadra</span> <span class="hljs-string">Local</span> <span class="hljs-string">Area</span> <span class="hljs-string">Bank</span>
<span class="hljs-attr">HDFC0CSLCBL:</span> <span class="hljs-string">Shree</span> <span class="hljs-string">Laxmi</span> <span class="hljs-string">Co-operative</span> <span class="hljs-string">Bank</span>
<span class="hljs-attr">HDFC0CSLKUB:</span> <span class="hljs-string">Shri</span> <span class="hljs-string">Laxmikrupa</span> <span class="hljs-string">Urban</span> <span class="hljs-string">Co-operative</span> <span class="hljs-string">Bank</span>
<span class="hljs-attr">HDFC0CSMCBL:</span> <span class="hljs-string">Satana</span> <span class="hljs-string">Merchants</span> <span class="hljs-string">Co-operative</span> <span class="hljs-string">Bank</span>
<span class="hljs-attr">HDFC0CSMLCB:</span> <span class="hljs-string">Shree</span> <span class="hljs-string">Mahayogi</span> <span class="hljs-string">Lakshmamma</span> <span class="hljs-string">Co-operative</span> <span class="hljs-string">Bank</span>
<span class="hljs-attr">HDFC0CSMNSB:</span> <span class="hljs-string">Sanmitra</span> <span class="hljs-string">Mahila</span> <span class="hljs-string">Nag</span> <span class="hljs-string">Sahakari</span> <span class="hljs-string">Bank</span>
<span class="hljs-attr">HDFC0CSMPAY:</span> <span class="hljs-string">Sangamner</span> <span class="hljs-string">Merch</span> <span class="hljs-string">Co-operative</span> <span class="hljs-string">Bank</span>
<span class="hljs-attr">HDFC0CSMPBA:</span> <span class="hljs-string">Shankarrao</span> <span class="hljs-string">Mohite</span> <span class="hljs-string">Patil</span> <span class="hljs-string">Sah.bank</span>
<span class="hljs-attr">HDFC0CSMRTB:</span> <span class="hljs-string">Smriti</span> <span class="hljs-string">Nagrik</span> <span class="hljs-string">Sahakari</span> <span class="hljs-string">Bank</span>
<span class="hljs-attr">HDFC0CSMSSB:</span> <span class="hljs-string">Shri</span> <span class="hljs-string">Mahila</span> <span class="hljs-string">Sewa</span> <span class="hljs-string">Sahakari</span> <span class="hljs-string">Bank</span>
<span class="hljs-attr">HDFC0CSMUCB:</span> <span class="hljs-string">Shri</span> <span class="hljs-string">Mahavir</span> <span class="hljs-string">Urb</span> <span class="hljs-string">Co-operative</span> <span class="hljs-string">Bank</span>
<span class="hljs-attr">HDFC0CSNCBL:</span> <span class="hljs-string">Saraspur</span> <span class="hljs-string">Nagarik</span> <span class="hljs-string">Co.</span> <span class="hljs-string">Op.</span> <span class="hljs-string">Bank</span>
<span class="hljs-attr">HDFC0CSNCBR:</span> <span class="hljs-string">Surat</span> <span class="hljs-string">National</span> <span class="hljs-string">Co-operative</span> <span class="hljs-string">Bank</span>
<span class="hljs-attr">HDFC0CSNSB0:</span> <span class="hljs-string">Sankheda</span> <span class="hljs-string">Nagrik</span> <span class="hljs-string">Sahakari</span> <span class="hljs-string">Bank</span>
<span class="hljs-attr">HDFC0CSNSBB:</span> <span class="hljs-string">Sarakari</span> <span class="hljs-string">Naukarara</span> <span class="hljs-string">Sahakari</span> <span class="hljs-string">Bank</span>
<span class="hljs-attr">HDFC0CSNSBH:</span> <span class="hljs-string">Sihor</span> <span class="hljs-string">Nagarik</span> <span class="hljs-string">Sahakari</span> <span class="hljs-string">Bank</span>
<span class="hljs-attr">HDFC0CSNSBL:</span> <span class="hljs-string">Sonbhadra</span> <span class="hljs-string">Nagar</span> <span class="hljs-string">Sahakari</span> <span class="hljs-string">Bank</span>
<span class="hljs-attr">HDFC0CSNSBM:</span> <span class="hljs-string">Sadguru</span> <span class="hljs-string">Nagrik</span> <span class="hljs-string">Sahakari</span> <span class="hljs-string">Bank</span>
<span class="hljs-attr">HDFC0CSNSBS:</span> <span class="hljs-string">Sehore</span> <span class="hljs-string">Nagrik</span> <span class="hljs-string">Sahakari</span> <span class="hljs-string">Bank</span>
</span></span></foreignObject></svg></code></pre>
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="76" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="76" style="--paginate:true;">
<h1>RBI</h1>
<p>List of all <a href="https://rbidocs.rbi.org.in/rdocs/Content/pdfs/nonschedulecoop.pdf">Non-scheduled Urban Co-operative Banks</a>(PDF):</p>
<pre><code class="language-yaml"><svg data-marp-fitting="svg" data-marp-fitting-code><foreignObject><span data-marp-fitting-svg-content><span data-marp-fitting-svg-content-wrap><span class="hljs-attr">Name:</span> <span class="hljs-string">Shankerrao</span> <span class="hljs-string">Mohite-Patil</span> <span class="hljs-string">Sahakari</span> <span class="hljs-string">Bank</span> <span class="hljs-string">Ltd</span>
<span class="hljs-string">RO</span> <span class="hljs-attr">Name:</span> <span class="hljs-string">NAGPUR</span>
<span class="hljs-string">HO</span> <span class="hljs-attr">Address:</span> <span class="hljs-string">"Sahakar Mandir"</span><span class="hljs-string">,</span> <span class="hljs-string">Mahaveer</span> <span class="hljs-string">Path,</span> <span class="hljs-string">Akluj,</span> <span class="hljs-string">Solapur,</span> <span class="hljs-string">Maharashtra</span>
<span class="hljs-attr">Pincode:</span> <span class="hljs-number">413101</span>
</span></span></foreignObject></svg></code></pre>
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
</section>
</foreignObject></svg><svg data-marpit-svg="" viewBox="0 0 1280 720"><foreignObject width="1280" height="720"><section id="77" data-paginate="true" data-footer="Slides: [captnemo.in/talks/ifsc](https://captnemo.in/talks/ifsc/)" data-marpit-pagination="77" style="--paginate:true;">
<h2><a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc/</a></h2>
<p>Source : <a href="https://github.com/captn3m0/talks/tree/gh-pages/ifsc">https://github.com/captn3m0/talks/tree/gh-pages/ifsc</a></p>
<footer>Slides: <a href="https://captnemo.in/talks/ifsc/">captnemo.in/talks/ifsc</a></footer>
2020-02-06 10:13:17 +00:00
</section>
2020-05-16 11:46:18 +00:00
</foreignObject></svg></article><script>!function(){"use strict";var e,t,o=(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var o=function(e,t,o){this.name=e,this.version=t,this.os=o};t.BrowserInfo=o;var n=function(e){this.version=e,this.name="node",this.os=process.platform};t.NodeInfo=n;var r=function(){this.bot=!0,this.name="bot",this.version=null,this.os=null};t.BotInfo=r;var i=3,s=[["aol",/AOLShield\/([0-9\._]+)/],["edge",/Edge\/([0-9\._]+)/],["yandexbrowser",/YaBrowser\/([0-9\._]+)/],["vivaldi",/Vivaldi\/([0-9\.]+)/],["kakaotalk",/KAKAOTALK\s([0-9\.]+)/],["samsung",/SamsungBrowser\/([0-9\.]+)/],["silk",/\bSilk\/([0-9._-]+)\b/],["chrome",/(?!Chrom.*OPR)Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],["phantomjs",/PhantomJS\/([0-9\.]+)(:?\s|$)/],["crios",/CriOS\/([0-9\.]+)(:?\s|$)/],["firefox",/Firefox\/([0-9\.]+)(?:\s|$)/],["fxios",/FxiOS\/([0-9\.]+)/],["opera-mini",/Opera Mini.*Version\/([0-9\.]+)/],["opera",/Opera\/([0-9\.]+)(?:\s|$)/],["opera",/OPR\/([0-9\.]+)(:?\s|$)$/],["ie",/Trident\/7\.0.*rv\:([0-9\.]+).*\).*Gecko$/],["ie",/MSIE\s([0-9\.]+);.*Trident\/[4-7].0/],["ie",/MSIE\s(7\.0)/],["bb10",/BB10;\sTouch.*Version\/([0-9\.]+)/],["android",/Android\s([0-9\.]+)/],["ios",/Version\/([0-9\._]+).*Mobile.*Safari.*/],["safari",/Version\/([0-9\._]+).*Safari/],["facebook",/FBAV\/([0-9\.]+)/],["instagram",/Instagram\s([0-9\.]+)/],["ios-webview",/AppleWebKit\/([0-9\.]+).*Mobile/],["searchbot",/alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/]],a=[["iOS",/iP(hone|od|ad)/],["Android OS",/Android/],["BlackBerry OS",/BlackBerry|BB10/],["Windows Mobile",/IEMobile/],["Amazon OS",/Kindle/],["Windows 3.11",/Win16/],["Windows 95",/(Windows 95)|(Win95)|(Windows_95)/],["Windows 98",/(Windows 98)|(Win98)/],["Windows 2000",/(Windows NT 5.0)|(Windows 2000)/],["Windows XP",/(Windows NT 5.1)|(Windows XP)/],["Windows Server 2003",/(Windows NT 5.2)/],["Windows Vista",/(Windows NT 6.0)/],["Windows 7",/(Windows NT 6.1)/],["Windows 8",/(Windows NT 6.2)/],["Windows 8.1",/(Windows NT 6.3)/],["Windows 10",/(Windows NT 10.0)/],["Windows ME",/Windows ME/],["Open BSD",/OpenBSD/],["Sun OS",/SunOS/],["Chrome OS",/CrOS/],["Linux",/(Linux)|(X11)/],["Mac OS",/(Mac_PowerPC)|(Macintosh)/],["QNX",/QNX/],["BeOS",/BeOS/],["OS/2",/OS\/2/],["Search Bot",/(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp)|(MSNBot)|(Ask Jeeves\/Teoma)|(ia_archiver)/]];function l(e){var t=""!==e&&s.reduce(function(t,o){var n=o[0],r=o[1];if(t)return t;var i=r.exec(e);return!!i&&[n,i]},!1);if(!t)return null;var n=t[0],a=t[1];if("searchbot"===n)return new r;var l=a[1]&&a[1].split(/[._]/).slice(0,3);return l?l.length<i&&(l=l.concat(function(e){for(var t=[],o=0;o<e;o++)t.push("0");return t}(i-l.length))):l=[],new o(n,l.join("."),d(e))}function d(e){for(var t=0,o=a.length;t<o;t++){var n=a[t],r=n[0];if(n[1].test(e))return r}return null}function c(){return"undefined"!=typeof process&&process.version?new n(process.version.slice(1)):null}t.detect=function(){return"undefined"!=typeof navigator?l(navigator.userAgent):c()},t.parseUserAgent=l,t.detectOS=d,t.getNodeVersion=c}(e={exports:{}},e.exports),e.exports);(t=o)&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")&&t.default,o.BrowserInfo,o.NodeInfo,o.BotInfo;var n=o.detect;let r;o.parseUserAgent,o.detectOS,o.getNodeVersion;const i=["android","bb10","crios","facebook","fxios","instagram","ios-webview","ios","phantomjs","safari"];function s(e){Array.from(document.getElementsByTagName("svg"),t=>{if(t.hasAttribute("data-marpit-svg")){const{clientHeight:o,clientWidth:n}=t;t.style.transform||(t.style.transform="translateZ(0)");const r=e||t.currentScale||1,i=t.viewBox.baseVal.width/r,s=t.viewBox.baseVal.height/r,a=Math.min(o/s,n/i);Array.from(t.querySelectorAll(":scope > foreignObject"),e=>{const t=e.x.baseVal.value,r=e.y.baseVal.value;Array.from(e.querySelectorAll(":scope > section"),e=>{e.style.transformOrigin||(e.style.transformOrigin="0 0");const l=(n-a*i)/2-t,d=(o-a*s)/2-r;e.style.transform=`translate3d(${l}px,${d}px,0) scale(${a}) translate(${t}px,${
</script><script>!function(){"use strict";var e={from:function(e,n){var t=1===(e.parent||e).nodeType?e.parent||e:document.querySelector(e.parent||e),r=[].filter.call("string"==typeof e.slides?t.querySelectorAll(e.slides):e.slides||t.children,function(e){return"SCRIPT"!==e.nodeName}),i=r[0],l={},o=function(e,n){r[e]&&(a("deactivate",u(i,n)),i=r[e],a("activate",u(i,n)))},s=function(e,n){var t=r.indexOf(i)+e;a(e>0?"next":"prev",u(i,n))&&o(t,n)},c=function(e,n){l[e]=(l[e]||[]).filter(function(e){return e!==n})},a=function(e,n){return(l[e]||[]).reduce(function(e,t){return e&&!1!==t(n)},!0)},u=function(e,n){return(n=n||{}).index=r.indexOf(e),n.slide=e,n},d={on:function(e,n){return(l[e]||(l[e]=[])).push(n),c.bind(null,e,n)},off:c,fire:a,slide:function(e,n){if(!arguments.length)return r.indexOf(i);a("slide",u(r[e],n))&&o(e,n)},next:s.bind(null,1),prev:s.bind(null,-1),parent:t,slides:r};return(n||[]).forEach(function(e){e(d)}),o(0),d}},n=function(){return function(e){e.slides.forEach(function(e){e.addEventListener("keydown",function(e){(/INPUT|TEXTAREA|SELECT/.test(e.target.nodeName)||"true"===e.target.contentEditable)&&e.stopPropagation()})})}};function t(e){e.parent.classList.add("bespoke-marp-parent"),e.slides.map(e=>e.classList.add("bespoke-marp-slide")),e.on("activate",n=>{e.slides.map(e=>e.classList.remove("bespoke-marp-active")),n.slide.classList.add("bespoke-marp-active")})}function r(e=2e3){return n=>{let t;function r(){t&&clearTimeout(t),t=setTimeout(()=>{n.parent.classList.add("bespoke-marp-inactive")},e),n.parent.classList.remove("bespoke-marp-inactive")}document.addEventListener("mousedown",r),document.addEventListener("mousemove",r),document.addEventListener("touchend",r),setTimeout(r,0)}}var i,l=(function(e){var n,t,r,i,l,o;n="undefined"!=typeof window&&void 0!==window.document?window.document:{},t=e.exports,r="undefined"!=typeof Element&&"ALLOW_KEYBOARD_INPUT"in Element,i=function(){for(var e,t=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],r=0,i=t.length,l={};r<i;r++)if((e=t[r])&&e[1]in n){for(r=0;r<e.length;r++)l[t[0][r]]=e[r];return l}return!1}(),l={change:i.fullscreenchange,error:i.fullscreenerror},o={request:function(e){return new Promise(function(t){var l=i.requestFullscreen,o=function(){this.off("change",o),t()}.bind(this);e=e||n.documentElement,/ Version\/5\.1(?:\.\d+)? Safari\//.test(navigator.userAgent)?e[l]():e[l](r?Element.ALLOW_KEYBOARD_INPUT:{}),this.on("change",o)}.bind(this))},exit:function(){return new Promise(function(e){if(this.isFullscreen){var t=function(){this.off("change",t),e()}.bind(this);n[i.exitFullscreen](),this.on("change",t)}else e()}.bind(this))},toggle:function(e){return this.isFullscreen?this.exit():this.request(e)},onchange:function(e){this.on("change",e)},onerror:function(e){this.on("error",e)},on:function(e,t){var r=l[e];r&&n.addEventListener(r,t,!1)},off:function(e,t){var r=l[e];r&&n.removeEventListener(r,t,!1)},raw:i},i?(Object.defineProperties(o,{isFullscreen:{get:function(){return Boolean(n[i.fullscreenElement])}},element:{enumerable:!0,get:function(){return n[i.fullscreenElement]}},enabled:{enumerable:!0,get:function(){return Boolean(n[i.fullscreenEnabled])}}}),t?e.exports=o:window.screenfull=o):t?e.exports=!1:window.screenfull=!1}(i={exports:{}},i.exports),i.exports);function o(e){e.fullscreen=(()=>l.toggle(document.body)),document.addEventListener("keydown",n=>{70!==n.which&&122!==n.which||n.altKey||n.ctrlKey||n.metaKey||!l.enabled||(e.
2020-02-06 10:13:17 +00:00
</script></body></html>