Account Bank Transfers
POST https://api.fraudio.com/v1/transactions/account-bank-transfers
Endpoint Overview​
Our Account Bank Transfers endpoint collects withdrawals, incoming bank transfers and outgoing bank transfers. These types of transactions provide us with more complete profiles of merchants which improves the quality of the Merchant Fraud and/or the AML product for you.
Account bank transfers are only applicable under the following circumstances:
- you are using the Merchant Fraud product and/or the AML product
- you have visibility over merchants' bank accounts
- the bank transfers are initiated by the merchants (if the transfers are all scheduled and automated by default, then there is no need to send bank transfers to this endpoint)
The account bank transfers can be sent either individually or in batch.
Request Parameters​
Request parameters in JSON format​
{
"transactionid": "00000001",
"transactiontype": "withdrawal",
"timestamp": 1646063615,
"merchant": "853CA6B7-79BB-DE46-049F-FC2603FAC59F",
"walletid": "893067473928",
"originalamount": 1.1,
"currency": "978",
"iban": "NL51INGB40123456789876"
}
Request parameters: Field Reference Table​
Field | Data Type | Payment Fraud (Issuer) | Payment Fraud (Acquirer / Processor) | Merchant Fraud / AML | Description |
---|---|---|---|---|---|
transactionid | String | n.a. | n.a. | Important | The unique identifier of the transaction event. Every transaction event, so auth , capture , auth_capture , etc., has its own unique ID. |
timestamp | Double | n.a. | n.a. | Important | The UTC time at which the transaction was made. When sending events in realtime, this will usually be 'now'. Only Unix Timestamps are accepted. |
transactiontype | String | n.a. | n.a. | Important | The type of transaction event. Possible values are: auth , capture , auth_capture , refund , void , top_up , incremental_auth , atm or reversal . Details about each possible value below.auth : An authorization is used to reserve funds on the customer's card without yet deducting them.capture : A capture is used to immediately deduct authorised funds (up to the amount auth'd) from a customer's card. A capture should always be linked to at least one authorization via the parenttransactionid .auth_capture : A simultaneous combination of auth and capture in the same transaction, for when there is no need to perform these operations separately.refund : A refund transaction returns credit to a customer's payment method.void : A void transaction is the explicit discarding of authorization of funds.top_up : Increases the available credit of a credit card.incremental_auth : A transaction that increases the authorised amount of a confirmed auth transaction that has not yet been captured.atm : An automated teller machine (atm) transaction.reversal : A reversal annuls the transaction and re-credits the customer's payment method. This happens directly after the transaction has taken place but before the funds have been fully processed.none : Use only when the transactiontype is unknown. |
originalamount | Double | n.a. | n.a. | Important | Amount/value of the transaction in the original currency. Must be a nonnegative value. |
currency | String | n.a. | n.a. | Important | Numerical currency code of the currency used for the transaction (ISO 4217). |
merchant | String | n.a. | n.a. | Important | The name or identifier of the merchant. This field uniquely identifies the merchant, and should not be confused with the MID. Any name or unique identifier is accepted. |
bankaccountnumber | String | n.a. | n.a. | Supplementary | IBAN (International Bank Account Number). Bank account number or ID is also sufficient. |
walletid | String | n.a. | n.a. | Supplementary | External ID of the merchant wallet. |
Response Parameters​
200 OK Response
{
"created": 2,
"deleted": 0,
"errors": 2,
"ignored": 5,
"received": 0,
"updated": 0
}
Status Code | Status Message | Description | Schema |
---|---|---|---|
200 | OK | Standard response for successful HTTP requests. | 200 OK - Post-auth response |
4xx , 500 , 501 , 502 , 503 , 504 | error | Various error messages for unsuccessful HTTP requests. | Problem response |
Code samples​
- Shell
- Python
- Java
- Perl
- PHP
curl -X POST https://api.fraudio.com/v1/transactions/account-bank-transfers \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
--data-raw '{"data":[{"transactionid":"00000001","transactiontype":"withdrawal","timestamp":1646063615,"merchant":"853CA6B7-79BB-DE46-049F-FC2603FAC59F","walletid":"893067473928","originalamount":1.1,"currency":"978","iban":"NL51INGB40123456789876"}]}'
import json
import os
import requests
account_bank_transfers_endpoint = 'https://api.fraudio.com/v1/transactions/account-bank-transfers'
access_token = os.environ['ACCESS_TOKEN']
headers = {'Authorization': f'Bearer {access_token}', 'Content-Type': 'application/json'}
account_bank_transfer = {"data":[{"sender_transactionid": "0000023232","receiver_transactionid": "receiver_transactionid","transactionid":"a9899d6a-46a8-4574-a881-3e7786ba69","timestamp":1646063615,"transactiontype":"withdrawal","sistertransactionid":"00000001","merchant":"CFBE1FC6-3069-B390-4287-F0D653ACC3CC","walletid":"783067473928","originalamount":1.1,"currency":"978"}]}
r = requests.post(account_bank_transfers_endpoint, data=json.dumps(account_bank_transfer), headers=headers)
print(r.json())
package com.fraudio;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class AccountBankTransfers
{
public static void main(String[] args) throws IOException, URISyntaxException, InterruptedException
{
String accountBankTransfersEndpoint = "https://api.fraudio.com/v1/transactions/account-bank-transfers";
String accessToken = System.getenv("ACCESS_TOKEN");
String accountBankTransfer = "{\"data\":[{\"transactionid\":\"00000001\",\"transactiontype\":\"withdrawal\",\"timestamp\":1602668123.456,\"merchant\":\"853CA6B7-79BB-DE46-049F-FC2603FAC59F\",\"walletid\":\"893067473928\",\"originalamount\":1.1,\"currency\":\"978\",\"iban\":\"NL51INGB40123456789876\"}]}";
HttpRequest request = HttpRequest.newBuilder()
.uri(new URI(accountBankTransfersEndpoint))
.header("Authorization", String.format("Bearer %s", accessToken))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(accountBankTransfer))
.build();
HttpClient client = HttpClient.newHttpClient();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
String responseBody = response.body();
System.out.println("Response Code: " + response.statusCode() + "\nResponse Body: " + responseBody);
}
}
use LWP::UserAgent;
use HTTP::Request::Common;
my $account_bank_transfers_endpoint = 'https://api.fraudio.com/v1/transactions/account-bank-transfers';
my $access_token = $ENV{"ACCESS_TOKEN"};
my $account_bank_transfer = '{"data":[{"transactionid":"00000001","transactiontype":"withdrawal","timestamp":1646063615,"merchant":"853CA6B7-79BB-DE46-049F-FC2603FAC59F","walletid":"893067473928","originalamount":1.1,"currency":"978","iban":"NL51INGB40123456789876"}]}';
my $req = HTTP::Request -> new(POST => $account_bank_transfers_endpoint);
$req -> header('Authorization' => "Bearer $access_token", "Content-Type" => "application/json");
$req -> content($account_bank_transfer);
my $ua = LWP::UserAgent -> new;
my $resp = $ua -> request($req);
my $message = $resp -> decoded_content;
print "Received reply: $message";
<?php
$account_bank_transfers_endpoint = 'https://api.fraudio.com/v1/transactions/account-bank-transfers';
$access_token = $_SERVER["ACCESS_TOKEN"];
$account_bank_transfer = '{"data":[{"transactionid":"00000001","transactiontype":"withdrawal","timestamp":1646063615,"merchant":"853CA6B7-79BB-DE46-049F-FC2603FAC59F","walletid":"893067473928","originalamount":1.1,"currency":"978","iban":"NL51INGB40123456789876"}]}';
$options = [
'http' => [
'header' => "Authorization: Bearer $access_token" .
"Content-Type: application/json",
'method' => 'POST',
'content' => $account_bank_transfer
]
];
$context = stream_context_create($options);
$result = file_get_contents($account_bank_transfers_endpoint, false, $context);
print $result;
?>