Skip to content

Latest commit

 

History

History
700 lines (517 loc) · 79.1 KB

README.md

File metadata and controls

700 lines (517 loc) · 79.1 KB

Transfers

(transfers())

Overview

Available Operations

  • create - Move money by providing the source, destination, and amount in the request body.

Read our transfers overview guide to learn more.

To access this endpoint using an access token you'll need to specify the /accounts/{accountID}/transfers.write scope.

  • list - List all the transfers associated with a particular Moov account.

Read our transfers overview guide to learn more.

When you run this request, you retrieve 200 transfers at a time. You can advance past a results set of 200 transfers by using the skip parameter (for example, if you set skip= 10, you will see a results set of 200 transfers after the first 2000). If you are searching a high volume of transfers, the request will likely process very slowly. To achieve faster performance, restrict the data as much as you can by using the StartDateTime and EndDateTime parameters for a limited period of time. You can run multiple requests in smaller time window increments until you've retrieved all the transfers you need.

To access this endpoint using an access token you'll need to specify the /accounts/{accountID}/transfers.read scope.

  • get - Retrieve full transfer details for an individual transfer of a particular Moov account.

Payment rail-specific details are included in the source and destination. Read our transfers overview guide to learn more.

To access this endpoint using an access token you'll need to specify the /accounts/{accountID}/transfers.read scope.

  • update - Update the metadata contained on a transfer.

Read our transfers overview guide to learn more.

To access this endpoint using an access token you'll need to specify the /accounts/{accountID}/transfers.write scope.

Use the Cancel or refund a card transfer endpoint for more comprehensive cancel and refund options.
See the reversals guide for more information.

To access this endpoint using an access token you'll need to specify the /accounts/{accountID}/transfers.write scope.

  • listRefunds - Get a list of refunds for a card transfer.

To access this endpoint using an access token you'll need to specify the /accounts/{accountID}/transfers.read scope.

  • getRefund - Get details of a refund for a card transfer.

To access this endpoint using an access token you'll need to specify the /accounts/{accountID}/transfers.read scope.

  • createReversal - Reverses a card transfer by initiating a cancellation or refund depending on the transaction status. Read our reversals guide to learn more.

To access this endpoint using a token you'll need to specify the /accounts/{accountID}/transfers.write scope.

  • generateOptions - Generate available payment method options for one or multiple transfer participants depending on the accountID or paymentMethodID you supply in the request.

Read our transfers overview guide to learn more.

To access this endpoint using an access token you'll need to specify the /accounts/{accountID}/transfers.read scope.

create

Move money by providing the source, destination, and amount in the request body.

Read our transfers overview guide to learn more.

To access this endpoint using an access token you'll need to specify the /accounts/{accountID}/transfers.write scope.

Example Usage

package hello.world;

import io.moov.sdk.Moov;
import io.moov.sdk.models.components.Amount;
import io.moov.sdk.models.components.CreateTransfer;
import io.moov.sdk.models.components.CreateTransferDestination;
import io.moov.sdk.models.components.CreateTransferDestinationACH;
import io.moov.sdk.models.components.CreateTransferDestinationCard;
import io.moov.sdk.models.components.CreateTransferSource;
import io.moov.sdk.models.components.CreateTransferSourceACH;
import io.moov.sdk.models.components.CreateTransferSourceCard;
import io.moov.sdk.models.components.DebitHoldPeriod;
import io.moov.sdk.models.components.FacilitatorFee;
import io.moov.sdk.models.components.Security;
import io.moov.sdk.models.errors.GenericError;
import io.moov.sdk.models.errors.Transfer;
import io.moov.sdk.models.errors.TransferValidationError;
import io.moov.sdk.models.operations.CreateTransferRequest;
import io.moov.sdk.models.operations.CreateTransferResponse;
import java.lang.Exception;
import java.util.Map;

public class Application {

