Package io.moov.sdk

Class BankAccounts


  • public class BankAccounts
    extends java.lang.Object
    • Method Detail

      • link

        public LinkBankAccountRequestBuilder link()
        Link a bank account to an existing Moov account. Read our [bank accounts guide](https://docs.moov.io/guides/sources/bank-accounts/) to learn more.

        It is strongly recommended that callers include the `X-Wait-For` header, set to `payment-method`, if the newly linked bank-account is intended to be used right away. If this header is not included, the caller will need to poll the [List Payment Methods](https://docs.moov.io/api/sources/payment-methods/list/) endpoint to wait for the new payment methods to be available for use.

        To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need to specify the `/accounts/{accountID}/bank-accounts.write` scope.

        Returns:
        The call builder
      • link

        public LinkBankAccountResponse link​(java.lang.String accountID,
                                            LinkBankAccount linkBankAccount)
                                     throws java.lang.Exception
        Link a bank account to an existing Moov account. Read our [bank accounts guide](https://docs.moov.io/guides/sources/bank-accounts/) to learn more.

        It is strongly recommended that callers include the `X-Wait-For` header, set to `payment-method`, if the newly linked bank-account is intended to be used right away. If this header is not included, the caller will need to poll the [List Payment Methods](https://docs.moov.io/api/sources/payment-methods/list/) endpoint to wait for the new payment methods to be available for use.

        To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need to specify the `/accounts/{accountID}/bank-accounts.write` scope.

        Parameters:
        accountID -
        linkBankAccount -
        Returns:
        The response from the API call
        Throws:
        java.lang.Exception - if the API call fails
      • link

        public LinkBankAccountResponse link​(java.util.Optional<? extends BankAccountWaitFor> xWaitFor,
                                            java.lang.String accountID,
                                            LinkBankAccount linkBankAccount)
                                     throws java.lang.Exception
        Link a bank account to an existing Moov account. Read our [bank accounts guide](https://docs.moov.io/guides/sources/bank-accounts/) to learn more.

        It is strongly recommended that callers include the `X-Wait-For` header, set to `payment-method`, if the newly linked bank-account is intended to be used right away. If this header is not included, the caller will need to poll the [List Payment Methods](https://docs.moov.io/api/sources/payment-methods/list/) endpoint to wait for the new payment methods to be available for use.

        To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need to specify the `/accounts/{accountID}/bank-accounts.write` scope.

        Parameters:
        xWaitFor -
        accountID -
        linkBankAccount -
        Returns:
        The response from the API call
        Throws:
        java.lang.Exception - if the API call fails
      • list

        public ListBankAccountsRequestBuilder list()
        List all the bank accounts associated with a particular Moov account.

        Read our [bank accounts guide](https://docs.moov.io/guides/sources/bank-accounts/) to learn more.

        To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need to specify the `/accounts/{accountID}/bank-accounts.read` scope.

        Returns:
        The call builder
      • list

        public ListBankAccountsResponse list​(java.lang.String accountID)
                                      throws java.lang.Exception
        List all the bank accounts associated with a particular Moov account.

        Read our [bank accounts guide](https://docs.moov.io/guides/sources/bank-accounts/) to learn more.

        To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need to specify the `/accounts/{accountID}/bank-accounts.read` scope.

        Parameters:
        accountID -
        Returns:
        The response from the API call
        Throws:
        java.lang.Exception - if the API call fails
      • get

        public GetBankAccountRequestBuilder get()
        Retrieve bank account details (i.e. routing number or account type) associated with a specific Moov account.

        Read our [bank accounts guide](https://docs.moov.io/guides/sources/bank-accounts/) to learn more.

        To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need to specify the `/accounts/{accountID}/bank-accounts.read` scope.

        Returns:
        The call builder
      • get

        public GetBankAccountResponse get​(java.lang.String accountID,
                                          java.lang.String bankAccountID)
                                   throws java.lang.Exception
        Retrieve bank account details (i.e. routing number or account type) associated with a specific Moov account.

        Read our [bank accounts guide](https://docs.moov.io/guides/sources/bank-accounts/) to learn more.

        To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need to specify the `/accounts/{accountID}/bank-accounts.read` scope.

        Parameters:
        accountID -
        bankAccountID -
        Returns:
        The response from the API call
        Throws:
        java.lang.Exception - if the API call fails
      • disable

        public DisableBankAccountRequestBuilder disable()
        Discontinue using a specified bank account linked to a Moov account.

        To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need to specify the `/accounts/{accountID}/bank-accounts.write` scope.

        Returns:
        The call builder
      • disable

        public DisableBankAccountResponse disable​(java.lang.String accountID,
                                                  java.lang.String bankAccountID)
                                           throws java.lang.Exception
        Discontinue using a specified bank account linked to a Moov account.

        To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need to specify the `/accounts/{accountID}/bank-accounts.write` scope.

        Parameters:
        accountID -
        bankAccountID -
        Returns:
        The response from the API call
        Throws:
        java.lang.Exception - if the API call fails
      • initiateMicroDeposits

        public InitiateMicroDepositsRequestBuilder initiateMicroDeposits()
        Micro-deposits help confirm bank account ownership, helping reduce fraud and the risk of unauthorized activity. Use this method to initiate the micro-deposit verification, sending two small credit transfers to the bank account you want to confirm.

        If you request micro-deposits before 4:15PM ET, they will appear that same day. If you request micro-deposits any time after 4:15PM ET, they will appear the next banking day. When the two credits are initiated, Moov simultaneously initiates a debit to recoup the micro-deposits.

        Micro-deposits initiated for a `sandbox` bank account will always be `$0.00` / `$0.00` and instantly verifiable once initiated.

        You can simulate micro-deposit verification in test mode. See our [test mode](https://docs.moov.io/guides/get-started/test-mode/#micro-deposits) guide for more information.

        To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need to specify the `/accounts/{accountID}/bank-accounts.write` scope.

        Returns:
        The call builder
      • initiateMicroDeposits

        public InitiateMicroDepositsResponse initiateMicroDeposits​(java.lang.String accountID,
                                                                   java.lang.String bankAccountID)
                                                            throws java.lang.Exception
        Micro-deposits help confirm bank account ownership, helping reduce fraud and the risk of unauthorized activity. Use this method to initiate the micro-deposit verification, sending two small credit transfers to the bank account you want to confirm.

        If you request micro-deposits before 4:15PM ET, they will appear that same day. If you request micro-deposits any time after 4:15PM ET, they will appear the next banking day. When the two credits are initiated, Moov simultaneously initiates a debit to recoup the micro-deposits.

        Micro-deposits initiated for a `sandbox` bank account will always be `$0.00` / `$0.00` and instantly verifiable once initiated.

        You can simulate micro-deposit verification in test mode. See our [test mode](https://docs.moov.io/guides/get-started/test-mode/#micro-deposits) guide for more information.

        To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need to specify the `/accounts/{accountID}/bank-accounts.write` scope.

        Parameters:
        accountID -
        bankAccountID -
        Returns:
        The response from the API call
        Throws:
        java.lang.Exception - if the API call fails
      • completeMicroDeposits

        public CompleteMicroDepositsRequestBuilder completeMicroDeposits()
        Complete the micro-deposit validation process by passing the amounts of the two transfers within three tries.

        To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need to specify the `/accounts/{accountID}/bank-accounts.write` scope.

        Returns:
        The call builder
      • completeMicroDeposits

        public CompleteMicroDepositsResponse completeMicroDeposits​(java.lang.String accountID,
                                                                   java.lang.String bankAccountID,
                                                                   CompleteMicroDeposits completeMicroDeposits)
                                                            throws java.lang.Exception
        Complete the micro-deposit validation process by passing the amounts of the two transfers within three tries.

        To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need to specify the `/accounts/{accountID}/bank-accounts.write` scope.

        Parameters:
        accountID -
        bankAccountID -
        completeMicroDeposits - Request to complete the micro-deposit verification workflow.
        Returns:
        The response from the API call
        Throws:
        java.lang.Exception - if the API call fails
      • getVerification

        public GetBankAccountVerificationRequestBuilder getVerification()
        Retrieve the current status and details of an instant verification, including whether the verification method was instant or same-day ACH. This helps track the verification process in real-time and provides details in case of exceptions.

        The status will indicate the following:

        - `new`: Verification initiated, credit pending to the payment network - `sent-credit`: Credit sent, available for verification - `failed`: Verification failed, description provided, user needs to add a new bank account - `expired`: Verification expired after 14 days, initiate another verification - `max-attempts-exceeded`: Five incorrect code attempts exhausted, initiate another verification

        To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need to specify the `/accounts/{accountID}/bank-accounts.read` scope.

        Returns:
        The call builder
      • getVerification

        public GetBankAccountVerificationResponse getVerification​(java.lang.String accountID,
                                                                  java.lang.String bankAccountID)
                                                           throws java.lang.Exception
        Retrieve the current status and details of an instant verification, including whether the verification method was instant or same-day ACH. This helps track the verification process in real-time and provides details in case of exceptions.

        The status will indicate the following:

        - `new`: Verification initiated, credit pending to the payment network - `sent-credit`: Credit sent, available for verification - `failed`: Verification failed, description provided, user needs to add a new bank account - `expired`: Verification expired after 14 days, initiate another verification - `max-attempts-exceeded`: Five incorrect code attempts exhausted, initiate another verification

        To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need to specify the `/accounts/{accountID}/bank-accounts.read` scope.

        Parameters:
        accountID -
        bankAccountID -
        Returns:
        The response from the API call
        Throws:
        java.lang.Exception - if the API call fails
      • initiateVerification

        public InitiateBankAccountVerificationRequestBuilder initiateVerification()
        Instant micro-deposit verification offers a quick and efficient way to verify bank account ownership.

        Send a $0.01 credit with a unique verification code via RTP or same-day ACH, depending on the receiving bank's capabilities. This feature provides a faster alternative to traditional methods, allowing verification in a single session.

        It is recommended to use the `X-Wait-For: rail-response` header to synchronously receive the outcome of the instant credit in the response payload.

        Possible verification methods: - `instant`: Real-time verification credit sent via RTP - `ach`: Verification credit sent via same-day ACH

        Possible statuses: - `new`: Verification initiated, credit pending - `sent-credit`: Credit sent, available for verification in the external bank account - `failed`: Verification failed due to credit rejection/return, details in `exceptionDetails`

        To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need to specify the `/accounts/{accountID}/bank-accounts.write` scope.

        Returns:
        The call builder
      • initiateVerification

        public InitiateBankAccountVerificationResponse initiateVerification​(java.lang.String accountID,
                                                                            java.lang.String bankAccountID)
                                                                     throws java.lang.Exception
        Instant micro-deposit verification offers a quick and efficient way to verify bank account ownership.

        Send a $0.01 credit with a unique verification code via RTP or same-day ACH, depending on the receiving bank's capabilities. This feature provides a faster alternative to traditional methods, allowing verification in a single session.

        It is recommended to use the `X-Wait-For: rail-response` header to synchronously receive the outcome of the instant credit in the response payload.

        Possible verification methods: - `instant`: Real-time verification credit sent via RTP - `ach`: Verification credit sent via same-day ACH

        Possible statuses: - `new`: Verification initiated, credit pending - `sent-credit`: Credit sent, available for verification in the external bank account - `failed`: Verification failed due to credit rejection/return, details in `exceptionDetails`

        To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need to specify the `/accounts/{accountID}/bank-accounts.write` scope.

        Parameters:
        accountID -
        bankAccountID -
        Returns:
        The response from the API call
        Throws:
        java.lang.Exception - if the API call fails
      • initiateVerification

        public InitiateBankAccountVerificationResponse initiateVerification​(java.util.Optional<? extends BankAccountWaitFor> xWaitFor,
                                                                            java.lang.String accountID,
                                                                            java.lang.String bankAccountID)
                                                                     throws java.lang.Exception
        Instant micro-deposit verification offers a quick and efficient way to verify bank account ownership.

        Send a $0.01 credit with a unique verification code via RTP or same-day ACH, depending on the receiving bank's capabilities. This feature provides a faster alternative to traditional methods, allowing verification in a single session.

        It is recommended to use the `X-Wait-For: rail-response` header to synchronously receive the outcome of the instant credit in the response payload.

        Possible verification methods: - `instant`: Real-time verification credit sent via RTP - `ach`: Verification credit sent via same-day ACH

        Possible statuses: - `new`: Verification initiated, credit pending - `sent-credit`: Credit sent, available for verification in the external bank account - `failed`: Verification failed due to credit rejection/return, details in `exceptionDetails`

        To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need to specify the `/accounts/{accountID}/bank-accounts.write` scope.

        Parameters:
        xWaitFor -
        accountID -
        bankAccountID -
        Returns:
        The response from the API call
        Throws:
        java.lang.Exception - if the API call fails
      • completeVerification

        public CompleteBankAccountVerificationRequestBuilder completeVerification()
        Finalize the instant micro-deposit verification by submitting the verification code displayed in the user's bank account.

        Upon successful verification, the bank account status will be updated to `verified` and eligible for ACH debit transactions.

        The following formats are accepted: - `MV0000` - `mv0000` - `0000`

        To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need to specify the `/accounts/{accountID}/bank-accounts.write` scope.

        Returns:
        The call builder
      • completeVerification

        public CompleteBankAccountVerificationResponse completeVerification​(java.lang.String accountID,
                                                                            java.lang.String bankAccountID,
                                                                            CompleteBankAccountVerification completeBankAccountVerification)
                                                                     throws java.lang.Exception
        Finalize the instant micro-deposit verification by submitting the verification code displayed in the user's bank account.

        Upon successful verification, the bank account status will be updated to `verified` and eligible for ACH debit transactions.

        The following formats are accepted: - `MV0000` - `mv0000` - `0000`

        To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need to specify the `/accounts/{accountID}/bank-accounts.write` scope.

        Parameters:
        accountID -
        bankAccountID -
        completeBankAccountVerification -
        Returns:
        The response from the API call
        Throws:
        java.lang.Exception - if the API call fails