Get Account Metadata

Method is used to obtain configuration information of users bank. If using Create Transfer this information is required to identify flow and processing logic of the transaction.

Configuration returned by the endpoint includes:

  • beneficiaryCoolDownPeriod - How much time must pass before being able to use newly registered beneficiary
  • isCreateBeneficiaryEndpointRequired - Whether bank required registration of the beneficiary to perform a transaction
  • transferBounds - Transaction limits supported by the bank
  • transactionRange - Date range of transactions available for banks users

👍

Pre-Requirement

You have obtained user's permanent access token from Exchange Token endpoint

To read more about authentication process and access token please refer to Authentication Documentation

Request

https://api.dapi.com/v2/metadata/accounts/get

Headers

ParameterTypeDescription
Authorization
REQUIRED
StringSet type to bearer token and the value to the accessToken obtained using the Exchange Token request.

Body Parameters

ParameterTypeDescription
appSecret
REQUIRED
StringPrivate token generated at application creation.
userSecret
REQUIRED
StringEncrypted version of the userKey.

Request Example

{
    "appSecret": "00bae841ad979345fca2e2585c000da7eac420504d189cf63315e7a6234d45c68dbd6fff749167292cd1475622805dce7a2b979db3c16e25a2897158ee63845b1043930ff603e19deb1d2d54ad9afc3d52df241d3c4e7286244a2f98a10212e38b2e9f8b0e3a7592702fa4358fb9103b93a26dd6bb92c2be0327ac054f14becc",
    "userSecret": "DSv56dS/PB7QGJI/IGX4qKDhGVhIvQQhWo4zxTDT0gn079JlHnUSSq8NAtavX4fpHj7PGQ74BzVXBO9pFHXdSeLCMnayKLTLD0+zmMu7wfGzy+ZhkYTBe040CXWQ+AYaPhGTzfVWu3Lz6oM2QnqM9X56BbvpC80tN8Zg72VJHWC6YjazdQQ2NK0pl9+ePbmqn7PNjFKLhipgpTl7Hw3kvnLrSIC9AcXzVYQeSWYAv3LAEbECB1aNLXC0glMG2W7L2iLTMwy54wHbXXfSQlK9S6X7wmnZ0tn28H0MwMqWdLLtxvcFyYlMr3E0hqYnK4a5sU0IvF1yJAMHMBCbjw2Trnx2VMuX5IWjdxScfh+8IxWGvKl6RypksJTyNg100H+Q+j0vfKW/bOijFolZgHJtAxUowPlewK9JwoWahkbX2KTGoqQbSCh6KSzaCxdbg7ykNI5n+m6vdoWzGfZGFYjfgMX6aMInAM3b32ZAp9DlfFxRkg3oeoLBuTGTz73E51bZj9mGgD0FxkIXFPIWGx0WyxoYpMEesJeT8phNy0G82Bd7qzWCPGP4gK70jGpqfCWsvj1XZKMMMjReCdUrhtXKB4spQIFi+63WcGV7vDyWQdUTINOhmR8QfZOJoVm+VZgFiqCLI3Aa8AnoYw3UIPiheVjE5lxMulPNIP0QGMR31VY="
}

Response

📘

Note

Your responses may differ from those listed below on a case-by-case basis.

ParameterTypeDescription
operationDStringUnique ID generated to identify a specific operation.
successBooleanReturns true if request is successful and false for all else.
msg`StringDescriptive message returned only in case of failure
timestampNumberTimestamp of the operation.
Is returned only in case of failure
statusEnum( "done", "failed", "user_input_required", "initialized" )Job status. For further explanation see Job Status
accountsMetadataObject<AccountMetadata>An object containing account metadata.

Account Metadata schema

ParameterTypeDescription
routingNumberStringThe account's routing number.
swiftCodeStringBank's SWIFT code (e.g.: EBILAEAD).
sortCodeStringBank's sort code.
bankIdStringBank's unique id given by Dapi.
bankTypeEnum( "retail", "business" )Bank type, retail (personal banking) or business (business banking)
bankNameStringBank's full name.
branchNameStringBank's branch name.
branchAddressStringBank's branch address.
isCreateBeneficiaryEndpointRequiredBooleanIf the bank requires calling the payment/beneficiaries/create endpoint before initiating a transfer.
countryObject<Country>Object containing country information.
addressObject<Address>Object containing the account's address information.
transferBoundsArray<TransferBounds>Array containing information about account transfer bounds.
beneficiaryCoolDownPeriodObject<CoolDownPeriod>An object containing information about whether there is a beneficiary cool down period and its duration.
transactionRangeObject<TransactionRange>An object containing information about the available transactions time period.

Country schema

ParameterTypeDescription
codeStringThe ISO 3166-1 alpha-2 code of the country.
nameStringThe full name of the country.

Address schema

ParameterTypeDescription
line1StringStreet name and number.
line2StringCity name.
line3StringCountry name.

TransferBounds schema

ParameterTypeDescription
minimumNumberMinimum amount allowed to transfer from the bank for selected type of beneficiary.
typeEnum( "same", "local", "intl" )Type of beneficiary which can be a same bank beneficiary, local bank beneficiary or an international beneficiary.
currencyObject<Currency>Object containing currency information for the minimum amount of transfer allowed.

Currency schema

ParameterTypeDescription
codeStringISO 4217 code of the currency.
nameStringCurrency's full name.

Cool down period schema

ParameterTypeDescription
valueNumberDuration of the cool down period.
unitEnum( "hrs" )Duration's unit.

Transaction range schema

ParameterTypeDescription
valueNumberHow far back transactions can be retrieved from the financial institution.
unit`Enum(
"days"
)
Unit used to specify the duration.