    public static void main(String[] args) throws GenericError, Transfer, TransferValidationError, Exception {

        Moov sdk = Moov.builder()
                .security(Security.builder()
                    .username("")
                    .password("")
                    .build())
            .build();

        CreateTransferRequest req = CreateTransferRequest.builder()
                .xIdempotencyKey("f9d459c6-642b-4b0f-a642-2a074eb6b54d")
                .accountID("0bdee4f2-70df-485e-8104-60745a118ebb")
                .createTransfer(CreateTransfer.builder()
                    .source(CreateTransferSource.builder()
                        .paymentMethodID("9506dbf6-4208-44c3-ad8a-e4431660e1f2")
                        .cardDetails(CreateTransferSourceCard.builder()
                            .dynamicDescriptor("WhlBdy *Yoga 11-12")
                            .build())
                        .achDetails(CreateTransferSourceACH.builder()
                            .companyEntryDescription("Gym dues")
                            .originatingCompanyName("Whole Body Fit")
                            .debitHoldPeriod(DebitHoldPeriod.TWO_DAYS)
                            .build())
                        .build())
                    .destination(CreateTransferDestination.builder()
                        .paymentMethodID("3f9969cf-a1f3-4d83-8ddc-229a506651cf")
                        .cardDetails(CreateTransferDestinationCard.builder()
                            .dynamicDescriptor("WhlBdy *Yoga 11-12")
                            .build())
                        .achDetails(CreateTransferDestinationACH.builder()
                            .companyEntryDescription("Gym dues")
                            .originatingCompanyName("Whole Body Fit")
                            .build())
                        .build())
                    .amount(Amount.builder()
                        .currency("USD")
                        .value(1204L)
                        .build())
                    .facilitatorFee(FacilitatorFee.builder()
                        .totalDecimal("12.987654321")
                        .markupDecimal("0.987654321")
                        .build())
                    .description("Pay Instructor for May 15 Class")
                    .metadata(Map.ofEntries(
                        Map.entry("optional", "metadata")))
                    .build())
                .build();

        CreateTransferResponse res = sdk.transfers().create()
                .request(req)
                .call();

        if (res.transferResponse().isPresent()) {
            // handle response
        }
    }
}

Parameters

Parameter Type Required Description
request CreateTransferRequest ✔️ The request object to use for the request.

Response

CreateTransferResponse

Errors

Error Type Status Code Content Type
models/errors/GenericError 400 application/json
models/errors/Transfer 409 application/json
models/errors/TransferValidationError 422 application/json
models/errors/APIException 4XX, 5XX */*

list

List all the transfers associated with a particular Moov account.

Read our transfers overview guide to learn more.

When you run this request, you retrieve 200 transfers at a time. You can advance past a results set of 200 transfers by using the skip parameter (for example, if you set skip= 10, you will see a results set of 200 transfers after the first 2000). If you are searching a high volume of transfers, the request will likely process very slowly. To achieve faster performance, restrict the data as much as you can by using the StartDateTime and EndDateTime parameters for a limited period of time. You can run multiple requests in smaller time window increments until you've retrieved all the transfers you need.

To access this endpoint using an access token you'll need to specify the /accounts/{accountID}/transfers.read scope.

Example Usage

package hello.world;

import io.moov.sdk.Moov;
import io.moov.sdk.models.components.Security;
import io.moov.sdk.models.operations.ListTransfersRequest;
import io.moov.sdk.models.operations.ListTransfersResponse;
import java.lang.Exception;

public class Application {

    public static void main(String[] args) throws Exception {

        Moov sdk = Moov.builder()
                .security(Security.builder()
                    .username("")
                    .password("")
                    .build())
            .build();

        ListTransfersRequest req = ListTransfersRequest.builder()
                .accountID("a7b433e5-531c-406b-bf40-4cde3c83fab5")
                .skip(60L)
                .count(20L)
                .build();

        ListTransfersResponse res = sdk.transfers().list()
                .request(req)
                .call();

        if (res.transfers().isPresent()) {
            // handle response
        }
    }
}

Parameters

Parameter Type Required Description
request ListTransfersRequest ✔️ The request object to use for the request.

Response

ListTransfersResponse

Errors

Error Type Status Code Content Type
models/errors/APIException 4XX, 5XX */*

get

Retrieve full transfer details for an individual transfer of a particular Moov account.

