Как я могу написать программное обеспечение, которое осуществляет банковский перевод?

Вы знаете те веб-сайты, которые позволяют вводить номер текущей учетной записи и номер маршрута, а затем они могут переводить деньги в свою учетную запись и из нее?

Как это работает? Любые хорошие услуги или API для этого? Любые ошибки?

Ответы

Ответ 1

У банков есть API для этого, но только одобренным людям/компаниям разрешено взаимодействовать с этими системами. Поскольку на самом деле это связано с переносом денег, требования к безопасности довольно высоки с точки зрения того, как вы обрабатываете номера счетов в своей системе.

Многие сайты, предлагающие эту функцию для покупки товаров, фактически используют стороннюю систему для обработки фактического перевода денег на свой счет. Это уменьшает количество проблем для реализации API, а также повышает нагрузку на третью сторону, обрабатывая денежные переводы.

Если вы серьезно относитесь к созданию системы, в которой вы можете принимать номера банковских счетов и обменивать средства, вам следует обратиться в свой банк и узнать, какие фактические требования для внедрения такой системы. У каждого банка есть своя система, а также собственный тариф на стоимость этих транзакций.

Некоторые третьи стороны, о которых я знаю,

Я в Канаде, хотя я думаю, что Moneris и Cactus работают в США. Я думаю, что Beanstream этого не делает. Опять же, вы можете поговорить с вашим банком, и они, возможно, свяжутся с третьей стороной, которая поможет вам в транзакциях.

Ответ 2

Если вы хотите иметь возможность инициировать перевод средств между счетами в разных финансовых учреждениях (используя учетную запись и номер маршрута), вам необходимо найти компанию по обработке платежей, которая предлагает ACH (http://en.wikipedia.org/wiki/Automated_Clearing_House). Обычно эти компании являются дочерними компаниями финансового учреждения, которое уже имеет доступ к ACH. Например. одной из таких компаний является ACH Direct (http://www.achdirect.com/). Я не могу ручаться за его услуги или надежность, хотя, я просто даю это здесь как пример того, какие типы компаний вам нужно искать.

Конечно, технически вы можете попытаться напрямую подключиться к ACH. Однако для этого вам необходимо следовать правилам и положениям NACHA (http://en.wikipedia.org/wiki/NACHA-The_Electronic_Payments_Association) при написании программного обеспечения и пройти строгую сертификацию. Это довольно большие инвестиции, поэтому, если вы не подкреплены парой биллионов долларов, я бы не советовал это делать.

Ответ 3

Вы можете сделать это с помощью торгового счета Moneris US eSELECTplus - вам просто нужно включить автоматическую клиринговую палату (ACH) на вашем торговом счете (к сожалению, в Канаде нет эквивалента ACH).

Вот пример того, как выглядит транзакция с дебетом в PHP-API Moneris:

<?php

require "../mpgClasses.php";

/************************ Request Variables **********************************/

$store_id='monusqa002'; //account credentials
$api_token='qatoken';

/************************ Transaction Object******************************/


$txnArray=array(type=>'us_ach_debit',
            order_id=>'ach-'.date("dmy-G:i:s"),
            cust_id=> 'my cust id',
            amount=>'1.00'
            );

$achTemplate = array(
       sec =>'ppd',
       cust_first_name =>  'Bob',
                 cust_last_name =>  'Smith',
                 cust_address1 => '101 Main St',
                 cust_address2 =>  'Apt 102,
                 cust_city => 'Chicago',
                 cust_state =>  'IL',
                 cust_zip =>'123456',
                 routing_num => '490000018',
                 account_num =>  '23456',
                 check_num => '100',
                 account_type => 'savings'
                );

$mpgAchInfo = new mpgAchInfo ($achTemplate);
$mpgTxn = new mpgTransaction($txnArray);
$mpgTxn->setAchInfo($mpgAchInfo);

$mpgRequest = new mpgRequest($mpgTxn);
$mpgHttpPost = new mpgHttpsPost($store_id,$api_token,$mpgRequest);

/************************ Response Object **********************************/

$mpgResponse=$mpgHttpPost->getMpgResponse();


print("\nCardType = " . $mpgResponse->getCardType());
print("\nTransAmount = " . $mpgResponse->getTransAmount());
print("\nTxnNumber = " . $mpgResponse->getTxnNumber());
print("\nReceiptId = " . $mpgResponse->getReceiptId());
print("\nTransType = " . $mpgResponse->getTransType());
print("\nReferenceNum = " . $mpgResponse->getReferenceNum());
print("\nResponseCode = " . $mpgResponse->getResponseCode());
print("\nMessage = " . $mpgResponse->getMessage());
print("\nAuthCode = " . $mpgResponse->getAuthCode());
print("\nComplete = " . $mpgResponse->getComplete());
print("\nTransDate = " . $mpgResponse->getTransDate());
print("\nTransTime = " . $mpgResponse->getTransTime());
print("\nTicket = " . $mpgResponse->getTicket());
print("\nTimedOut = " . $mpgResponse->getTimedOut());

?>

Файлы API и руководства по интеграции для Moneris USA доступны по адресу:

http://developer.moneris.com (требуется бесплатная регистрация)

Монерис США - ACH:

http://www.monerisusa.com/payment-processing-services/ach-direct-debit.aspx

Ответ 4

Stripe Connect позволяет вам переводить деньги на банковские счета и принимать платежи через один унифицированный API. По состоянию на декабрь 2015 года они предоставляют более полную документацию и, как представляется, являются более популярным вариантом среди разработчиков, чем большинство компаний, упомянутых в других ответах.

Подробнее см. https://stripe.com/docs/connect.

Ответ 5

Paypal имеет довольно доступный API, который вы можете использовать в своей программе, чтобы выполнить некоторые из этих действий.

Ответ 6

Довольно простой способ передачи ACH - https://www.dwolla.com/white-label

В зависимости от того, что вы хотите для своего приложения, вам понадобятся разные функции.

Если вы хотите оплатить (кредитные) банковские счета. Это довольно прямолинейно. Вот шаги: 1. Создать участника 2. Создайте источник финансирования 3. Создайте передачу

Если вы хотите дебетовать и кредитные банковские счета, это становится немного сложнее. Вот шаги: 1. Создать участника 2. Получить разрешение источника финансирования 3. Создайте передачу

Единственная причина, по которой авторизация немного сложнее, заключается в том, что вам нужно пройти через метод депозита или поток проверки определенного типа. Это облегчает работу с Dwolla.js - https://www.dwolla.com/dwollajs-bank-verification