Response Example

{
    "operationID": "c9ee4784-4bcc-4b0f-99af-8583c47fdb77",
    "success": true,
    "status": "done",
    "accountsMetadata": {
        "swiftCode": null,
        "sortCode": null,
        "bankId": "DAPIBANK_AE_DAPI1",
        "bankName": "DAPI Sandbox Bank",
        "branchName": "dapi CA",
        "bankType": "retail",
        "branchAddress": "san francisco, ca, usa",
        "address": {
            "line1": "6c marasi drive",
            "line2": "new york",
            "line3": "united states of america"
        },
        "transferBounds": [
            {
                "minimum": 1,
                "currency": {
                    "code": "USD",
                    "name": "US DOLLAR"
                },
                "type": "same"
            },
            {
                "minimum": 1,
                "currency": {
                    "code": "USD",
                    "name": "US DOLLAR"
                },
                "type": "local"
            }
        ],
        "beneficiaryCoolDownPeriod": {
            "value": 0,
            "unit": "hrs"
        },
        "isCreateBeneficiaryEndpointRequired": true,
        "willNewlyAddedBeneficiaryExistBeforeCoolDownPeriod": true,
        "country": {
            "code": "US",
            "name": "UNITED STATES OF AMERICA"
        },
        "transactionRange": {
            "unit": "days",
            "value": 30
        }
    }
}

Successful Request / Response

Successful Request

{
    "appSecret": "00bae841ad979345fca2e2585c000da7eac420504d189cf63315e7a6234d45c68dbd6fff749167292cd1475622805dce7a2b979db3c16e25a2897158ee63845b1043930ff603e19deb1d2d54ad9afc3d52df241d3c4e7286244a2f98a10212e38b2e9f8b0e3a7592702fa4358fb9103b93a26dd6bb92c2be0327ac054f14becc",
    "userSecret": "DSv56dS/PB7QGJI/IGX4qKDhGVhIvQQhWo4zxTDT0gn079JlHnUSSq8NAtavX4fpHj7PGQ74BzVXBO9pFHXdSeLCMnayKLTLD0+zmMu7wfGzy+ZhkYTBe040CXWQ+AYaPhGTzfVWu3Lz6oM2QnqM9X56BbvpC80tN8Zg72VJHWC6YjazdQQ2NK0pl9+ePbmqn7PNjFKLhipgpTl7Hw3kvnLrSIC9AcXzVYQeSWYAv3LAEbECB1aNLXC0glMG2W7L2iLTMwy54wHbXXfSQlK9S6X7wmnZ0tn28H0MwMqWdLLtxvcFyYlMr3E0hqYnK4a5sU0IvF1yJAMHMBCbjw2Trnx2VMuX5IWjdxScfh+8IxWGvKl6RypksJTyNg100H+Q+j0vfKW/bOijFolZgHJtAxUowPlewK9JwoWahkbX2KTGoqQbSCh6KSzaCxdbg7ykNI5n+m6vdoWzGfZGFYjfgMX6aMInAM3b32ZAp9DlfFxRkg3oeoLBuTGTz73E51bZj9mGgD0FxkIXFPIWGx0WyxoYpMEesJeT8phNy0G82Bd7qzWCPGP4gK70jGpqfCWsvj1XZKMMMjReCdUrhtXKB4spQIFi+63WcGV7vDyWQdUTINOhmR8QfZOJoVm+VZgFiqCLI3Aa8AnoYw3UIPiheVjE5lxMulPNIP0QGMR31VY="
}

Successful Response