Payment rail-specific details are included in the source and destination. Read our transfers overview guide to learn more.

To access this endpoint using an access token you'll need to specify the /accounts/{accountID}/transfers.read scope.

Example Usage

package hello.world;

import io.moov.sdk.Moov;
import io.moov.sdk.models.components.Security;
import io.moov.sdk.models.operations.GetTransferResponse;
import java.lang.Exception;

public class Application {

    public static void main(String[] args) throws Exception {

        Moov sdk = Moov.builder()
                .security(Security.builder()
                    .username("")
                    .password("")
                    .build())
            .build();

        GetTransferResponse res = sdk.transfers().get()
                .xMoovVersion("v2024.01")
                .transferID("64607ba5-82d4-4278-93b5-c5c5ca5c9cd8")
                .accountID("cb1b48c3-1c11-4648-aa00-691b74c9ea1b")
                .call();

        if (res.transfer().isPresent()) {
            // handle response
        }
    }
}

Parameters

Parameter Type Required Description
xMoovVersion Optional<String> Specify an API version.

API versioning follows the format vYYYY.QQ.BB, where
- YYYY is the year
- QQ is the two-digit month for the first month of the quarter (e.g., 01, 04, 07, 10)
- BB is an optional build number starting at .01 for subsequent builds in the same quarter.
- If no build number is specified, the version refers to the initial release of the quarter.

The latest version represents the most recent development state. It may include breaking changes and should be treated as a beta release.
transferID String ✔️ Identifier for the transfer.
accountID String ✔️ N/A

Response

GetTransferResponse

Errors

Error Type Status Code Content Type
models/errors/APIException 4XX, 5XX */*

update

Update the metadata contained on a transfer.

Read our transfers overview guide to learn more.

To access this endpoint using an access token you'll need to specify the /accounts/{accountID}/transfers.write scope.

Example Usage

package hello.world;

import io.moov.sdk.Moov;
import io.moov.sdk.models.components.Security;
import io.moov.sdk.models.operations.UpdateTransferResponse;
import java.lang.Exception;

public class Application {

    public static void main(String[] args) throws Exception {

        Moov sdk = Moov.builder()
                .security(Security.builder()
                    .username("")
                    .password("")
                    .build())
            .build();

        UpdateTransferResponse res = sdk.transfers().update()
                .xMoovVersion("v2024.01")
                .transferID("d95fa7f0-e743-42ce-b47c-b60cc78135dd")
                .accountID("b85898c1-25a1-4907-a1c5-562af6646dad")
                .call();

        if (res.transfer().isPresent()) {
            // handle response
        }
    }
}

Parameters

Parameter Type Required Description
xMoovVersion Optional<String> Specify an API version.

API versioning follows the format vYYYY.QQ.BB, where
- YYYY is the year
- QQ is the two-digit month for the first month of the quarter (e.g., 01, 04, 07, 10)
- BB is an optional build number starting at .01 for subsequent builds in the same quarter.
- If no build number is specified, the version refers to the initial release of the quarter.

The latest version represents the most recent development state. It may include breaking changes and should be treated as a beta release.
transferID String ✔️ Identifier for the transfer.
accountID String ✔️ N/A

Response

UpdateTransferResponse

Errors

Error Type Status Code Content Type
models/errors/APIException 4XX, 5XX */*

initiateRefund

Initiate a refund for a card transfer.

Use the Cancel or refund a card transfer endpoint for more comprehensive cancel and refund options.
See the reversals guide for more information.

To access this endpoint using an access token you'll need to specify the /accounts/{accountID}/transfers.write scope.

Example Usage

package hello.world;

import io.moov.sdk.Moov;
import io.moov.sdk.models.components.CreateRefund;
import io.moov.sdk.models.components.Security;
import io.moov.sdk.models.errors.CardAcquiringRefund;
import io.moov.sdk.models.errors.GenericError;
import io.moov.sdk.models.errors.RefundValidationError;
import io.moov.sdk.models.operations.InitiateRefundRequest;
import io.moov.sdk.models.operations.InitiateRefundResponse;
import java.lang.Exception;

public class Application {

