یادداشت‌های میدانی

IBAN مجازی چیست؟

IBAN مجازی (vIBAN) یک شماره حساب بانکی بین‌المللی واقعی و قابل آدرس‌دهی است که از یک بازه اختصاصی صادر می‌شود و به یک حساب اصلی واحد هدایت می‌شود. مثل هر IBAN دیگری پرداخت می‌پذیرد، یعنی پرداخت‌کننده از بانک خودش یک انتقال اعتباری معمولی SEPA به آن می‌فرستد، اما موجودی مستقلی ندارد. کارش شناسایی است: چون هر IBAN مجازی دقیقاً به یک پرداخت‌کننده یا یک هدف اختصاص دارد، پرداختی که به آن می‌رسد از قبل می‌گوید چه کسی فرستاده و برای چیست. پول به‌طور خودکار در حساب اصلی جمع می‌شود؛ IBAN مجازی برچسب پرداخت است، نه جای دومی برای نگهداری پول.

همین یک ویژگی، یعنی یک IBAN برای هر پرداخت‌کننده، کل ایده است. برای اینکه ببینیم چرا ارزش یک مقاله را دارد، از مشکلی شروع می‌کنیم که آن را از میان برمی‌دارد.

مشکل واقعی: تطبیق پول با پرداخت‌کننده

کسب‌وکاری را تصور کنید که از طریق انتقال بانکی به یک حساب وصول می‌کند: اجاره، اشتراک، فاکتور. همه واریزها روی یک IBAN می‌نشینند و تنها سرنخ از اینکه چه کسی پرداخت کرده، همان چیزی است که پرداخت‌کننده در فیلد شرح نوشته است. شرح‌ها اشتباه تایپ می‌شوند، جایی در مسیر بریده می‌شوند یا کاملاً خالی می‌مانند. انتقال 49.00 یورویی با شرح مخدوش هنوز 49.00 یورو درآمد شناخته‌شده نیست؛ یک تیکت است. قبل از بستن دفاتر، باید کسی پیدا کند به کدام مشتری و کدام فاکتور تعلق دارد.

در حجم کم، این فقط مزاحمت است. در حجم پلتفرمی، یک دپارتمان است. موتورهای تطبیق، فاکتورهای کاندیدا را بر اساس مبلغ، تاریخ و متن تقریبی شرح امتیاز می‌دهند و هر چه را نتوانند جا بزنند به صف انسانی می‌رود. شکست هم ساختاری است: وقتی دو مشترک در یک روز مبلغ یکسانی را بدون شرح می‌پردازند، هیچ موتوری نمی‌تواند آن‌ها را از هم جدا کند، چون اطلاعاتِ تمایز از ابتدا در پرداخت نبوده است.

یک IBAN برای هر پرداخت‌کننده: هویت از بنیان

برنامه IBAN مجازی طراحی را وارونه می‌کند. به‌جای اینکه از هر پرداخت‌کننده بخواهید پرداختش را درست برچسب بزند، به هر کدام آدرس مخصوص خودش را می‌دهید. هر مستأجر، مشترک یا فروشنده بازارگاه به IBANی پرداخت می‌کند که فقط مال خودش است. فیلد شرح می‌تواند غلط، خالی یا به الفبای دیگری باشد و واریز باز هم خودش را معرفی می‌کند، چون هویت را شماره حساب حمل می‌کند.

شماره حساب حامل بسیار بهتری از شرح است. IBAN ارقام کنترلی خودش را دارد، بنابراین IBANِ اشتباه تایپ‌شده همان در بانکِ پرداخت‌کننده و پیش از ارسال انتقال رد می‌شود. شرح اشتباه بی‌مشکل رد می‌شود و می‌شود مشکل شما. وقتی هویت را از متن آزاد به آدرس منتقل می‌کنید، بررسی خطا هم از پشت‌صحنه شما به بانک فرستنده می‌رود.