{
    "operationID": "c9ee4784-4bcc-4b0f-99af-8583c47fdb77",
    "success": true,
    "status": "done",
    "accountsMetadata": {
        "swiftCode": null,
        "sortCode": null,
        "bankId": "DAPIBANK_AE_DAPI1",
        "bankName": "DAPI Sandbox Bank",
        "branchName": "dapi CA",
        "bankType": "retail",
        "branchAddress": "san francisco, ca, usa",
        "address": {
            "line1": "6c marasi drive",
            "line2": "new york",
            "line3": "united states of america"
        },
        "transferBounds": [
            {
                "minimum": 1,
                "currency": {
                    "code": "USD",
                    "name": "US DOLLAR"
                },
                "type": "same"
            },
            {
                "minimum": 1,
                "currency": {
                    "code": "USD",
                    "name": "US DOLLAR"
                },
                "type": "local"
            }
        ],
        "beneficiaryCoolDownPeriod": {
            "value": 0,
            "unit": "hrs"
        },
        "isCreateBeneficiaryEndpointRequired": true,
        "willNewlyAddedBeneficiaryExistBeforeCoolDownPeriod": true,
        "country": {
            "code": "US",
            "name": "UNITED STATES OF AMERICA"
        },
        "transactionRange": {
            "unit": "days",
            "value": 30
        }
    }
}

Request / Response - When Invalid App Secret Is Specified

Request - When Invalid App Secret Is Specified

{
    "appSecret": "invalid_secret",
    "userSecret": "DSv56dS/PB7QGJI/IGX4qKDhGVhIvQQhWo4zxTDT0gn079JlHnUSSq8NAtavX4fpHj7PGQ74BzVXBO9pFHXdSeLCMnayKLTLD0+zmMu7wfGzy+ZhkYTBe040CXWQ+AYaPhGTzfVWu3Lz6oM2QnqM9X56BbvpC80tN8Zg72VJHWC6YjazdQQ2NK0pl9+ePbmqn7PNjFKLhipgpTl7Hw3kvnLrSIC9AcXzVYQeSWYAv3LAEbECB1aNLXC0glMG2W7L2iLTMwy54wHbXXfSQlK9S6X7wmnZ0tn28H0MwMqWdLLtxvcFyYlMr3E0hqYnK4a5sU0IvF1yJAMHMBCbjw2Trnx2VMuX5IWjdxScfh+8IxWGvKl6RypksJTyNg100H+Q+j0vfKW/bOijFolZgHJtAxUowPlewK9JwoWahkbX2KTGoqQbSCh6KSzaCxdbg7ykNI5n+m6vdoWzGfZGFYjfgMX6aMInAM3b32ZAp9DlfFxRkg3oeoLBuTGTz73E51bZj9mGgD0FxkIXFPIWGx0WyxoYpMEesJeT8phNy0G82Bd7qzWCPGP4gK70jGpqfCWsvj1XZKMMMjReCdUrhtXKB4spQIFi+63WcGV7vDyWQdUTINOhmR8QfZOJoVm+VZgFiqCLI3Aa8AnoYw3UIPiheVjE5lxMulPNIP0QGMR31VY="
}

Response - When Invalid App Secret Is Specified

{
  "success": false,
  "status": "failed",
  "msg": "Invalid/expired token or invalid secret",
  "timestamp": 1617057964976
}

Request / Response - When App Secret Is Not Specified

Request - When App Secret Is Not Specified

{
    "userSecret": "DSv56dS/PB7QGJI/IGX4qKDhGVhIvQQhWo4zxTDT0gn079JlHnUSSq8NAtavX4fpHj7PGQ74BzVXBO9pFHXdSeLCMnayKLTLD0+zmMu7wfGzy+ZhkYTBe040CXWQ+AYaPhGTzfVWu3Lz6oM2QnqM9X56BbvpC80tN8Zg72VJHWC6YjazdQQ2NK0pl9+ePbmqn7PNjFKLhipgpTl7Hw3kvnLrSIC9AcXzVYQeSWYAv3LAEbECB1aNLXC0glMG2W7L2iLTMwy54wHbXXfSQlK9S6X7wmnZ0tn28H0MwMqWdLLtxvcFyYlMr3E0hqYnK4a5sU0IvF1yJAMHMBCbjw2Trnx2VMuX5IWjdxScfh+8IxWGvKl6RypksJTyNg100H+Q+j0vfKW/bOijFolZgHJtAxUowPlewK9JwoWahkbX2KTGoqQbSCh6KSzaCxdbg7ykNI5n+m6vdoWzGfZGFYjfgMX6aMInAM3b32ZAp9DlfFxRkg3oeoLBuTGTz73E51bZj9mGgD0FxkIXFPIWGx0WyxoYpMEesJeT8phNy0G82Bd7qzWCPGP4gK70jGpqfCWsvj1XZKMMMjReCdUrhtXKB4spQIFi+63WcGV7vDyWQdUTINOhmR8QfZOJoVm+VZgFiqCLI3Aa8AnoYw3UIPiheVjE5lxMulPNIP0QGMR31VY="
}

Response - When App Secret Is Not Specified

{
  "success": false,
  "status": "failed",
  "msg": "The 'appSecret' field is required.",
  "type": "VALIDATION_ERROR",
  "timestamp": 1617058257299
}

📘

Note

For more information and detailed breakdown of possible errors, please see Errors.