    public static void main(String[] args) throws GenericError, CardAcquiringRefund, RefundValidationError, Exception {

        Moov sdk = Moov.builder()
                .security(Security.builder()
                    .username("")
                    .password("")
                    .build())
            .build();

        InitiateRefundRequest req = InitiateRefundRequest.builder()
                .xIdempotencyKey("bdfa6a76-31f8-4cdf-a007-3d8aac713b91")
                .accountID("9b1350b2-a5be-41e3-92be-61f5cf4372a8")
                .transferID("7390ad29-1a0d-4a0c-8c17-da1708ee9ac2")
                .createRefund(CreateRefund.builder()
                    .amount(1000L)
                    .build())
                .build();

        InitiateRefundResponse res = sdk.transfers().initiateRefund()
                .request(req)
                .call();

        if (res.createRefundResponse().isPresent()) {
            // handle response
        }
    }
}

Parameters

Parameter Type Required Description
request InitiateRefundRequest ✔️ The request object to use for the request.

Response

InitiateRefundResponse

Errors

Error Type Status Code Content Type
models/errors/GenericError 400 application/json
models/errors/CardAcquiringRefund 409 application/json
models/errors/RefundValidationError 422 application/json
models/errors/APIException 4XX, 5XX */*

listRefunds

Get a list of refunds for a card transfer.

To access this endpoint using an access token you'll need to specify the /accounts/{accountID}/transfers.read scope.

Example Usage

package hello.world;

import io.moov.sdk.Moov;
import io.moov.sdk.models.components.Security;
import io.moov.sdk.models.operations.ListRefundsResponse;
import java.lang.Exception;

public class Application {

    public static void main(String[] args) throws Exception {

        Moov sdk = Moov.builder()
                .security(Security.builder()
                    .username("")
                    .password("")
                    .build())
            .build();

        ListRefundsResponse res = sdk.transfers().listRefunds()
                .xMoovVersion("v2024.01")
                .accountID("7d74a845-fe17-4ebe-a05e-71847ef8c510")
                .transferID("d081988f-448f-492c-8c60-836126fa0dfb")
                .call();

        if (res.cardAcquiringRefunds().isPresent()) {
            // handle response
        }
    }
}

Parameters

Parameter Type Required Description
xMoovVersion Optional<String> Specify an API version.

API versioning follows the format vYYYY.QQ.BB, where
- YYYY is the year
- QQ is the two-digit month for the first month of the quarter (e.g., 01, 04, 07, 10)
- BB is an optional build number starting at .01 for subsequent builds in the same quarter.
- If no build number is specified, the version refers to the initial release of the quarter.

The latest version represents the most recent development state. It may include breaking changes and should be treated as a beta release.
accountID String ✔️ N/A
transferID String ✔️ Identifier for the transfer.

Response

ListRefundsResponse

Errors

Error Type Status Code Content Type
models/errors/APIException 4XX, 5XX */*

getRefund

Get details of a refund for a card transfer.

To access this endpoint using an access token you'll need to specify the /accounts/{accountID}/transfers.read scope.

Example Usage

package hello.world;

import io.moov.sdk.Moov;
import io.moov.sdk.models.components.Security;
import io.moov.sdk.models.operations.GetRefundResponse;
import java.lang.Exception;

public class Application {

    public static void main(String[] args) throws Exception {

        Moov sdk = Moov.builder()
                .security(Security.builder()
                    .username("")
                    .password("")
                    .build())
            .build();

        GetRefundResponse res = sdk.transfers().getRefund()
                .xMoovVersion("v2024.01")
                .transferID("dbc09cb2-ef99-4553-8501-94323f377dbf")
                .accountID("7f90bf73-6fb7-41e7-90aa-a9133e7d92c2")
                .refundID("0f86fa43-1a9b-4a5d-8227-f253063f7fb1")
                .call();

        if (res.cardAcquiringRefund().isPresent()) {
            // handle response
        }
    }
}

Parameters

Parameter Type Required Description
xMoovVersion Optional<String> Specify an API version.