برای پرداخت‌کننده چیزی تغییر نمی‌کند: مثل همیشه از اپ بانکی‌اش به یک IBAN پرداخت می‌کند. همه تازگی سمت دریافت است: پرداخت برچسب‌خورده می‌رسد و فیلد شرح به همان جایگاه واقعی‌اش برمی‌گردد، یعنی یک یادداشت، نه سیستم شناسایی.

وقتی هر پرداخت‌کننده به IBAN خودش پرداخت می‌کند، یک پرداخت ورودی فقط یک معنا دارد. مسئله تطبیق حل نمی‌شود؛ از اساس وجود نخواهد داشت.
— Protocore · مهندسی پرداخت

پول واقعاً کجاست

در لایه زیرین، برای هر ارز دقیقاً یک حساب اصلی وجود دارد. IBANهای مجازی از بازه‌های اختصاصی برنامه صادر می‌شوند و هر واریز به هرکدام از آن‌ها در حساب اصلی تسویه می‌شود. موجودی جداگانه‌ای برای هر پرداخت‌کننده وجود ندارد که مدیریت شود و جاب‌های جاروی پایان روز هم لازم نیست که وجوه هزاران حساب کوچک را به یک حساب منتقل کنند. تجمیع با مسیریابی انجام می‌شود، نه با انتقال‌های اضافه‌ای که بعد خودشان باید تطبیق داده شوند.

همین هم IBAN مجازی را واقعی می‌کند، نه یک ترفند. از هر بانکی قابل آدرس‌دهی است، مثل هر واریز SEPA تسویه می‌شود و در صورت‌حساب خود پرداخت‌کننده به‌عنوان حسابی که به آن پرداخته نمایش داده می‌شود. آنچه ندارد دقیقاً همان چیزی است که یک حساب کامل با خودش می‌آورد: موجودی مستقل و چرخه عمری فراتر از تخصیص و ابطال.

IBAN مجازی چه چیزی نیست

زیرحساب نیست: زیرحساب موجودی دارد، شارژ و تخلیه می‌خواهد و تعداد دفاتری را که باید اداره کنید چند برابر می‌کند. شماره مرجع مجازی هم نیست: آن‌ها هنوز سوار فیلد شرح هستند و هنوز به درست کپی کردن رشته‌ها توسط پرداخت‌کننده‌ها وابسته‌اند. کیف پول هم نیست: چیزی روی خود vIBAN نگهداری نمی‌شود. آدرسی است با مسیریابی پشت آن، کمینه‌ترین ساختاری که یک پرداخت ورودی را خودشناس می‌کند.

بازگشت وجه با دلیلش برمی‌گردد

پرداخت‌ها فقط وارد نمی‌شوند. حساب‌ها بسته می‌شوند، بانک‌ها واریز را رد می‌کنند، پرداخت‌کننده‌ها انتقال را پس می‌گیرند. در دنیای یک حساب وصول واحد، بازگشت وجه یک بررسی کوچک است: کدام پرداخت برگشته، مال چه کسی بوده و آیا ثبت دفتری که به آن تطبیق خورده باید برگردانده شود؟

در برنامه vIBAN، بازگشت وجه داده است. کد دلیلش را دارد، به‌صورت رویداد payment.returned روی همان IBAN مجازی‌ای که واریز اولیه از آن آمده ثبت می‌شود و در صورت‌حساب شمارش جداگانه خودش را دارد. پیش از آنکه کسی تیکتی باز کند، می‌دانید پرداخت چه کسی و به چه دلیلی برگشته است. بازگشت‌ها ردیف‌هایی برای رسیدگی می‌شوند، نه معماهایی برای دنبال کردن.

صف استثنا، نه تیم تطبیق

هیچ طراحی صددرصد هیچ چیزی را تطبیق نمی‌دهد. واریزها به vIBANهای ابطال‌شده می‌رسند. تکراری‌ها پیش می‌آیند. کسی، به هر دلیلی، مستقیم به حساب اصلی پرداخت می‌کند. هدف ناممکن کردن استثناها نیست؛ کمیاب و قابل شمارش کردن آن‌هاست. در دموی vIBAN از Protocore، 99.6% واریزها خودکار تطبیق می‌خورند و باقی‌مانده با تاریخچه کامل پرداخت‌کننده برای بررسی در صف می‌رود، پس رسیدگی به استثنا از بستر شروع می‌شود، نه از یک صورت‌حساب بانکی و یک صفحه‌گسترده.