API versioning follows the format vYYYY.QQ.BB, where
- YYYY is the year
- QQ is the two-digit month for the first month of the quarter (e.g., 01, 04, 07, 10)
- BB is an optional build number starting at .01 for subsequent builds in the same quarter.
- If no build number is specified, the version refers to the initial release of the quarter.

The latest version represents the most recent development state. It may include breaking changes and should be treated as a beta release.
transferID String ✔️ Identifier for the transfer.
accountID String ✔️ N/A
refundID String ✔️ Identifier for the refund.

Response

GetRefundResponse

Errors

Error Type Status Code Content Type
models/errors/APIException 4XX, 5XX */*

createReversal

Reverses a card transfer by initiating a cancellation or refund depending on the transaction status. Read our reversals guide to learn more.

To access this endpoint using a token you'll need to specify the /accounts/{accountID}/transfers.write scope.

Example Usage

package hello.world;

import io.moov.sdk.Moov;
import io.moov.sdk.models.components.CreateReversal;
import io.moov.sdk.models.components.Security;
import io.moov.sdk.models.errors.GenericError;
import io.moov.sdk.models.errors.ReversalValidationError;
import io.moov.sdk.models.operations.CreateReversalRequest;
import io.moov.sdk.models.operations.CreateReversalResponse;
import java.lang.Exception;

public class Application {

    public static void main(String[] args) throws GenericError, ReversalValidationError, Exception {

        Moov sdk = Moov.builder()
                .security(Security.builder()
                    .username("")
                    .password("")
                    .build())
            .build();

        CreateReversalRequest req = CreateReversalRequest.builder()
                .xIdempotencyKey("9d4b2ed0-777b-40e6-ba88-d6ca730c3503")
                .accountID("16452b89-d33c-4be9-8f92-205130a46467")
                .transferID("c7f1b114-0545-47ba-9d79-fdba229c3df7")
                .createReversal(CreateReversal.builder()
                    .amount(1000L)
                    .build())
                .build();

        CreateReversalResponse res = sdk.transfers().createReversal()
                .request(req)
                .call();

        if (res.reversal().isPresent()) {
            // handle response
        }
    }
}

Parameters

Parameter Type Required Description
request CreateReversalRequest ✔️ The request object to use for the request.

Response

CreateReversalResponse

Errors

Error Type Status Code Content Type
models/errors/GenericError 400, 409 application/json
models/errors/ReversalValidationError 422 application/json
models/errors/APIException 4XX, 5XX */*

generateOptions

Generate available payment method options for one or multiple transfer participants depending on the accountID or paymentMethodID you supply in the request.

Read our transfers overview guide to learn more.

To access this endpoint using an access token you'll need to specify the /accounts/{accountID}/transfers.read scope.

Example Usage

package hello.world;

import io.moov.sdk.Moov;
import io.moov.sdk.models.components.Security;
import io.moov.sdk.models.errors.GenericError;
import io.moov.sdk.models.errors.TransferOptionsValidationError;
import io.moov.sdk.models.operations.CreateTransferOptionsResponse;
import java.lang.Exception;

public class Application {

    public static void main(String[] args) throws GenericError, TransferOptionsValidationError, Exception {

        Moov sdk = Moov.builder()
                .security(Security.builder()
                    .username("")
                    .password("")
                    .build())
            .build();

        CreateTransferOptionsResponse res = sdk.transfers().generateOptions()
                .xMoovVersion("v2024.01")
                .call();

        if (res.transferOptions().isPresent()) {
            // handle response
        }
    }
}

Parameters

Parameter Type Required Description
xMoovVersion Optional<String> Specify an API version.

API versioning follows the format vYYYY.QQ.BB, where
- YYYY is the year
- QQ is the two-digit month for the first month of the quarter (e.g., 01, 04, 07, 10)
- BB is an optional build number starting at .01 for subsequent builds in the same quarter.
- If no build number is specified, the version refers to the initial release of the quarter.

The latest version represents the most recent development state. It may include breaking changes and should be treated as a beta release.

Response

CreateTransferOptionsResponse

Errors

Error Type Status Code Content Type
models/errors/GenericError 400 application/json
models/errors/TransferOptionsValidationError 422 application/json
models/errors/APIException 4XX, 5XX */*