این تفاوت شکل تیم را عوض می‌کند. عملیات تطبیق با حجم پرداخت‌ها بزرگ می‌شود: واریز بیشتر، واریز تطبیق‌نخورده بیشتر، نیروی بیشتر. فرایند استثنا با حجم استثناها بزرگ می‌شود که طراحی از قبل آن را به سمت صفر رانده است. نیروهایی که می‌مانند روی ناهنجاری‌های واقعی کار می‌کنند، نه شرح‌های دوباره‌تایپ‌شده. در استک ما این صف در Protocore Center (/products/center) است، کنسول عملیاتی که هر اقدام ویژه در آن نیازمند ثبت دلیل است و در لاگ ممیزی ثبت می‌شود.

صدور انبوه، برچسب هدف، پلتفرم‌ها

یک IBAN برای هر پرداخت‌کننده فقط وقتی کار می‌کند که صدور هر کدام هزینه‌ای نداشته باشد. صاحب‌خانه‌ای با ده دوازده مستأجر می‌تواند vIBANها را دستی بسازد؛ بازارگاهی که هزاران فروشنده را جذب می‌کند نمی‌تواند. بنابراین صدور یک عملیات انبوه است. در دموی vIBAN، یک فایل CSV با 2,400 پرداخت‌کننده اعتبارسنجی می‌شود، پیش‌نمایش IBAN هر ردیف نشان داده می‌شود و همه در یک اقدام صادر می‌شوند: 2,400 پرداخت‌کننده، یک عملیات و یک مرحله بازبینی در میان.

برچسب‌های هدف، جریان‌ها را در سطح آدرس از هم جدا نگه می‌دارند: اجاره اینجا، اشتراک‌ها آنجا، پرداخت‌های بازارگاه در مسیر خودشان. گزارش‌گیری بر اساس هدف به یک فیلتر تبدیل می‌شود، نه یک پروژه، و هر vIBAN صورت‌حساب خودش را دارد، به‌صورت CSV یا PDF، در حالی که حساب اصلی در زیر همه آن‌ها تنها منبع حقیقت می‌ماند. وقتی پرداخت‌کننده‌ای می‌رود، vIBAN او ابطال می‌شود: تاریخچه می‌ماند و آدرس دیگر واریز جدید نمی‌پذیرد.

جایگاه این در استک پرداخت

IBANهای مجازی زیرساخت وصول هستند. به انتقال‌های بانکی ورودی چیزی را می‌دهند که پرداخت‌های کارتی همیشه داشته‌اند: هویتی که به خود پرداخت چسبیده است، نه چیزی که کنارش تایپ شود. در اکوسیستم Protocore، سفارش‌های پرداخت با انتقال در Gateway مرجع‌های vIBAN را حمل می‌کنند و Center به هر استثنایی که تطبیق باقی گذاشته رسیدگی می‌کند. صفحه محصول در /products/viban کل حلقه را روی همین داده‌های دمو طی می‌کند: صدور، اشتراک‌گذاری، تطبیق، استثنا، گزارش.

و یک مرز صادقانه: اگر ماهی چند انتقال می‌گیرید، یک قرارداد برای شرح و ده دقیقه حسابداری کافی است. IBANهای مجازی جایی ارزششان را نشان می‌دهند که حجم، تطبیق را به یک فرایند تبدیل کرده است، مثل فهرست اجاره‌ها، وصول اشتراک‌ها و بازارگاه‌ها، هر جا که پرسش «چه کسی به شما پرداخت کرده؟» ماهانه هزاران بار پرسیده می‌شود.

سیستمی برای ساختن دارید؟

مسئله را بگویید. با یک معماری و یک برنامه برمی‌گردیم.